Giáo trình Toán rời rạc
II. Số nguyên:1. Số nguyên và phép chia :Trong phần sau đây kí hiệu Z để chỉ tập hợp các số 0, ±1, ±2, Khi x ∈ Z ta nói x là một số nguyên. Bản thân Z được gọi là tập các số nguyên.Ta cũng chấp nhận tiên đề sau đây – gọi là tiên đề về tối thứ tự (well - ordering axiom):“Mọi tập khác rổng của các số nguyên không âm đều có phần tử nhỏ nhất.”Điều này có nghóa là: Nếu S là tập hợp khác rổng các số nguyên ≥ 0 thì tồn tại một số nguyên n ∈ S sao cho n ≤ x đối với mọi x ∈ SĐònh nghóa : Cho hai số nguyên a và b với a ≠ 0, ta nói a chia hết cho b nếu tồn tại số nguyên c sao cho a = bc. Khi đó ta cũng nói b chia hết a hoặc b là ước số của a hoặc a là bội số của b.Kí hiệu: b | a.Ví dụ: 13 | 182 17 | 0.Chú ý rằng trong đònh nghóa nói trên ta không đònh nghóa phép chia cho 0 mặc dù, cũng theo đònh nghóa trên, 0 chia hết cho mọi số nguyên. Đònh lý 1: Nếu a, b, c là các số nguyên sao cho c | b và b | a thì c | a.Chứng minh:Vì c | b nên tồn tại số nguyên k sao cho b=kc (1)Vì b | a nên tồn tại số nguyên h sao cho a=hb (2).Từ (1) và (2) được a=(hk) c. Vì hk là số nguyên nên ta kết luận: c | a.QEDĐònh lý 2: Cho a, b, m, n là các số nguyên. Nếu c | a và c | b thì c | (am+bn)Chứng minh:c | a ⇒ (∃k1 ∈ Z : a = k1c) (1) c | b ⇒ (∃k2 ∈ Z : b = k2c) (2)Từ (1) và (2) suy ra: am+bn=k1cm+k2cn=(k1m+k2n) cQEDĐònh lý 3 : Với mọi số nguyên a và b sao cho b > 0 tồn tại duy nhất một bộ hai số nguyên không q và r với 0 ≤ r < b sao cho:a = bq + r.Chứng minh:Ta cần chứng minh hai điều:Sự tồn tại của q và r:32 Gọi S là tập mọi số nguyên có dạng a –bk trong đó k ∈ Z: S = { }|a bk k Z− ∈.Gọi T là mọi số nguyên không âm chứa trong S: T = { }|( 0) ( )t t t S≥ ∧ ∈ Vậy T khác rổng vì với mọi số nguyên k sao cho k < a/b thì a-bk > 0. Theo tiên đề về tối thứ tự thì phải có số nguyên k=q sao cho (a-bq) là phần tử nhỏ nhất của T. Đặt r = a-bq.Theo cách xây dựng r nêu trên ta có r ≥ 0.Mặt khác giả sử r ≥ b > 0 thì r > r –b = (a – bq) – b = a – b(q+1) ≥ 0. Mâu thuẩn với tính chất r là phần tử nhỏ nhất của T. Vậy r < b.Sự duy nhất của q và r : Giả sử ta có a=bq1+r1 và a=bq2+r2, với 10 r b≤ < và 20 r b≤ < .Suy ra: 0=b(q1-q2)+ (r1-r2) hay: r2-r1=b(q1-q2). Hay b chia hết r2-r1. Từ 10 r b≤ < và 20 r b≤ <ta có: -b < r2 – r1 < b. Nên b chia hết r2 – r1 chỉ khi r2 – r1 = 0, ie: r2 = r1. Cũng suy ra được q2 = q1Nói cách khác bộ q và r là duy nhất.QEDThuật ngữ: Trong đònh lí trên a được gọi là số bò chia(dividend), b là số chia (divisor), q là thương số (quotient) và r là dư số (remainder). Đònh lý trên còn được gọi dưới tên thuật toán chia Euclide vì nó cho phép tìm ra thương số và dư số sau một dãy phép toán trừ:Ví dụ: Để tìm thương số và dư số của phép chia 14 cho 3 ta lần lượt trừ (lần 1) 14 cho 3 dược 11. Vì 11 còn lớn hơn 3 nên ta trừ tiếp (lần 2) 11 cho 3 được 8. Tiếp tục (lần 3) 8-3 =5 và (lần 4) 5-3 =2. Vậy 14 chia 3 được 4 dư 2 q:=0While a≥b doBegina:=a-bq:=q+1Endr:=areturn(q,r)Trong thực tế tính toán không ai chia như vậy cả. Nhưng thuật toán đó có độ phức tạp thời gian là O(n) và trong máy tính không cần phải thiết kế một mạch chia1 mà vẫn thực hiện được phép chia nguyên một cách hiệu quả như thường.Đònh nghóa: Số nguyên tố là số nguyên dương khác 1 và chỉ chia hết cho 1 và cho chính nó. Các số nguyên dương khác 1 và không phải số nguyên tố gọi là hợp số.Đònh lý cơ bản của số học: Mọi số nguyên dương đều có thể phân tích được một cách duy nhất thành tích các thừa số nguyên tố sai khác một sự sắp xếp thứ tự các thừa số đó.1 Sẽ được trình bày trong mục biểu diễn số nguyên trong máy tính.33 Ví dụ: 100 = 2.2.5.5 =2252999 = 3.3.3.37 = 33.37Chúng ta chấp nhận không chứng minh đònh lý đó.Đònh lý 4: Nếu n là một hợp số thì n có ước số nguyên tố bé hơn hoặc bằng nChứng minh:Vì n là một hợp số nên n phải viết được thành dạng n = ab với 1<a<n và 1<b<n.Nếu (a >n) và (b > n) thì n = ab > (n.n) = n . Mâu thuẩn.Vậy hoặc a ≤ n hoặc b ≤ n (hoặc cả hai!).Suy ra n phải có một ước số bé hơn hoặc bằng n. Ước số này hoặc là nguyên tố hoặc phải có một ước số nguyên tố bé hơn hoặc bằng nó (theo đònh lí căn bản của số học). Trong trường hợp nào n cũng có một ước số nguyên tố bé hơn hoặc bằng n.QEDChú ý rằng đònh lý vừa phát biểu không nói rằng mọi ước số nguyên tố của n thì bé hơn hoặc bằng n. Chẳng hạn 10=2.5 thì 5 là một ước số nguyên tố của 10 nhưng 5 > 10Ví dụ 1: Từ đònh lý này ta có thể xây dựng một thuật toán để kiểm tra xem một số nguyên có phải là số nguyên tố hay không:34 Procedure KiemTraNguyenTo(n: số nguyên dương)Ketqua:=TRUEIF (n>1) THENBegini:=2WHILE (i≤ n) DOBeginIF ( i | n) THEN BeginKetQua:=FALSEi:=(phần nguyên của n)+1EndELSE i:=i+1EndEndELSE KetQua:=FALSEReturn(KetQua)ƯỚC SỐ CHUNG LỚN NHẤT – BỘI SỐ CHUNG NHỎ NHẤT.Đònh nghóa: Cho a và b là hai số nguyên không đồng thời bằng 0. Số nguyên d lớn nhất sao cho d|a và d|b gọi là ước số chung lớn nhất của a và b và được kí hiệu là UCLN(a,b).Theo đònh nghóa trên và theo các tính chất đã học ta thấy rằng nếu d=UCLN(a,b) thì, giả sử (a–b >b), d cũng là UCLN(a-b,b). Thật vậy nếu d là ước chung lớn nhất của a và b thì d cũng là ước chung lớn nhất của a-b và b, và ngược lại. Từ nhận xét đó thay vì đi tìm ước chung lớn nhất của a và b ta chỉ cần đi tìm ước chung lớn nhất của a-b và b (với giả thiết a-b>b). Bằng cách đó ta đã làm giảm kích thước bài toán cần giải quyết (ie: thay kích thước a bằng kích thước a-b). Trong quá trình đi tìm ước chung như thế có cơ kích thước bài toán giảm đến 0 (eg: khi a=b). Tuy nhiên nếu mở rộng đònh nghóa trên cả trong trường hợp a và b là các số nguyên không âm và với nhận xét số nguyên dương nào cũng là ước số của 0 (0 = 0.x với mọi số nguyên dương x) ta sẽ có a=UCLN(a,0).Ví dụ: Tìm ước chung lớn nhất cho hai số 24 và 36. Cách1 :Các ước số của 24 là: 1 2 3 4 6 8 12 24Các ước số của 36 là: 1 2 3 4 6 9 12 18 36Các ước chung của 24 và 36 là: 1 2 3 4 6 12Vậy ước chung lớn nhất là: 12 Cách 2: Thực hiện lần lượt các phép trừ và gán như sau:UCLN của 36 24 (36-24=12)UCLN của 24 12 (24-12=12)UCLN của 12 12 (12-12=0)UCLN của 12 0Dòng cuối cùng cho thấy ước chung lớn nhất là 12. Chúng ta thấy trong cách 2 các phép chia và duyệt danh sách trong cách 1 đã được thay bằng một dãy các phép trừ đơn giản và phép so sánh sau mỗi lần thực hiện phép trừ. Nếu hai số a và b là rất lớn và gần bằng nhau thì rõ ràng cách 2 có hiệu quả hơn nhiều.Mã giả cho thuật toán đó như sau:Procedure UCLN(a,b: các số nguyên không âm)35 While (b≠ 0) doBeginIF (a<b) THEN {Hoán chuyển vò trí của a và b}Begint:=aa:=bb:=tEnda:=a-bEndReturn(a)Việc xác đònh hai số nguyên không có ước số chung nào ngoài 1 có một vò trí rất quan trọng trong các phép tính.Đònh nghóa: Các số nguyên a và b gọi là nguyên tố cùng nhau nếu UCLN(a,b)=1.Đònh nghóa : Các số nguyên a1,a2,a3, ., an gọi là đôi một nguyên tố cùng nhau nếu:n .1j,n .1i =∀=∀ : i ≠j ⇒UCLN(ai,aj)=1Đònh nghóa: Bội số chung nhỏ nhất của hai số nguyên a và b là số nguyên dương nhỏ nhất chia hết cho cả a lẫn b, và được kí hiệu là BCNN(a,b).Đònh lý 5: Với mọi số nguyên dương a và b ta có:ab=UCLN(a,b) . BCNN(a,b)Ta chấp nhận đònh lý này.o Số học đồng dư và ứng dụng .Đònh nghóa: Cho m là một số nguyên dương, a và b là các số nguyên. Ta nói a là đồng dư với b modulo m nếu m | (a-b), và kí hiệu a≡ b (mod m).Thực chất của đònh nghóa trên như sau:1) Nếu m | (a-b) thì ∃k1 ∈ Z : a-b=k1m (*)Giả sử trong phép chia a cho m được : a=k2m+r với (0 ≤ r < m) (**)Thì từ (*) và (**) suy ra: k2m + r –b =k1mHay b=(k2-k1) m +r với (0 ≤ r < m)Vậy a và b có cùng dư số trong phép chia cho m.2) Ngược lại nếu a và b có cùng dư số trong phép chia cho m thì +=+=rmkbrmka21⇒a-b = (k1-k2) m ⇒ m | (a-b). Ví dụ: 22 ≡ 4 (mod 9) vì 9 | (22-4)=183 ≡ -6 (mod 9) vì 9 | (3+(-6))13 không đồng dư với 5 modulo 9.Đònh lý 6: Với mọi số nguyên a và b, a≡ b (mod m) nếu và chỉ nếu tồn tại số nguyên k sao cho: a = b + km.36 Chứng minh.a≡ b (mod m) ⇔ m | (a-b) (theo đònh nghóa)⇔ k∃∈Z : (a-b)= m.k⇔ k∃∈Z : a = b+k.mQEDĐònh lý sau đây thiết lập một số tính chất rất quan trọng về đồng dư thức.Đònh lý 7: Cho m là một số nguyên dương. Đồng dư thức modulo m thoả mãn các tính chất sau:a) Tính phản hồi (Reflexive): ∀a∈Z : a≡a (mod m)b) Tính đối xứng (Symmetric):∀a, b∈Z : a≡b (mod m) ⇒ b≡a (mod m)c) Tính truyền (Transitive):∀a, b, c∈Z : a≡b (mod m) và b≡c (mod m)⇒ a≡c (mod m)Chứng minhChứng minh các tính chất a) và b) là đơn giản, xin nhường cho người đọc.Để chứng minh c) , ta có:Với mọi số nguyên a, b, c :=−∈∃⇒−⇒≡=−∈∃⇒−⇒≡mkcb:Zk)cb(|m)m(modcbmkba:Zk)ba(|m)m(modba2211⇒ (a-b)-(b-c) = a-c = (k1-k2)m.Vì (k1-k2) là số nguyên nên .QEDVí dụ: . -8≡-4≡0≡4≡8 ≡12≡16 (mod 4) . -7≡-3≡1≡5≡9 ≡13≡17 (mod 4) . -6≡-2≡2≡6≡10≡14≡18 (mod 4) . -5≡-1≡3≡7≡11≡15≡19 (mod 4)Cho số nguyên a và số nguyên dương m, theo thuật chia Euclide ta có a=bm+r trong đó 0 ≤ r < m. Ta sẽ gọi r là thặng dư không âm bé nhất của a theo modulo m. Rõ ràng a≡r (mod m). Trong một số ngôn ngữ lập trình – như Pascal - đôi khi người ta cũng dùng cách ghi a mod m = r. Ví dụ: 17 mod 4 = 1. Khi đó mod được sử dụng như một toán tử.Đònh lý 8: Cho m là một số nguyên dương. Ta có:≡≡)m(moddc)m(modba⇒ ≡+≡+)m(modbdac)m(moddbca với mọi số nguyên a,b,c,d(Chứng minh khá đơn giản nên dành cho người đọc.)37 Đònh lý 9: Nếu a, b, c là các số nguyên sao cho m>0, ta có:=≡)m,c(UCLNd)m(modbcac ⇒a ≡ b (mod (m/d))Chứng minhVì ac ≡ bc (mod m) suy ra m | (ac-bc). Từ đó: ∃ k ∈ Z: (ac-bc)=c(a-b)=kmVậy: (c/d) (a-b) = k (m/d).Vì d=UCLN(c,m) nên 1=UCLN(c/d,m/d).Suy ra: (m/d) | (a-b). Hay a ≡ b (mod (m/d))QEDKhái niệm đồng dư tuyến tính : Đồng dư thức có dạng: ax ≡ b (mod m) (1)trong đó x là một ẩn số nguyên được gọi là một phương trình đồng dư tuyến tính một biến.Trước hết cần nhận xét rằng nếu phương trình (1) có một nghiệm x0 và nếu x1 ≡ x0 (mod m) thì do đònh lý 8 ta có: ax1 ≡ ax0 ≡ b (mod m) nên x1 cũng là một nghiệm của (1). Nói cách khác nếu (1) có nghiệm thì nó cũng có một họ nghiệm. Vì vậy nói đến các Hàn Tín điểm binhnghiệm của (1) là nói đến các nghiệm (nếu có) không đồng dư modulo m với nhau. Các đònh lý dưới đây sẽ dẫn ta đến việc xác đònh các nghiệm đó (nếu có).Đònh lý 10: Nếu d=UCLN(a,m) với a, m là các số nguyên dương không đồng thời bằng 0 thì tồn tại các số nguyên s và k sao cho d là số nguyên dương nhỏ nhất thoả d = as+mk.Chứng minh:Xét tập H gồm các số nguyên dương dạng as+mk. Tập H ≠ φvì 1.a+0.m ∈H, do đó tồn tại phần tử d nhỏ nhất thuộc H. Ta có thể viết d = as+mk với s,k ∈Z. Theo thuật chia Euclide ta có a= dq + r, 0 ≤ r < d .Vậy: r = a – dq = a – (as+mk)q = a(1 – sq) + m(-kq) ∈HNhưng 0 ≤ r < d. Vậy r = 0 (nếu không sẽ mâu thuẩn với tính chất của d là số nguyên dương nhỏ nhất thuộc H). Suy ra d | a. Tương tự ta có d | m.Ta đã suy ra được d là ước số chung của a và m.Giả sử c là một ước số chung bất kì của a và m. Ta có:c | a và c | m ⇒ c | as+mk ⇒ c | d.Vậy d là ước số chung lớn nhất trong các ước số chung của a và m.QED 38 Đònh lý 11: Cho hai số nguyên a, m và d= UCLN(a,m). Phương trình bậc nhất hai ẩn ax+my=b 2 vô nghiệm nếu b không chia hết cho d. Nếu b chia hết cho d thì phương trình ax+my=b có vô số nghiệm. Hơn nữa, nếu (x0,y0) là một nghiệm thì mọi nghiệm khác sẽ cho bởi:x=x0+(m/d)t , y=y0 – (a/d)tvới t là một số nguyên nào đó. Chứng minh:Trường hợp 1: Giả sử b không chia hết cho d.Vì d=UCLN(a,m) nên d|a và d|m. Suy ra d | ax+my=b.Do đó nếu b không chia hết cho d sẽ dẫn đến mâu thuẩn. Nói cách khác phương trình ax+my=b vô nghiệm.Trường hợp 2: Giả sử b chia hết cho d. d = UCLN(a,m). Vậy theo đònh lý 10 tồn tại các số nguyên s và k sao cho: d = as+mk (*)Vì d | b nên tồn tại e sao cho b = de. (**)Từ (*) và (**): b = de = (as + mk)e = a (se) + m (ke) (***)Từ (***) ta có: (x0,y0) với x0=se và y0=ke là một nghiệm của ax+my=b.Bây giờ đặt x=x0+(m/d)t và y=y0 – (a/d)t với t∈ Z. (****)Ta có: ax+my=ax0+a(m/d)t + my0-m(a/d)t=ax0+my0=b. Vậy (x,y) cũng là một nghiệm.Ta còn cần chứng minh mọi nghiệm của ax + my = b phải có dạng (****)Giả sử (x,y) là cặp số nguyên sao cho: ax + my = b.Vì ax0+my0=b nên: (ax + my) - (ax0 + my0) = a(x-x0) + m(y-y0 ) = 0Hay: a(x-x0) = m(y0-y) (+)Chia cả hai vế cho d, được:(a/d) (x-x0) = (m/d) (y0-y)Vì d=UCLN(a,m) nên 1=UCLN(a/d,m/d). Do đó (m/d) không chia hết cho (a/d). Suy ra (a/d) | (y0-y).Vậy: ∃ t ∈ Z : ( y0-y) = (a/d)t. Hay y=y0 – (a/d)t (++)Thay (++) vào (+), được: a(x-x0) = m(a/d)t.Hay x =x0+ (m/d)t. Chứng minh tương tự được y=y0-(a/d)t.QED2 Phương trình dạng này còn có tên gọi là Phương trình vô đònh hay phương trình Diophant (gọi theo tên nhà toán học Ai cập Diophantus (250 - ?).39 Ví dụ: Phương trình 15x+6y=7 vô nghiệm vì UCLN(15,6)=3 nhưng 7 không chia hết cho 3. Phương trình 5x+y=16 có nghiệm vì UCLN(5,1)=1 mà 1 thì chia hết mọi số nguyên. Từ phương trình này ta có y= 16 – 5x. Cho bất kì số nguyên x nào ta cũng được một giá trò nguyên y tương ứng thoả phương trình trên. Phương trình 21 x + 14 y = 70 có nghiệm vì UCLN(21,14)=7 và 7 | 70. Để tìm các nghiệm này ta thực hiện như sau:21 x + 4 y = 70 ⇒ y = 4x2170−= (-5x) + 4x70−(1)Để x và y đều là các số nguyên ta phải có: t=4x70− ∈ZTa được: 70 – x = 4 t. Hay x = 70 – 4t. (2)Từ (1) và (2) ta được : y = -5 (70 – 4t) + t = - 350 + 21 t. Vậy: +−=−=t21350yt470xCho t những giá trò nguyên tuỳ ý ta được các nghiệm của phương trình đã cho.Đònh lý 12: Cho phương trình ax ≡ b (mod m) với a, b , m là các số nguyên trong đó m>0 và UCLN(a,m) = d. Nếu b chia hết cho d thì phương trình ax ≡ b (mod m) có đúng d nghiệm không cùng đồng dư modulo m.Nếu b không chia hết cho d thì phương trình ax ≡ b (mod m) là vô nghiệm.Chứng minh:Do đònh lý 6 ta nhận thấy rằng phương trình đồng dư tuyến tính ax ≡ b (mod m) là tương đương với phương trình hai ẩn ax – b = my. Số nguyên x là nghiệm của ax ≡ b (mod m) nếu và chỉ nếu tồn tại số nguyên y sao cho ax – my =b. Theo đònh lý 11 nếu b không chia hết cho d=UCLN(a,m) thì phương trình ax – my = b vô nghiệm.Cũng theo đònh lý 11 nếu b chia hết d thì phương trình ax – my = b có vô số nghiệm cho bởi:x=x0 + (m/d) t và y=y0+(a/d)tTrong đó (x0,y0) là một nghiệm đặc biệt của phương trình ax – my =b. Vậyx ≡ x0+ (m/d)t (mod m) là một họ nghiệm của ax ≡ b (mod m).Để xác đònh có bao nhiêu nghiệm thuộc họ không đồng dư modulo m với nhau ta sẽ tìm điều kiện để cho hai nghiệm x1=x0+(m/d)t1 và x2=x0+(m/d)t2 là đồng dư modulo m.Nếu hai nghiệm này là đồng dư thì: x0+(m/d)t1 ≡ x0+(m/d)t2 (mod m)Suy ra: (m/d) t1 ≡ (m/d)t2 (mod m).40 Vì (m/d) | m nên UCLN(m, m/d)=m/d, Áp dụng đònh lý 9 ta có: t1 ≡ t2 (mod d).Điều này chứng tỏ rằng có thể lấy tập hợp các nghiệm không đồng dư (modulo m) với nhau bằng cách lấy x= x0+ (m/d) t trong đó t chạy trên toàn bộ các thặng dư khác nhau có thể có trong phép chia nguyên cho d, eg: t = 0, 1, 2, 3, ., d-1.QED Ví dụ: Tìm nghiệm của phương trình: 9 x ≡ 12 (mod 15).Ta có d=UCLN(a,m)=UCLN(9,15)=3 và 3 | 12 nên phương trình có nghiệm. Và hơn nữa có đúng 3 nghiệm không đồng dư modulo 15 với nhau.Trước hết ta sẽ tìm một nghiệm đặc biệt tương ứng với phương trình vô đònh:9x –15 y =12.Ta có 9x –15 y = 12 ⇒ x= 3y1)y21(9y1512 −++=+Đặt t= 3y1− được : −=−=t53xt31y (t∈Z)Chọn (x0,y0) ứng với t= -1 chẳng hạn ta có x0=8, y0=4.Theo đònh lý 12, các nghiệm của 9 x ≡ 12 (mod 15) cho bởi:x ≡ x0+ (m/d) t (mod 15) ≡ 8 + 5 t (mod 15) với t= 0,1,2.Hay x ≡ 8 (mod 15) , x ≡ 13 (mod 15), x ≡ 18 (mod 15).Trường hợp đặc biệt: Phương trình ax ≡ 1 (mod m). Theo đònh lý trên thì phương trình này có nghiệm nếu và chỉ nếu UCLM(a,m)=1 và tất cả các nghiệm đều đồng dư modulo m. Nghiệm của ax ≡ 1 (mod m) nếu có sẽ được gọi là đảo của a (theo modulo m) và được kí hiệu: a. Việc tìm đảo của a rất đễ dàng: vì UCLN(a,m)=1 nên phương trình trên có nghiệm và hơn nữa tồn tại các số nguyên s và k để : as+mk=1. Vì m | mk nên : as ≡ 1 (mod m). Ví dụ: Giải phương trình 3 x ≡ 1 (mod 7).Do UCLN(3,7)=1 nên phương trình trên có nghiệm.Ta cũng có: 3(-2)+7(1)=1. Vậy (-2) là một đảo của 3 theo modulo 7.Phương trình trên có nghiệm: x ≡ (-2) (modulo 7).Ứng dụng:41 [...]... có bao nhiêu quân? Theo ngôn ngữ toán học hiện đại đây chính là bài toán giải hệ phương trình tuyến tính đồng dư: 3 x ≡ 1 (mod 3) x ≡ 2 (mod 5) với x ∈ N ⊂ Z x ≡ 3 (mod 7) 42 • • • • • Giải: Ta có M = 3.5.7=105, M1 = 105/3=35, M2 = 105/5=21, M3 = 105/7=15 Giải phương trình 35 y1 ≡ 1 (mod 3): 35 y1 ≡ 1 (mod 3) ⇔ 2 y1 ≡ 1 (mod 3) ⇔ y1 ≡ 2 (mod 3) Giải phương trình 21 y2 ≡ 1 (mod 5): 21 y2 ≡... khi thêm vào dòng lệnh “RANDOMIZE; “ trước khi thực hiện vòng lặp FOR Chính thủ tục RANDOMIZE sẽ làm nhiệm vụ phát sinh các hạt giống ngẫu nhiên (random seed) khác nhau mỗi lần chạy chương trình nhằm làm cho mỗi lần chương trình chạy sẽ được một kết xuất ngẫu nhiên khác nhau Hạt giống ngẫu nhiên này được phát sinh nhờ lấy theo xung clock của máy tính 6 Julius Ceasar (100 BC – 44 BC) Nhà quân sự, chính... đó hệ phương trình đồng dư tuyến tính: x ≡ a1 (mod m1 ) x ≡ a (mod m ) 2 2 (*) có nghiệm duy nhất modulo M=m1m2m3 … mr x ≡ a r (mod mr ) Chứng minh: Trước tiên ta xây dựng nghiệm cho hệ phương trình đồng dư tuyến tính đó: Đặt Mk = M/mk = m1m2 …m(k-1)m(k+1) … mr (ie: vắng mặt mk trong biểu thức của Mk) Vì ∀ j ≠ k : UCLN(mj,mk)=1 nên ta có UCLN(Mk,mk)=1 Suy ra phương trình: Mky ≡... ≡ 1 (mod 5) Giải phương trình 15 y3 ≡ 1 (mod 7): 15 y3 ≡ 1 (mod 7) ⇔ 1 y3 ≡ 1 (mod 7) ⇔ y3 ≡ 1 (mod 7) Vậy: x ≡ 1.35.2 + 2.21 .1 + 3.15.1 (mod 105) ≡ 157 (mod 105) ≡ 52 (mod 105) ≡ … Qua lời giải này ta thấy Hàn Tín có thể biết đúng số quân của mình bằng cách: Sắp xếp quân: Xếp hàng theo số nguyên tố, eg:3, 5, 7, 11, … để đảm bảo là các số đó nguyên tố cùng nhau Đảm bảo bài toán có nghiệm Nếu có... = 5 bản rõ: NGAY MAI SE CHUYEN QUAN được mã hoá Ceasar thành bản mã: SLFD RFN XJ HMZDJS VZFS Việc các số giả ngẫu nhiên bò lặp lại được thấy rất rõ trong ngôn ngữ lập trình Pascal khi sử dụng hàm RANDOM(x:word): word; Ví dụ doạn chương trình sau đây mỗi lần chạy sẽ luôn luôn cho cùng một kết xuất: 5 Program SoNgauNhien; Uses CRT; Var i:byte; BEGIN For i:=1 to 10 do write(RANDOM(20): 2); END trừ khi... k=1 r, x1 ≡ x2 ≡ ak (mod mk) Suy ra: ∀ k=1 r, mk | (x1-x2) Hay M | (x1 -x2), ie: x1 ≡ x2 (mod M) QED Ví dụ: Giải hệ phương trình tuyến tính đồng dư: x ≡ 1 (mod 3) x ≡ 2 (mod 5) với x ∈ N ⊂ Z x ≡ 3 (mod 7) Đònh lý này còn có tên là Bài toán Hàn Tín điểm binh Được nhà toán học Trung Quốc Sun-Tsu sống trong thế kỷ thứ nhất sau công nguyên đề cập đến trong quyển sách Số Học dưới dạng sau: (Tướng... binh là việc giải hệ phương trình đồng dư bậc nhất trong đó m1,m2, ,mk đơi một ngun tố cùng nhau Trong bài tốn Hàn Tín k = 3 và m1 = 3,m2 = 5,m3 = 7 Định lý Hệ phương trình đồng dư nói trên có nghiệm duy nhất theo mođun M = m1.m2 mk là trong đó 50 M1 = M / m1,M2 = M / m2, ,Mk = M / mk y1 = (M1) (mod m1), y2 = (M2) − 1(mod m2), , yk = (Mk) − 1(mod mk) −1 Ví dụ Giải hệ phương trình đồng dư ta có M = 3... với tác giả nên không thể xin phép được Mục đích chỉ để cho sinh viên làm quen dần với việc tham khảo tài liệu tiếng Anh – không vì một mục đích thương mại nào khác Và vì để phù hợp với ngữ cảnh của giáo trình này nên một số chỉ mục của nguyên bản có thay đổi đôi chút 4 44 We have avoided mentioning the problem that arises when the hashing function assigns the same memory location to two different files... 10 vạn quân, thì con số quân só chính xác là: x1000= 105052=105.1000 + 52 (k=1000) Dó nhiên nếu Hàn Tín gặp may, ie: có một lần xếp ngay ngắn không thừa không thiếu quân nào khỏi hàng quân, thì … bài toán trở nên quá đơn giản Cách giải khác (phương pháp lặp): Ta có: x ≡ 1 (mod 3) ⇒ x = 1 + 3 t với t ∈ Z (+) Thay (+) vào x ≡ 2 (mod 5) được: 1+3t ≡ 2 (mod 5) Nhưng: 1+3t ≡ 2 (mod 5) ⇒ 3t ≡ 1 (mod 5) ⇒... clustering is extremely rare Indeed, if m(m-2) > k for all keys k, clustering wil never occur Cách phát sinh các số giả ngẫu nhiên (dùng random seed): Các số được chọn ngẫu nhiên thường cần thiết cho các bài toán mô phỏng (simulation) trên máy tính Người ta đã tìm nhiều cách để tạo ra các con số đó Tuy nhiên khi đã được tạo ra như vậy – theo một phương pháp có tính hệ thống nào đó – thì các con số đó không . U V WXY Z0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2 3 4F G H I. h2(k)344 401 65 926 9 325 510 7781 526 2 12 228 84 428 54 329 938 157 1 526 17 420 47 900 15139603 72 500 1914075034 367 98 023 76546 3 32 190578509 496 993 578 25 80132