11.07.2015 Views

Toán 2 - lib - Đại học Thăng Long

Toán 2 - lib - Đại học Thăng Long

Toán 2 - lib - Đại học Thăng Long

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.1. Khái niệm Thuật toán theo nghĩa trực giáca k với k nhận các giá trị từ 2 đến n. Mỗi bước duyệt sẽ thực hiện công việcđược chỉ ra từ dòng số 3 đến dòng số 5. Công việc này là một phép thử điềukiện: nếu biểu thức logic thỏa mãn thì công việc ở dòng số 4 sẽ được thực hiện,trái lại thì thôi.Các đặc trưng của Thuật toánTrong thực tiễn, hay gặp một vài thuật ngữ khá gần với thuật ngữ “thuậttoán”, như: kịch bản, cách dùng, quá trình, tiến trình, chương trình hành động,luật lệ, phương pháp, thủ tục,. . . . Ta cần đưa ra những tính chất đặc trưng củakhái niệm “thuật toán” để phân biệt khái niệm đó với những khái niệm khác.Thuật toán có sáu đặc trưng cơ bản: tính dừng sau hữu hạn bước, tính xác định,tính phổ dụng, đầu vào, đầu ra, tính đúng đắn hay tính hiệu quả. Sẽ rất hữu íchkhi mô tả các thuật toán nếu ta ghi nhớ các tính chất đó trong đầu.Tính kết thúc (tính dừng)Thuật toán bao giờ cũng phải dừng sau một số hữu hạn bước thực hiện. Khinói đến tính kết thúc của thuật toán, chúng ta cần chú ý rằng mô tả các bướctrông có vẻ là hữu hạn nhưng chưa chắc đã dừng sau hữu hạn bước.Ví dụ 1.1.4 Đoạn qui tắc sau không dừng sau hữu hạn bước mặc dù mô tả củanó dường như chỉ có ba bước nên nó không phải là thuật toán:B1 Xóa bảng.B2 Viết số 1 lên bảng.B3 Thực hiện B1.Khi xây dựng thuật toán, phải chứng minh tính kết thúc cho nó. Cụ thể là nêubật được ý sau: với những dữ liệu tùy ý nằm trong miền thao tác của thuật toánthì thuật toán sẽ dừng sau hữu hạn bước. Ngoài ra ta thường sẽ cố gắng chỉ rõthuật toán dừng ở đâu, bước nào, lập công thức đánh giá tổng số bước thực hiện.Tính dừng của thuật toán thường được chứng minh bằng cách dựa trên tiến độcủa thuật toán, xây dựng một dãy số nguyên đơn điệu và bị chặn. Khi đó haitính chất đơn điệu và bị chặn của dãy số nguyên sẽ đảm bảo cho tính kết thúccủa thuật toán.Tính xác địnhỞ mỗi bước, các thao tác phải hết sức rõ ràng, không được phép gây nênsự nhập nhằng, lẫn lộn, tùy tiện. Trong cùng một điều kiện, hai “bộ xử lý”Bộ môn Toán - ĐẠI HỌC THĂNG LONG 3


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức(người hoặc máy) thực hiện cùng một bước của thuật toán thì phải cho cùngmột kết quả. Chẳng hạn thuật toán 1 tìm số lớn nhất, dù cho máy tính hay bấtcứ người nào thực hiện, kết quả trả về vẫn đảm bảo là số lớn nhất trong dãya 1 , a 2 , . . . , a n .Tính phổ dụngThuật toán phải có tính năng có thể giải bất kì bài toán nào trong một lớpbài toán. Cụ thể là thuật toán có thể làm việc với các dữ liệu khác nhau trongmột miền xác định và luôn luôn dẫn đến kết quả mong muốn. Trong ví dụ thuậttoán 1 tìm số lớn nhất ở trên, ta sẽ luôn có số lớn nhất của dãy a 1 , a 2 , . . . , a ncho dù n và bản thân các giá trị a 1 , a 2 , . . . , a n có thay đổi.Đầu vào và Đầu raMột thuật toán có thể có nhiều đại lượng vào mà chúng ta gọi là dữ liệu đầuvào. Sau khi dừng thuật toán, tùy theo chức năng mà thuật toán đảm nhiệm,chúng ta có thể thu được một số đại lượng ra xác định. Tuy nhiên vẫn có nhữngthuật toán không có dữ liệu vào và cũng có thể không có dữ liệu ra.Tính đúng đắn (tính hiệu quả)Yêu cầu quan trọng nhất của thuật toán ngoài tính dừng sau hữu hạn bướclà tính đúng đắn, cụ thể là: với dữ liệu vào cho trước, sau một số hữu hạn bướcthuật toán phải dừng và cho kết quả mong muốn. Ta chú ý rằng bằng phép chạythử thuật toán với một số bộ dữ liệu nào đó chỉ có thể phát hiện tính sai của thuậttoán chứ không khẳng định được tính đúng đắn của thật toán. Muốn khẳng địnhtính đúng đắn của thuật toán thì ta phải tiến hành chứng minh. Có thể và nênchứng minh tính đúng đắn của thuật toán bằng cách dựa trên chính văn bản củathuật toán. Ta sẽ xem xét cách chứng minh tính đúng đắn của một số thuật toánở những phần nội dung tiếp theo của cuốn sách này.Một số ví dụ về thuật toánNhững thuật toán tìm kiếmNhững bài toán xác định vị trí của một phần tử nào đó trong một bảng liệtkê tuyến tính là những bài toán thường gặp trong nhiều trường hợp khác nhau.Những bài toán như vậy được gọi là những bài toán tìm kiếm. Trong phần nàyta sẽ xem xét một số thuật toán tìm kiếm.4 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.1. Khái niệm Thuật toán theo nghĩa trực giácBài toán tìm kiếm tổng quát được mô tả như sau: xác định vị trí của phầntử x trong một bảng liệt kê các phần tử phân biệt a 1 , a 2 , . . . , a n hoặc chỉ rarằng nó không có mặt trong bảng liệt kê đó. Lời giải của bài toán trên là vị trí icủa số hạng a i trong bảng liệt kê nếu a i x, và là 0 nếu x không có mặt trongbảng liệt kê.Thuật toán để giải bài toán trên rất đơn giản. Nó có tên là thuật toán tìmkiếm tuyến tính hay tìm kiếm tuần tự. Đầu tiên ta so sánh x với a 1 . Nếux a 1 thì kết quả trả về là vị trí 1. Khi x a 1 thì ta so sánh x với a 2 . Nếux a 2 thì kết quả trả về là vị trí 2. Khi x a 2 thì ta so sánh x với a 3 . Tiếptục quá trình này bằng cách so sánh x với từng số hạng a i của bảng liệt kê chotới khi x xuất hiện tại một vị trí nào đó ta gặp hoặc tất cả các phần tử của bảngđã được so sánh mà vẫn không gặp x. Giả mã của thuật toán này được trình bàynhư trong thuật toán 2.Thuật toán 2 Tìm kiếm tuyến tính.Đầu vào: Số x, dãy n số phân biệt a 1 , a 2 , . . . , a n .Đầu ra: Vị trí vitri i của x trong dãy hoặc vitri 0 nếu x không xuất hiện.1: i : 1.2: Trong khi i ¤ n và x a i Thực hiện3: i : i 1.4: Kết thúc Trong khi5: Nếu i ¤ n thì6: vitri : i.7: không thì8: vitri : 0.9: Kết thúc Nếu10: Kết quả trả về là vitri.Thuật toán trên hoàn toàn có thể được áp dụng cho mọi dãy gồm n số phânbiệt a 1 , a 2 , . . . , a n . Nhưng nhược điểm của nó là ứng với mọi dãy cụ thể,trong trường hợp xấu nhất, số phép so sánh đúng bằng độ lớn n của dãy số dữliệu đầu vào. Bây giờ ta xem xét một thuật toán tìm kiếm khác, có số phép sosánh trong trường hợp xấu nhất ít hơn, nhưng chỉ áp dụng cho các dãy gồm n sốphân biệt được sắp tăng dần hoặc giảm dần. Thuật toán thứ hai này được gọi làthuật toán tìm kiếm nhị phân. Đầu tiên ta so sánh x với phần tử nằm ở “điểmgiữa” (phần tử ở vị trí 1 nt u) của bảng liệt kê. Nếu x bằng phần tử này thì2vị trí của x trong bảng đã được xác định. Nếu không, do bảng đã được sắp tăngdần hoặc giảm dần nên x chỉ có thể rơi vào một trong hai nửa của bảng (bảngcon). Miền tìm kiếm đã được hạn chế chỉ còn một nửa. Tiếp tục so sánh x vớiphần tử ở giữa và cứ như vậy, ta sẽ có được vị trí của x hoặc biết được x khôngnằm trong bảng đã cho.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 5


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứccùng). Ta tìm từ phải qua trái (của hoán vị đang có) chỉ số j đầu tiên thỏa mãna j a j 1 . Ví dụ nếu ta đang có hoán vị 3, 6, 2, 5, 4, 1 thì do 4 ¡ 1, 5 ¡ 4,2 5 nên chỉ số j 3. Sau khi có chỉ số j, ta tìm tiếp a k là số nhỏ nhấtcòn lớn hơn a j trong các số ở bên phải a j . Trong ví dụ minh họa với hoán vị3, 6, 2, 5, 4, 1 thì a k 4 với k 5. Ta có khẳng định:• Hoán vị có dạng a 1 , a 2 , . . . , a j1 , a k , b j 1 , . . . , b n (trong đób j 1 , . . . , b n là hoán vị nào đó của a j , a j 1 , . . . , a k1 , a k 1 , . . . , a n )là những hoán vị đi sau hoán vị a 1 , a 2 , . . . , a n . Thật vậy, ta có điều nàyvì j 1 phần tử đầu của hai hoán vị là như nhau và a j a k .• Không có hoán vị nào của tập t1, 2, . . . , nu đi trước hoán vị dạnga 1 , a 2 , . . . , a j1 , a k , b j 1 , . . . , b n nói trên mà lại đi sau hoán vịa 1 , a 2 , . . . , a n . Lí do giải thích điều này là cách chọn a k (số nhỏ nhấtcòn lớn hơn a j trong các số ở bên phải a j ).Vậy hoán vị được sinh kế tiếp là hoán vị nhỏ nhất trong các hoán vị có dạnga 1 , a 2 , . . . , a j1 , a k , b j 1 , . . . , b n (trong đó b j 1 , . . . , b n là hoán vị nàođó của a j , a j 1 , . . . , a k1 , a k 1 , . . . , a n ). Ta có a j 1 ¡ a j 2 ¡ . . . ¡a k1 ¡ a j do a j 1 ¡ a j 2 ¡ . . . ¡ a k1 ¡ a k ¡ a j . Ta cũng cóa j ¡ a k 1 ¡ . . . ¡ a n vì a k ¡ a k 1 ¡ . . . ¡ a n và a k là số nhỏ nhất lớnhơn a j . Vậya n a n1 . . . a k 1 a j a k1 . . . a j 1 .Nói cách khác, hoán vịa 1 , a 2 , . . . , a j1 , a k , a n , a n1 , . . . , a k 1 , a j , a k1 , . . . , a j 1là hoán vị kế tiếp hoán vị đã cho.Với hoán vị 3, 6, 2, 5, 4, 1 đưa ra ở trên thì hoán vị liền sau là 3, 6, 4, 1, 2, 5.Các qui tắc sau cho phép ta xây dựng hoán vị kế tiếp của hoán vịa 1 , a 2 , . . . , a n :B1 Tìm từ phải qua trái (của hoán vị đang có a 1 , a 2 , . . . , a n ) chỉ số j đầu tiênsao cho a j a j 1 .B2 Tìm a k là số nhỏ nhất còn lớn hơn a j trong số các số ở bên phải a j .B3 Đổi chỗ a j với a k .B4 Lật ngược đoạn từ a j 1 đến a n .l8 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.1. Khái niệm Thuật toán theo nghĩa trực giácThuật toán 5 Sinh hoán vị kế tiếp.Đầu vào: Hoán vị hiện tại a 1 , a 2 , . . . , a n n, n 1, . . . , 2, 1.Đầu ra: Hoán vị liền sau theo thứ tự từ điển.1: j : n 1.2: Trong khi a j ¡ a j 1 Thực hiện3: j : j 1.4: Kết thúc Trong khi5: k : n.6: Trong khi a j ¡ a k Thực hiện7: k : k 1.8: Kết thúc Trong khi9: Đổi chỗ a j và a k .10: s : j 1, r : n.11: Trong khi r ¡ s Thực hiện12: Đổi chỗ a r và a s .13: r : r 1, s : s 1.14: Kết thúc Trong khi15: Hoán vị mới liền sau hoán vị đã cho theo thứ tự từ điển là a 1 , a 2 , . . . , a n .Các qui tắc trên được thể hiện thông qua thuật toán 5 dưới dạng giả mã.Ví dụ 1.1.8 Liệt kê tất cả các xâu nhị phân độ dài n theo thứ tự từ điển.looomooonLời giải: Xâu nhị phân đầu tiên là 00 . . . 0. Xâu nhị phân cuối cùng sẽ làlooomooonn bit11 . . . 1. Giả sử b 1 , b 2 , . . . , b n là xâu nhị phân hiện tại (không phải xâu nhịn bitphân cuối cùng). Qui tắc sau sẽ cho ta xâu nhị phân kế tiếp:B1 Tìm chỉ số i đầu tiên từ phải qua trái (i n, pn 1q, . . . , 1) thỏa mãnb i 0.B2 Gán lại b i 1 và b j 0 với tất cả j ¡ i.Việc chứng minh tính đúng đắn của qui tắc trên dành cho các bạn đọc như mộtbài tập đơn giản.Chẳng hạn với xâu 1101011111 ta có i 5 và xâu nhị phân kế tiếp sẽ là1101100000.Bài toán liệt kê tất cả các xâu nhị phân độ dài n theo thứ tự từ điển chính làbài toán liệt kê tất cả các tập con có thể của tập có n phần tử ta 1 , a 2 , . . . , a n u.Phần tử a i sẽ có mặt trong tập con đang xét nếu và chỉ nếu bit thứ i (các bitđược tính từ 1 từ trái qua phải) nhận giá trị 1.lThuật toán 6 là biểu diễn dạng giả mã của qui tắc sinh xâu nhị phân kế tiếp theothứ tự từ điển.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 9


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcThuật toán 6 Sinh xâu nhị phân kế tiếp.looomooonĐầu vào: Xâu nhị phân hiện tại b 1 b 2 . . . b n 11 . . . 1.Đầu ra: Xâu nhị phân liền sau theo thứ tự từ điển.1: i : n.2: Trong khi b i 1 Thực hiện3: b i : 0, i : i 1.4: Kết thúc Trong khi5: b i : 1.6: Xâu nhị phân mới liền sau xâu nhị phân đã cho theo thứ tự từ điển là b 1 b 2 . . . b n .nVí dụ 1.1.9 Liệt kê tất cả các tập con m phần tử của tập n phần tử (tổ hợpchập m của n phần tử).Lời giải: Ta có thể coi như tập n phần tử đã cho là tập A t1, 2, . . . , nu.Mỗi tập con m phần tử của A có thể biểu diễn bởi một dãy có thứ tự các phần tửa 1 , a 2 , . . . , a m (a i P A) thỏa mãn 1 ¤ a 1 a 2 . . . a m ¤ n. Ta chọnthứ tự từ điển là thứ tự để sinh tập con kế tiếp của tập con ta 1 , a 2 , . . . , a m ubiểu diễn bởi dãy a 1 , a 2 , . . . , a m (a i P A) thỏa mãn 1 ¤ a 1 a 2. . . a m ¤ n. Tập con đầu tiên là t1, 2, . . . , mu và tập con cuối cùng làtn m 1, n m 2, . . . , nu. Tính đúng đắn của thuật toán sinh kế tiếpsau được đề nghị như một bài tập dành cho các bạn:B1 Tìm phần tử đầu tiên từ phải qua trái a i của dãy a 1 , a 2 , . . . , a m thỏa mãna i n m i.B2 Thay a j bởi a i j i 1 với j i 1, m và a i bởi a i 1.Chẳng hạn tập con 4 phần tử của tập t1, 2, 3, 4, 5, 6u đang xét là tậpt1, 2, 5, 6u. Lùi từ phải qua trái ta thấy a 4 6 64 4, a 3 5 64 3,a 2 2 6 4 2. Vậy i 2. Ta thay a 2 bởi 2 1 3, a 3 bởi2 3 2 1 4 và a 4 bởi 2 4 2 1 5. Vậy tập con kế tiếp làt1, 3, 4, 5u. lThuật toán 7 là biểu diễn dạng giả mã của qui tắc sinh tập con kế tiếp theo thứtự từ điển.Mặc dù thuật toán sinh cụ thể nào cũng có tính chất phổ dụng (áp dụng đượccho mọi bộ dữ liệu ứng với bài toán cho trước) nhưng phương pháp sinh nóichung không có tính chất phổ dụng. Không phải cấu hình kế tiếp nào cũng đượcsinh một cách đơn giản từ cấu hình hiện tại. Mặt khác, cấu hình ban đầu khôngphải dễ tìm vì ngay cả sự tồn tại của một cấu hình nhiều khi vẫn còn là nghi vấn.Vì vậy, thông thường thuật toán sinh chỉ có thể xây dựng được đối với những10 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcHoán vị 2, 5, 1, 3, 4 của tập t1, 2, 3, 4, 5u cho ta a 1 1 (có số 1 nhỏ hơn2 mà đứng sau 2), a 2 0 (không có số nào nhỏ hơn 3 mà đứng sau 3), a 3 0(không có số nào nhỏ hơn 4 mà đứng sau 4), a 4 3 (có ba số nhỏ hơn 5 màđứng sau 5). Vậy hoán vị 2, 5, 1, 3, 4 tương ứng với số 73.Hoán vị 5, 4, 3, 2, 1 của tập t1, 2, 3, 4, 5u cho ta a 1 1 (có số 1 nhỏ hơn2 mà đứng sau 2), a 2 2 (có hai số nhỏ hơn 3 mà đứng sau 3), a 3 3 (có basố nhỏ hơn 4 mà đứng sau 4), a 4 4 (có bốn số nhỏ hơn 5 mà đứng sau 5).Vậy hoán vị 5, 4, 3, 2, 1 tương ứng với số 1 4 18 96 119.Ngược lại, cho trước số nguyên không âm nhỏ hơn n!. Ta có thuật toánxây dựng một hoán vị của tập t1, 2, . . . , nu tương ứng với số đã cho. Trướctiên ta khai triển Cantor số nguyên không âm nhỏ hơn n! đã cho, được bộ sốa 1 , a 2 , . . . , a n1 . Đặt n vào vị trí còn trống thứ n a n1 trong hoán vị (cácvị trí còn trống được đánh số từ 1 trở đi). Rõ ràng là khi đó, sau vị trí của ncòn có a n1 vị trí trống. Điều đó có nghĩa là a n1 là số các số nguyên nhỏ hơnn và đứng sau n trong hoán vị. Đánh số lại các vị trí còn trống theo thứ tự từtrái qua phải theo thứ tự 1, 2, . . . , n 1. Đặt n 1 vào vị trí còn trống thứpn 1q a n2 . Ta cứ tiếp tục quá trình này cho tới khi 1 được đặt vào vị trítrống cuối cùng.Nhận xét 1.1.12 Hai hoán vị khác nhau của cùng tập t1, 2, . . . , nu sẽ đượctương ứng với hai con số nguyên không âm nhỏ hơn n! khác nhau. Hoán vị nhỏhơn (đi trước) theo thứ tự từ điển sẽ tương ứng với số nguyên nhỏ hơn.Thuật toán nói trên được gọi là thuật toán sinh hoán vị Cantor. Dạng giả mãcủa nó được trình bày trong thuật toán 8.1.2 Số nguyên và phép chiaTập hợp số nguyên Z t0, 1, 2, . . .u bao gồm tất cả các số tự nhiênvà đối của tất cả các số tự nhiên. Khác với tập số tự nhiên N (nguyên lí sắptốt), tập hợp số nguyên không có số nhỏ nhất. Trong tập hợp số nguyên, cácphép toán cộng, trừ, nhân luôn luôn thực hiện được. Tuy nhiên, phép chia mộtsố nguyên cho một số nguyên khác 0 không phải bao giờ cũng thực hiện được.Chính vì lí do phép chia cho một số nguyên khác 0 không phải bao giờ cũngthực hiện được, nên những ý tưởng mà chúng ta phát triển trong phần này đềudựa trên khái niệm về tính chia hết. Tính chia hết dẫn dắt chúng ta tới kháiniệm số nguyên tố và định lí cơ bản của số học (khẳng định rằng mọi số nguyêndương khác 1 đều có thể biểu diễn một cách duy nhất dưới dạng tích của những12 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaThuật toán 8 Sinh hoán vị thông qua khai triển Cantor.Đầu vào: Số nguyên dương n và số nguyên i thỏa mãn 0 ¤ i n!.Đầu ra: Hoán vị p 1 , p 2 , . . . , p n của tập t1, 2, . . . , nu tương ứng với i.1: x : i.2: Duyệt tất cả j sao cho 1 ¤ j ¤ n Thực hiện3: p j : 0.4: Kết thúc Duyệt5: Duyệt tất cả k sao cho 1 ¤ k ¤ n 1 Thực hiện6: (Chú thích: Tính c a nk.)x7: c : tpn kq!u, x : x cpn kq!.8: (Chú thích: Đặt n k 1 vào vị trí còn trống thứ n k 1 c.)9: h : n.10: Trong khi p h 0 Thực hiện11: h : h 1.12: Kết thúc Trong khi13: (Chú thích: h bây giờ đang trỏ vào vị trí còn trống thứ n k 1.)14: Duyệt tất cả j sao cho 1 ¤ j ¤ c Thực hiện15: h : h 1.16: Trong khi p h 0 Thực hiện17: h : h 1.18: Kết thúc Trong khi19: Kết thúc Duyệt20: (Chú thích: h bây giờ đang trỏ vào vị trí còn trống thứ n k 1 c.)21: p h : n k 1.22: Kết thúc Duyệt23: (Chú thích: Và cuối cùng, đặt 1 vào vị trí trống cuối cùng còn lại.)24: h : 1.25: Trong khi p h 0 Thực hiện26: h : h 1.27: Kết thúc Trong khi28: p h : 1.29: p 1 , p 2 , . . . , p n là hoán vị của t1, 2, . . . , nu tương ứng với i.số nguyên tố). Việc xác định một số có nguyên tố hay không và phân tích mộtsố nguyên dương khác 1 thành tích của những số nguyên tố có một vai trò quantrọng trong ngành mật mã. Khi phép chia cho một số nguyên khác 0 không thựchiện được, ta sẽ có thương số và số dư. Thao tác tính toán trên các số dư sẽ dẫntới số học đồng dư, có một vai trò không nhỏ trong tin học.Tính chia hếtĐịnh nghĩa 1.2.1 Cho hai số nguyên a và b, b 0. Ta nói a chia hết cho b,hay b chia hết a nếu như có số nguyên q sao cho a bq. Khi ấy, người ta cònnói a là bội của b hay b là ước của a và kí hiệu a . b hay b a. Nếu a khôngBộ môn Toán - ĐẠI HỌC THĂNG LONG 13


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcchia hết cho b ta kí hiệu là a ./ b hay b a.Chú ý: Nếu b a mà a 0 thì từ a bq ta có q 0 cho nên|a| |b|.|q| ¥ |b| do |q| ¥ 1.Ví dụ 1.2.2 Cho n và d là hai số nguyên dương. Có bao nhiêu số nguyên dươngkhông vượt quá n chia hết cho d?Lời giải: Các số nguyên dương chia hết cho d là tất cả các số nguyên dươngcó dạng dk, với k cũng là một số nguyên dương nào đó. Do vậy, số các sốnguyên dương chia hết cho d và không vượt quá n sẽ bằng số các số nguyên kvới 0 kd ¤ n hay 0 k ¤ n d . Vậy có tn u số nguyên dương không vượtdquá n chia hết cho d.Từ định nghĩa chia hết, ta có thể suy ra một số tính chất chia hết sau (coi nhưnhững bài tập đơn giản):Tính chất 1.2.3 (Tính chất chia hết) Trên tập số nguyên Z :1. Nếu b a thì b a;2. a a, @a P Z , a 0;3. 1 a, @a P Z . Ngoài 1 ra không còn có số nguyên nào khác có tínhchất này;4. a 0, @a P Z , a 0. Ngoài 0 ra không còn có số nguyên nào khác cótính chất này;5. b a và a b suy ra a b;6. a b và b c suy ra a c;7. Nếu c a i với mọi i 1, n thì c a 1 x 1 a 2 x 2 . . . a n x n vớix i P Z , i 1, n.Nếu a, b là những số nguyên bất kì (b 0) thì không phải lúc nào a cũng luônchia hết cho b. Một cách tổng quát, ta có định lí sau:Định lý 1.2.1 (Thuật toán chia) Cho hai số nguyên a và b (b 0). Khi ấy códuy nhất cặp số nguyên q, r thỏa mãn các hệ thứca bq r và 0 ¤ r |b|.l14 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaChứng minh:a) Tính tồn tại: Xét tập M tbx | x P Z , bx ¤ au. Hiển nhiên M „ Zvà M H bởi vì |b|.|a| là một bội của b không vượt quá a. Hơn nữaM bị chặn trên bởi a nên trong M có phần tử lớn nhất, chẳng hạn là bq(q P Z ). Vì |b| ¥ 1 nên bq |b| ¡ bq và do đó bq |b| R M. Mặtkhác, bq |b| cũng là bội của b nên ta có:bq ¤ a bq |b|hay0 ¤ a bq |b|.Đặt r a bq ta có r P Z , a bq r, 0 ¤ r |b|.b) Tính duy nhất: Giả sử có hai cặp số nguyên q 1 , r 1 và q 2 , r 2 thỏa mãn hệthức:a bq 1 r 1 , 0 ¤ r 1 |b|;vàa bq 2 r 2 , 0 ¤ r 2 |b|.Từ những ràng buộc trên, ta có bpq 1 q 2 q r 2 r 1 và |r 2 r 1 | |b|.Do |b| ¡ 0, và |b|.|q 1 q 2 | |b| nên ta có |q 1 q 2 | 1. Mặt khác,|q 1 q 2 | là số tự nhiên nên từ |q 1 q 2 | 1 suy ra |q 1 q 2 | 0 hayq 1 q 2 và do đó r 1 r 2 .Định lí được chứng minh hoàn toàn.lĐịnh nghĩa 1.2.4 Cho trước hai số nguyên a và b (b 0). Nếu a bq rthỏa mãn 0 ¤ r |b| thì a được gọi là số bị chia, b là số chia, q được gọi làthương số, r được gọi là số dư của phép chia a cho b. Kí hiệu q a div b,r a mod b.Ví dụ 1.2.5 Chia 15 cho 4 ta được thương là 3, dư 3. Chia 15 cho 4 ta đượcthương là 4 dư 1.Từ những định nghĩa trên ta có khẳng định sau:Mệnh đề 1.2.6 Số nguyên a chia hết cho số nguyên b pb 0q khi và chỉ khi sốdư của phép chia a cho b bằng không.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 15


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcSố nguyên tố và Định lí cơ bản của số họcTrong tập hợp số tự nhiên N thì chỉ có số không là có vô số ước. Ngoài ranhững số tự nhiên khác không đều có hữu hạn ước trong đó 1 chỉ có đúng mộtước tự nhiên là chính nó, còn mỗi số tự nhiên lớn hơn 1 bao giờ cũng có ít nhấthai ước tự nhiên là 1 và chính nó. Trong phần này ta quan tâm đến lớp nhữngsố tự nhiên mà ngoài ước là 1 và chính nó ra, không còn một ước tự nhiên nàokhác. Những số như vậy có một vai trò quan trọng, là những viên gạch xây nêncác số tự nhiên. Điều đó được thể hiện thông qua định lí cơ bản của số học.Định nghĩa 1.2.7 Số tự nhiên lớn hơn 1 được gọi là số nguyên tố nếu như nókhông có ước tự nhiên nào khác ngoài số 1 và chính nó. Các số tự nhiên lớnhơn 1 và không phải là số nguyên tố được gọi là hợp số.Nhận xét 1.2.8 Theo định nghĩa trên, tập các số tự nhiên được phân thành batập hợp rời nhau: t0, 1u, tập các số nguyên tố, tập các hợp số.Ví dụ 1.2.9 Ta có 2, 3, 5, 7, 11, 257 là những số nguyên tố, 4, 8, 9, 12, 326là những hợp số.Ví dụ trên chứng tỏ trong thực tế có các số nguyên tố. Sự tồn tại của số nguyêntố còn được khẳng định qua mệnh đề sau:Mệnh đề 1.2.10 Ước nhỏ nhất lớn hơn 1 của một số tự nhiên lớn hơn 1 là mộtsố nguyên tố.Chứng minh: Giả sử a là một số tự nhiên lớn hơn 1 và số tự nhiên p ¡ 1 làước nhỏ nhất của a. Nếu p không phải là số nguyên tố thì p là hợp số và do đónó có ước p 1 sao cho 1 p 1 p. Từ đó p 1 a và 1 p 1 p mâu thuẫnvới giả thiết p là ước nhỏ nhất lớn hơn 1 của a.lĐịnh lí cơ bản của số học dưới đây được ta thừa nhận không chứng minh:Định lý 1.2.2 (Định lí cơ bản của số học) Mỗi số tự nhiên lớn hơn 1 đều phântích được thành tích những thừa số nguyên tố và sự phân tích đó là duy nhấtnếu không kể đến thứ tự các thừa số.Trong phân tích số a ¡ 1 thành một tích những thừa số nguyên tố ở định lí cơbản nói trên, có thể xảy ra nhiều thừa số nguyên tố lặp lại. Gọi p 1 , p 2 , . . . , p klà các ước nguyên tố đôi một khác nhau của a và α i (1 ¤ i ¤ k) là số các nhântử cùng là p i trong phân tích của a thành tích những thừa số nguyên tố thì ta có:a p α 11 pα 22 . . . pα kk .Phân tích kể trên được gọi là dạng phân tích tiêu chuẩn của số a.16 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaVí dụ 1.2.11 1960 2 3 .5.7 2 .Định lí cơ bản đã khẳng định số nguyên tố là cơ sở nhân của tất cả các số tựnhiên lớn hơn 1. Do vậy việc xác định một số đã cho là số nguyên tố hay khôngthường đóng một vai trò quan trọng, đặc biệt là trong ngành mật mã học, sửdụng các số nguyên tố lớn để mã hóa các thông điệp bí mật.Số nguyên tố luôn tồn tại trong thực tế nhưng liệu số các số nguyên tố cóhữu hạn? Mệnh đề sau khẳng định số các số nguyên tố là vô hạn nên không tồntại bảng tất cả các số nguyên tố.Mệnh đề 1.2.12 (Euclid) Tập hợp các số nguyên tố là vô hạn.Chứng minh: Giả sử chỉ có đúng n số nguyên tố kí hiệu là p 1 , p 2 , . . . , p n .Xét số tự nhiên a p 1 p 2 . . . p n 1. Ta nhận thấy a là một số tự nhiên lớn hơn1 nên nó phải có một ước nguyên tố p nào đó. Nhưng vì p i a @1 ¤ i ¤ nnên p là số nguyên tố khác với n số nguyên tố p 1 , p 2 , . . . , p n kể trên. Mâuthuẫn này dẫn tới điều phải chứng minh.lMặt khác, nếu ta đánh số các số nguyên tố theo thứ tự tăng dần p 1 2, p 2 3,p 3 5, . . . thì cho đến nay, người ta cũng chưa biết một biểu thức tổng quátnào theo chỉ số n cho số nguyên tố thứ n (p n ). Trong thực tế cần sử dụng,người ta lập nên các bảng số nguyên tố không vượt quá một số tự nhiên A nàođó.Mệnh đề 1.2.13 Ước nhỏ nhất lớn hơn 1 của một hợp số a không vượt quá ? a.Chứng minh: Gọi p là ước nhỏ nhất lớn hơn 1 của a (do a là hợp số nêna pq và q ¡ 1). Theo giả thiết p là ước nhỏ nhất lớn hơn 1 (tất nhiên p làsố nguyên tố) nên 1 p ¤ q. Vậy p 2 ¤ pq a hay p ¤ ? a là điều cầnphải chứng minh.lTừ mệnh đề trên ta có hệ quả sau:Hệ quả 1.2.14 Nếu số tự nhiên a ¡ 1 không có một ước nguyên tố nào trongkhoảng từ 1 đến t ? au thì a là số nguyên tố.Ví dụ 1.2.15 Chứng minh 101 là số nguyên tố.Lời giải: Các số nguyên tố không vượt quá t?101u 10 là 2, 3, 5, 7. Vì 101không chia hết cho 2, 3, 5, 7 nên suy ra 101 là số nguyên tố.lThuật toán 9 là thuật toán lập bảng những số nguyên tố không vượt quá A haycòn gọi là thuật toán sàng Erastothenes.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 17


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcThuật toán 9 Thuật toán xây dựng bảng những số nguyên tố không vượt quá A.Đầu vào: Số tự nhiên A ¡ 1.Đầu ra: Tất cả những số nguyên tố không vượt quá A.1: Duyệt tất cả k sao cho 0 ¤ k ¤ A Thực hiện2: b k : k.3: Kết thúc Duyệt4: Xóa b 0 , b 1 .5: m : 0, p 1 : 2.6: Trong khi p m 1 ¤ t?Au Thực hiện7: Đánh dấu p m 1 trong bảng b k (0 ¤ k ¤ A).8: Xóa tất cả bội của p m 1 (trừ p m 1 ) trong bảng b k (0 ¤ k ¤ A).9: m : m 1.10: p m 1 :Số đầu tiên trong bảng chưa bị xóa cũng như chưa bị đánh dấu.11: Kết thúc Trong khi12: Tất cả những số nguyên tố không vượt quá A chính là những số còn lại không bị xóa trongbảng b k (0 ¤ k ¤ A).Tính đúng đắn của thuật toán 9 được chứng minh như sau: mọi hợp sốa ¤ A đều có một ước nguyên tố p ¤ ? a ¤ ? A cho nên p phải là một trongcác số nguyên tố bị đánh dấu p 1 , p 2 , . . . , p n với p n ¤ ? A p n 1 và do đóa bị xóa với tư cách là bội của p. Vậy những số còn lại trong bảng chính lànhững số nguyên tố không vượt quá A.Ta cũng có thuật toán ngắn gọn kiểm tra xem một số n cho trước có phải làsố nguyên tố hay không dựa vào nhận xét: nếu n là số nguyên tố lớn hơn 5 thìphần dư của phép chia n cho 6 chỉ là 1 hoặc 5. Nhận xét này cho phép ta chỉkiểm tra tính chia hết của n cho các số nguyên dương lớn hơn 1 và không vượtquá căn bậc hai của n theo bước tăng 2, 4, 2, 4, . . ..Chứng minh tính đúng đắn của thuật toán 10 rất đơn giản coi như bài tậpdành cho các bạn.Và cuối cùng, để tìm dạng phân tích tiêu chuẩn của một số tự nhiên n chotrước, ta có thuật toán 11.Ước số chung lớn nhất và Bội số chung nhỏ nhấtƯớc số chung lớn nhấtĐịnh nghĩa 1.2.16 Một số nguyên được gọi là ước chung của những số nguyêna 1 , a 2 , . . . , a n nếu nó là ước đồng thời của mỗi số đó.Định nghĩa 1.2.17 Số lớn nhất d trong tất cả các ước chung của a 1 , a 2 , . . . , a n(không đồng thời bằng không) được gọi là ước chung lớn nhất củaa 1 , a 2 , . . . , a n . Kí hiệu d UCLNpa 1 , a 2 , . . . , a n q.18 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaThuật toán 10 Thuật toán kiểm tra tính nguyên tố của n.Đầu vào: Số tự nhiên n.Đầu ra: Trả lời câu hỏi n có nguyên tố hay không?1: Nếu n 2 hoặc n 3 thì2: Khẳng định n là số nguyên tố. Dừng thuật toán.3: Kết thúc Nếu4: Nếu n 0 hoặc n 1 hoặc n mod 2 0 hoặc n mod 3 0 thì5: Khẳng định n không phải số nguyên tố. Dừng thuật toán.6: Kết thúc Nếu7: Nếu n 25 thì8: Khẳng định n là số nguyên tố. Dừng thuật toán.9: Kết thúc Nếu10: i : 5, j : 2.11: Trong khi i ¤ t?nu Thực hiện12: Nếu n mod i 0 thì13: Khẳng định n không phải số nguyên tố. Dừng thuật toán.14: Kết thúc Nếu15: i : i j, j : 6 j.16: Kết thúc Trong khi17: Tới được đây thì n là số nguyên tố.Định nghĩa 1.2.18 Nếu 1 là ước chung lớn nhất của a 1 , a 2 , . . . , a n thì ta nóia 1 , a 2 , . . . , a n là nguyên tố cùng nhau. Còn nếu 1 là ước chung lớn nhấtcủa mọi cặp a i , a j với i j, i, j 1, 2, . . . , n thì ta nói a 1 , a 2 , . . . , a n lànguyên tố với nhau từng đôi một.Ví dụ 1.2.19 UCLNp36, 64, 40q 4, UCLNp32, 56q 8.Nhận xét 1.2.20 • Ta đã biết 1 luôn là ước chung của mọi số nguyên nêna 1 , a 2 , . . . , a n bao giờ cũng có ước chung ít nhất là số 1.• Số 0 là bội của mọi số nguyên khác không nên nếu những số a 1 , a 2 , . . . , a nđều bằng 0 thì tất cả các số nguyên khác không đều là ước chung của chúngvà khi đó khái niệm ước chung lớn nhất là không có nghĩa. Do đó ta phảicó giả thiết các số đang xét a 1 , a 2 , . . . , a n không đồng thời bằng 0. Hơnnữa, tập hợp tất cả các ước chung của các số đang xét không thay đổi nếuta thêm vào hoặc bớt đi từ a 1 , a 2 , . . . , a n những số 0. Do đó ta có thểgiả thiết a i 0 với i 1, 2, . . . , n.Định lý 1.2.3 Giả sử c là một ước chung của a 1 , a 2 , . . . , a n . Khi đóc chia hết UCLNpa 1 , a 2 , . . . , a n q. Ngược lại, nếu c là ước củaUCLNpa 1 , a 2 , . . . , a n q thì c là ước chung của a 1 , a 2 , . . . , a n .Chứng minh: Xét tập hợpM ta 1 x 1 a 2 x 2 . . . a n x n | x i P Z , @i 1, 2, . . . , nu.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 19


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcThuật toán 11 Thuật toán tìm dạng phân tích tiêu chuẩn của n.Đầu vào: Số n P N , bảng p 1 , p 2 , . . . , p k tất cả những số nguyên tố không vượt quá ? n.Đầu ra: Dạng phân tích tiêu chuẩn của n.1: i : 1, α i : 0.2: Trong khi n ¡ 1 Thực hiện3: Trong khi n mod p i 0 Thực hiện4: n : n div p i , α i : α i 1.5: Kết thúc Trong khi6: i : i 1, α i : 0.7: Kết thúc Trong khi8: Dạng phân tích tiêu chuẩn n ¹ α i ¡0p α ii .Ta có M „ Z và M chứa ít nhất một số nguyên dương. Thật vậy, lấyx 1 " 1 nếu a1 ¡ 0,1 nếu a 1 0,và x 2 x 3 . . . x n 0 thì a 1 x 1 a 2 x 2 . . . a n x n |a 1 | ¡ 0,|a 1 | P M. Do đó trong M luôn có số nguyên dương nhỏ nhất chẳng hạn là d,tức là:d a 1 u 1 a 2 u 2 . . . a n u n , u i P Z , i 1, 2, . . . , n vàd ¤ x, @x P M, x ¡ 0.Ta sẽ chứng minh d UCLNpa 1 , a 2 , . . . , a n q. Trước hết ta có d x, @x a 1 x 1 a 2 x 2 . . . a n x n P M. Thật vậy, theo định lí thuật toánchia x dq r, 0 ¤ r d, r, q P Z . Do đór x dq a 1 px 1 u 1 qq a 2 px 2 u 2 qq . . . a n px n u n qqlà một số nguyên dương thuộc M nhỏ hơn d trái với cách chọn số d. Vậyr 0 hay x dq, q P Z , nghĩa là d x, @x P M. Vì a k a 1 .0 . . .a k1 .0 1.a k a k 1 .0 . . . a n .0 P M nên d a k , k 1, 2, . . . , n.Mặt khác, nếu c là ước chung của a 1 , a 2 , . . . , a n thì c là ước củad a 1 u 1 a 2 u 2 . . . a n u n . Kết hợp với điều kiện d nguyêndương, ta có d ¥ c với c là ước chung bất kì của a 1 , a 2 , . . . , a n . Vậyd UCLNpa 1 , a 2 , . . . , a n q.Và ta cũng có luôn: c là ước chung của a 1 , a 2 , . . . , a n khi và chỉ khi nó làước của d UCLNpa 1 , a 2 , . . . , a n q.lHệ quả 1.2.21 Nếu d UCLNpa 1 , a 2 , . . . , a n q thì tồn tại những số nguyênu 1 , u 2 , . . . , u n sao cho d a 1 u 1 a 2 u 2 . . . a n u n .20 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaHệ quả 1.2.22 Điều kiện cần và đủ để UCLNpa 1 , a 2 , . . . , a n q 1 là tồn tạinhững số nguyên u 1 , u 2 , . . . , u n sao cho 1 a 1 u 1 a 2 u 2 . . . a n u n .Hệ quả 1.2.23 Với mọi số nguyên dương k ta cóUCLNpk.a 1 , k.a 2 , . . . , k.a n q k. UCLNpa 1 , a 2 , . . . , a n q.Hệ quả 1.2.24 Nếu c là ước chung của a 1 , a 2 , . . . , a n thì ta cóUCLNp a 1c , a 2c , . . . , a nc q UCLNpa 1, a 2 , . . . , a n q.cHệ quả 1.2.25 Cần và đủ để một ước chung dương d của a 1 , a 2 , . . . , a n làUCLNpa 1 , a 2 , . . . , a n q là a 1d , a 2d , . . . , a nnguyên tố cùng nhau.dMột số tính chất của ước số chung lớn nhấtTính chất 1.2.26 Nếu UCLNpa, bq 1 và b ac thì b c.Chứng minh: Vì UCLNpa, bq 1 suy ra tồn tại x, y P Z sao cho ax by 1. Từ đó ac.x bc.y c. Do b ac nên b acx bcy tức là b c. lTính chất 1.2.27 Nếu UCLNpa, bq 1 và c là một số nguyên tùy ý thìUCLNpac, bq UCLNpc, bq.Chứng minh: Ta sẽ chứng minh tập các ước chung của ac và b trùng với tậpcác ước chung của b và c.Thật vậy, giả sử x P Z và x ac, x b. Khi đó x ac và x bc hayx UCLNpac, bcq c. UCLNpa, bq c. Vậy ta có x b và x c.Ngược lại, giả sử x P Z , x b và x c thì hiển nhiên ta có x b vàx ac.lTính chất 1.2.28 Nếu UCLNpa, bq 1 và UCLNpa, cq 1 thìUCLNpa, bcq 1.Chứng minh: Áp dụng tính chất trên, UCLNpa, bq 1 nên ta cóUCLNpa, bcq UCLNpa, cq 1.lTính chất 1.2.29 Nếu a, b, c P Z sao cho a bq c (q P Z ) thìUCLNpa, bq UCLNpb, cq.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 21


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcChứng minh: Thật vậy, mọi ước chung của a và b đều là ước của c a bqnên cũng là ước chung của b và c. Ngược lại, mọi ước chung của b và ccũng đều là ước của a bq c nên cũng đều là ước của a và b. VậyUCLNpa, bq UCLNpb, cq.lCách tìm ước số chung lớn nhấtTrước tiên ta xét bài toán tìm ước chung lớn nhất của hai số nguyên a và bvới giả thiết rằng a ¥ b ¡ 0.a) Trường hợp b chia hết a: Trong trường hợp này dễ dàng nhận thấyUCLNpa, bq b.b) Trường hợp b không chia hết a: Theo định lí thuật toán chia, ta cóa bq 0 r 1 0 r 1 b;b r 1 q 1 r 2 0 r 2 r 1 ;r 1 r 2 q 2 r 3 0 r 3 r 2 ;. . .r n2 r n1 q n1 r n 0 r n r n1 ;r n1 r n q n .Chú ý rằng số các dòng trên (các phép chia) là hữu hạn và kết thúc bằngsố dư không (dòng cuối cùng) vì dãy b, r 1 , r 2 , . . . là dãy những số tự nhiêngiảm thực sự nên ta có không quá b phép chia. Theo tính chất 1.2.29 ta cóUCLNpa, bq UCLNpb, r 1 q . . . UCLNpr n1 , r n q. Vì r n1 r n q n nên UCLNpa, bq UCLNpr n1 , r n q r n . Cách tìm ước chung lớnnhất của hai số a và b nói trên được gọi là thuật toán Euclid.Ví dụ 1.2.30 Hãy tìm UCLNp924, 360q.Lời giải: Thực hiện phép chia trên hai số đã cho ta được:924 360.2 204,360 204.1 156,204 156.1 48,156 48.3 12,48 12.4.Số dư khác không cuối cùng ở đây là 12. Vậy UCLNp924, 360q 12.l22 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaThuật toán 12 Thuật toán Euclid tìm ước chung lớn nhất của hai số nguyên không âm.Đầu vào: Hai số nguyên không âm a và b.Đầu ra: UCLNpa, bq.1: Trong khi b 0 Thực hiện2: r : a mod b.3: a : b.4: b : r.5: Kết thúc Trong khi6: Kết quả trả về chính là giá trị a tại thời điểm này.Viết dưới dạng giả mã, ta có thuật toán 12.Ngoài thuật toán Euclid nói trên, trong nhiều trường hợp, ta cần đến thuậttoán Euclid mở rộng. Theo hệ quả 1.2.21, nếu d là ước chung lớn nhất của haisố nguyên a và b thì tồn tại những số nguyên x và y sao cho d a.x b.y.Thuật toán Euclid mở rộng mà ta đề cập đến dưới đây không những cho taước chung lớn nhất của hai số nguyên a và b mà còn cho ta biểu diễn d UCLNpa, bq a.x b.y.Thuật toán 13 Thuật toán Euclid mở rộng.Đầu vào: Hai số nguyên không âm a và b.Đầu ra: Bộ ba pd, x, yq với d UCLNpa, bq và x, y P Z thỏa mãn d a.x1: x : 1, y : 0.2: u : 0, v : 1.3: Trong khi b 0 Thực hiện4: q : a div b.5: r : a b.q, s : x u.q, t : y v.q.6: a : b, x : u, y : v.7: b : r, u : s, v : t.8: Kết thúc Trong khi9: Kết quả trả về là bộ ba pa, x, yq tại thời điểm này.b.y.Ví dụ 1.2.31 Hãy áp dụng thuật toán Euclid mở rộng cho a 63, b 24.Lời giải:B1 Đầu tiên ta có pa 63, x 1, y 0q và pb 24, u 0, v 1q.B2 Kiểm tra b 24 0, tính q 63 div 24 2, bộ ba pr 15, s 1, t 2q và do đó ta có hai bộ ba pa 24, x 0, y 1q vàpb 15, u 1, v 2q.B3 Kiểm tra b 15 0, tính q 24 div 15 1, bộ ba pr 9, s 1, t 3q và do đó ta có hai bộ ba pa 15, x 1, y 2q vàpb 9, u 1, v 3q.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 23


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcB4 Kiểm tra b 9 0, tính q 15 div 9 1, bộ ba pr 6, s 2, t 5q và do đó ta có hai bộ ba pa 9, x 1, y 3q vàpb 6, u 2, v 5q.B5 Kiểm tra b 6 0, tính q 9 div 6 1, bộ ba pr 3, s 3, t 8q và do đó ta có hai bộ ba pa 6, x 2, y 5q vàpb 3, u 3, v 8q.B6 Kiểm tra b 3 0, tính q 6 div 3 2, bộ ba pr 0, s 8, t 21q và do đó ta có hai bộ ba pa 3, x 3, y 8q vàpb 0, u 8, v 21q. Thuật toán dừng.Vậy ta có biểu diễn UCLNp63, 24q 3 p3q.63 8.24. lChứng minh tính đúng đắn cho thuật toán Euclid mở rộng được dành cho cácbạn với gợi ý sau: Vai trò của a, b, r trong thuật toán này giống như vai trò củachúng trong thuật toán Euclid. Những giá trị x, y tại mỗi bước luôn thỏa mãna hiện tại x.a ban đầuy.b ban đầu. Những giá trị u, v tại mỗi bước luôn thỏamãn b hiện tại u.a ban đầuv.b ban đầu. Và tương tự, những giá trị s, t tại mỗibước luôn thỏa mãn r hiện tại s.a ban đầut.b ban đầu.Bây giờ ta xét bài toán tìm ước chung lớn nhất của nhiều số. Cho nsố nguyên dương a 1 , a 2 , . . . , a n . Ta đặt d UCLNpa 1 , a 2 , . . . , a n q,d 2 UCLNpa 1 , a 2 q, d 3 UCLNpd 2 , a 3 q, . . . , d n UCLNpd n1 , a n qthì khi đó ta có d d n .Thật vậy, ta dễ thấy rằng mọi ước chung của a 1 , a 2 , . . . , a n đều là ướcchung của d 2 , a 3 , . . . , a n và ngược lại nên ta cóUCLNpa 1 , a 2 , . . . , a n q UCLNpd 2 , a 3 , . . . , a n q.Lặp lại lí luận này nhiều lần, ta sẽ cónghĩa là d d n .d UCLNpd 2 , a 3 , . . . , a n q UCLNpd 3 , a 4 , . . . , a n q . . . UCLNpd n1 , a n q d nVí dụ 1.2.32 Hãy tìm UCLNp924, 360, 726q.Lời giải: Ta có:UCLNp924, 360, 726q UCLNpUCLNp924, 360q, 726q UCLNp12, 726q 6.l24 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaNếu ta biết dạng phân tích tiêu chuẩn của những số a 1 , a 2 , . . . , a n thì tacũng có qui tắc để tính ước chung lớn nhất của a 1 , a 2 , . . . , a n như sau:Định lý 1.2.4 Cho a 1 , a 2 , . . . , a n là những số tự nhiên lớn hơn 1. Ước chunglớn nhất của a 1 , a 2 , . . . , a n là tích lũy thừa của những thừa số nguyên tố chungcủa tất cả những số a 1 , a 2 , . . . , a n , mỗi thừa số mang số mũ nhỏ nhất của nótrong các dạng phân tích tiêu chuẩn của các số a 1 , a 2 , . . . , a n đã cho.Chứng minh: Gọi p 1 , p 2 , . . . , p k là các ước nguyên tố phân biệt của ít nhấtmột trong những số a 1 , a 2 , . . . , a n . Tức là ta có thể viết:a i p α i11 pα i22. . . p α ikktrong đó α ij ¥ 0 với i 1, n, j 1, k (α ij ¡ 0 nếu như p j là ước của a ivà α ij 0 trong trường hợp trái lại). Đặtd p µ 11 pµ 22 . . . pµ kk với µ j mintα 1j , α 2j , . . . , α nj u, j 1, k.Khi đó d sẽ là ước chung lớn nhất của a 1 , a 2 , . . . , a n .Thật vậy, từ giả thiết về µ j , ta có µ j ¤ α ij , @i 1, n vậy d là ướcchung của a 1 , a 2 , . . . , a n . Mặt khác, giả sử δ là một ước chung nào đócủa a 1 , a 2 , . . . , a n thì δ phải có dạng δ p β 11 pβ 22 . . . pβ kk với 0 ¤ β j ¤α ij , @i 1, n, j 1, k, nghĩa là β j ¤ µ j hay δ là ước của d. Vậy ta cóđiều phải chứng minh.lVí dụ 1.2.33 Với ba số 1960 2 3 .5.7 2 , 2352 2 4 .3.7 2 , 4004 2 2 .7.11.13 thì ta có UCLNp1960, 2352, 4004q 2 2 .7 28.Bội số chung nhỏ nhấtĐịnh nghĩa 1.2.34 Ta gọi bội chung của những số nguyên a 1 , a 2 , . . . , a n mộtsố nguyên là bội đồng thời của mỗi số đó.Định nghĩa 1.2.35 Số m nhỏ nhất trong tập hợp các bội chung dương củanhững số nguyên a 1 , a 2 , . . . , a n được gọi là bội chung nhỏ nhất củaa 1 , a 2 , . . . , a n . Kí hiệu m BCNNpa 1 , a 2 , . . . , a n q.Nhận xét 1.2.36 Khi ta nói đến bội chung của những số a 1 , a 2 , . . . , a n thìđương nhiên ta đã giả thiết các số đó đã khác không.Định lý 1.2.5 Nếu m BCNNpa 1 , a 2 , . . . , a n q thì mọi bội chung củaa 1 , a 2 , . . . , a n đều là bội của m.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 25


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcChứng minh: Giả sử µ là một bội chung của a 1 , a 2 , . . . , a n và giả sử µ mq r, 0 ¤ r m, với q, r P Z . Bởi vì a i µ, a i m với mọi i 1, nnên a i r µmq. Vậy r là bội chung của a 1 , a 2 , . . . , a n và 0 ¤ r m,kết hợp với m BCNNpa 1 , a 2 , . . . , a n q ta có r 0 hay µ là bội của m.lMột số tính chất của bội số chung nhỏ nhấtTính chất 1.2.37 Điều kiện cần và đủ để một bội chung dương m của những sốa 1 , a 2 , . . . , a n là bội chung nhỏ nhất của chúng là m a 1, m a 2, . . . , m a nnguyêntố cùng nhau.Chứng minh:a) Điều kiện cần: Nếu m BCNNpa 1 , a 2 , . . . , a n q ta sẽ chứng minhnhững số m a 1, m a 2, . . . , m a nnguyên tố cùng nhau. Thật vậy, nếu không nhưvậy thì m a 1, m a 2, . . . , m a ncó một ước chung d 1 nào đó. Khi đó m d làbội chung của a 1 , a 2 , . . . , a n và 0 | m | m trái với giả thiết m làdbội chung nhỏ nhất của các số a 1 , a 2 , . . . , a n đã cho.b) Điều kiện đủ: Nếu m a 1, m a 2, . . . , m a nnguyên tố cùng nhau, ta sẽ chứngminh m BCNNpa 1 , a 2 , . . . , a n q. Thật vậy, nếu không như thế, tagọi m 1 BCNNpa 1 , a 2 , . . . , a n q và theo định lí 1.2.5, sẽ có số nguyênd ¡ 1 để m dm 1 . Từ đó ta có:UCLNp m a 1, m a 2, . . . , m a nq UCLNp dm1a 1, dm1a 2, . . . , dm1a nq d UCLNp m1a 1, m1a 2, . . . , m1a nq.Vậy d là ước của UCLNp m a 1, m a 2, . . . , m a nq nghĩa là m a 1, m a 2, . . . , m a ncóít nhất một ước chung d ¡ 1 trái với giả thiết các số này là nguyên tố cùngnhau.lTính chất 1.2.38 Với k là một số nguyên dương, ta có:BCNNpka 1 , ka 2 , . . . , ka n q k BCNNpa 1 , a 2 , . . . , a n q.26 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaChứng minh: Ta dễ thấy k lần bội chung của a 1 , a 2 , . . . , a n luôn chia hếtcho ka i với mọi i 1, n. Vậy k lần bội chung của a 1 , a 2 , . . . , a n luônlà bội chung của ka 1 , ka 2 , . . . , ka n . Ngược lại, nếu α là bội chung củaka 1 , ka 2 , . . . , ka n thì α k sẽ là bội của a i với mọi i 1, n nên α là bội chungkcủa a 1 , a 2 , . . . , a n và do đó α bằng k lần bội chung nào đó của a 1 , a 2 , . . . , a n .Tóm lại ta có hai tập hợp M k các bội chung của ka 1 , ka 2 , . . . , ka n và kMcác k lần bội chung của a 1 , a 2 , . . . , a n bằng nhau. Tất nhiên, số dương nhỏnhất trong hai tập tương ứng bằng nhau hay ta cóBCNNpka 1 , ka 2 , . . . , ka n q k BCNNpa 1 , a 2 , . . . , a n q.lTính chất 1.2.39 Nếu δ là ước chung dương của a 1 , a 2 , . . . , a n , ta có:BCNNp a 1δ , a 2δ , . . . , a nδ q BCNNpa 1, a 2 , . . . , a n q.δChứng minh: Áp dụng tính chất 1.2.38, với δ là ước chung dương củaa 1 , a 2 , . . . , a n ta có:BCNNpa 1 , a 2 , . . . , a n q BCNNpδ a 1δ , δa 2δ , . . . , δ a nδ q δ BCNNp a 1δ , a 2δ , . . . , a nδ q.Vậy ta có BCNNp a 1δ , a 2δ , . . . , a nδ q BCNNpa 1, a 2 , . . . , a n qδ. lCách tìm bội chung nhỏ nhấtTrước hết ta xét bài toán tìm bội chung nhỏ nhất của hai số. Cho hai sốnguyên a và b với giả thiết rằng a ¡ 0 và b ¡ 0. Khi đó ta có:BCNNpa, bq a.bUCLNpa, bq .Thật vậy, ta đặt m a.b. Bằng cách viếtUCLNpa, bqbm a.UCLNpa, bq b. aUCLNpa, bq ,Bộ môn Toán - ĐẠI HỌC THĂNG LONG 27


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcadoUCLNpa, bq , blà những số nguyên nên m là bội của a vàUCLNpa, bqbội của b. Hơn nữa, nếu µ là một bội chung tùy ý của a và b thìµm µ.UCLNpa,bqa.b µ. a.x b.ya.bvới x, y là những số nguyên sao cho UCLNpa, bq a.xµm µ b .x µa .y P Zb.y. Từ đóvì µ b , µ anguyên. Nói cách khác µ là bội của m. VậyBCNNpa, bq m a.bUCLNpa, bq .Ví dụ 1.2.40 Hãy tìm BCNNp84, 90q.Lời giải: Ta có UCLNp84, 90q 6 nênBCNNp84, 90q 84.906 1260.Đối với bài toán tìm bội chung nhỏ nhất của nhiều số a 1 , a 2 , . . . , a n ,ta đặt m BCNNpa 1 , a 2 , . . . , a n q, m 2 BCNNpa 1 , a 2 q, m 3 BCNNpm 2 , a 3 q, . . . , m n BCNNpm n1 , a n q thì ta có m m n .Thật vậy, vì tập hợp các bội chung của a 1 và a 2 trùng với tập hợp các bộicủa BCNNpa 1 , a 2 q m 2 nên tập hợp các bội chung của a 1 , a 2 , . . . , a ntrùng với tập hợp các bội chung của m 2 , a 3 , . . . , a n . Vậy ta cóBCNNpa 1 , a 2 , . . . , a n q BCNNpm 2 , a 3 , . . . , a n q.Lặp lại lí luận này nhiều lần, ta có:m BCNNpa 1 , a 2 , . . . , a n q BCNNpm 2 , a 3 , . . . , a n q BCNNpm 3 , a 4 , . . . , a n q . . . BCNNpm n1 , a n q m n .lVí dụ 1.2.41 Tìm BCNNp84, 90, 165q.28 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaLời giải: Ta cóBCNNp84, 90, 165q BCNNpBCNNp84, 90q, 165q BCNNp1260, 165q 1260.165 13860.15lHệ quả 1.2.42 Nếu a 1 , a 2 , . . . , a n nguyên tố cùng nhau từng đôi một thì bộichung nhỏ nhất của chúng bằng tích a 1 .a 2 . . . a n của chúng.Hệ quả 1.2.43 Nếu số nguyên x là bội chung của nhiều số a 1 , a 2 , . . . , a nnguyên tố cùng nhau từng đôi một thì x là bội của tích a 1 .a 2 . . . a n .Nếu ta biết dạng phân tích tiêu chuẩn của a 1 , a 2 , . . . , a n thì ta cũng có quitắc để tính bội chung nhỏ nhất của a 1 , a 2 , . . . , a n như sau:Định lý 1.2.6 Cho a 1 , a 2 , . . . , a n là những số nguyên dương. Bội chung nhỏnhất của a 1 , a 2 , . . . , a n là tích lũy thừa của những thừa số nguyên tố chungvà riêng của tất cả những số a 1 , a 2 , . . . , a n , mỗi thừa số mang số mũ lớn nhấtcủa nó trong các dạng phân tích tiêu chuẩn của các số a 1 , a 2 , . . . , a n đã cho.Chứng minh: Gọi p 1 , p 2 , . . . , p k là các ước nguyên tố phân biệt của ít nhấtmột trong những số a 1 , a 2 , . . . , a n . Tức là ta có thể viết:a i p α i11 pα i22. . . p α ikktrong đó α ij ¥ 0 với i 1, n, j 1, k (α ij ¡ 0 nếu như p j là ước của a ivà α ij 0 trong trường hợp trái lại). Đặtm p ρ 11 pρ 22 . . . pρ kk với ρ j maxtα 1j , α 2j , . . . , α nj u, j 1, k.Khi đó m sẽ là bội chung nhỏ nhất của a 1 , a 2 , . . . , a n .Thật vậy, với giả thiết về ρ j , ta có ρ j ¥ α ij , @i 1, n vậy m là bộichung của a 1 , a 2 , . . . , a n . Mặt khác, giả sử ν là một bội chung nào đócủa a 1 , a 2 , . . . , a n thì ν phải có dạng ν p γ 11 pγ 22 . . . pγ kk với 0 ¤ α ij ¤γ j , @i 1, n, j 1, k, nghĩa là γ j ¥ ρ j hay ν là bội của m. Vậy ta có điềuphải chứng minh.lVí dụ 1.2.44 Với ba số 1960 2 3 .5.7 2 , 2352 2 4 .3.7 2 , 4004 2 2 .7.11.13 thì ta cóBCNNp1960, 2352, 4004q 2 4 .3.5.7 2 .11.13 1681680.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 29


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcSố học đồng dưĐồng dư thứcĐịnh nghĩa 1.2.45 Cho m là một số tự nhiên khác không. Ta nói hai số nguyêna và b là đồng dư với nhau theo modulo m nếu trong phép chia a và b chom ta được cùng một số dư. Khi a và b đồng dư với nhau theo modulo m thìta viết: a b pmod mq, trái lại ta viết a b pmod mq. Biểu thức như trênđược gọi là đồng dư thức.Ví dụ 1.2.46 Ta có chẳng hạn 9 3 pmod 6q, 8 4 pmod 6q, 8 3 pmod 6q.Định lý 1.2.7 Ba mệnh đề sau đây là tương đương:(i) a b pmod mq.(ii) m a b.(iii) Có số nguyên t sao cho a bmt.Chứng minh: Ta sẽ chứng minh (i)ñ(ii)ñ(iii)ñ(i).(i)ñ(ii) Theo định nghĩa 1.2.45, ta có a mq 1 r và b mq 2 r,q 1 , q 2 , r P Z , 0 ¤ r m. Từ đó ta có a b mpq 1 q 2 q tức làm a b.(ii)ñ(iii) Giả sử m a b, khi ấy luôn có t P Z sao cho a b mt haya b mt, t P Z .(iii)ñ(i) Giả sử có số nguyên t sao cho a b mt. Gọi r là số dư trong phépchia a cho m, nghĩa là a mq 1 r, q 1 , r P Z , 0 ¤ r m. Khi ấy ta cób mt mq 1 r hay b mpq 1 tq r với 0 ¤ r m. Vậy số dư củab khi chia cho m cũng là r, nói khác đi ta có a b pmod mq.lTính chất của đồng dư thứcTính chất 1.2.47 Ta có thể cộng hoặc trừ từng vế một của nhiều đồng dư thứctheo cùng một modulo. Cụ thể là nếu có a i b i pmod mq, i 1, k thì ta cóa 1 a 2 . . . a k b 1 b 2 . . . b k pmod mq.Tính chất 1.2.48 Ta có thể nhân từng vế một với nhau của nhiều đồng dư thứctheo cùng một modulo. Cụ thể là nếu có a i b i pmod mq, i 1, k thì ta cóa 1 .a 2 . . . a k b 1 .b 2 . . . b k pmod mq.30 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaChứng minh của hai tính chất 1.2.47 và 1.2.48 đơn giản được xem như nhữngbài tập dành cho các bạn. Từ hai tính chất này, ta có một số hệ quả sau:Hệ quả 1.2.49 Ta có thể thêm vào hay bớt đi cùng một số vào hai vế của mộtđồng dư thức nghĩa là nếu ta có a b pmod mq thì ta cũng có a c b c pmod mq với c là một số nguyên tùy ý.Hệ quả 1.2.50 Ta có thể chuyển vế các số hạng của một đồng dư thức nhưngphải đổi dấu của số hạng đó, nghĩa là nếu ta có a c b pmod mq thì tacũng có a b c pmod mq.Hệ quả 1.2.51 Ta có thể thêm vào hay bớt đi ở một vế của một đồng dư thứcmột bội của modulo, nghĩa là nếu ta có a b pmod mq thì ta cũng cóa km b pmod mq với mọi k P Z .Hệ quả 1.2.52 Ta có thể nhân hai vế của một đồng dư thức với cùng một sốnguyên tùy ý, nghĩa là nếu ta có a b pmod mq thì ta cũng có a.c b.c pmod mq với mọi c P Z .Hệ quả 1.2.53 Ta có thể nâng lên lũy thừa bậc nguyên dương tùy ý hai vếcủa một đồng dư thức, nghĩa là nếu ta có a b pmod mq thì ta cũng cóa n b n pmod mq với mọi n P Z .Tính chất 1.2.54 Ta có thể chia hai vế của một đồng dư thức cho một ướcchung của hai vế, nguyên tố cùng nhau với modulo, nghĩa là nếu ta có a.c b.c pmod mq và UCLNpc, mq 1 thì ta cũng có a b pmod mq.Chứng minh: Theo giả thiết a.c b.c pmod mq nên m a.cb.c hay m cpa bq. Do UCLNpc, mq 1 nên m a b nghĩa là a b pmod mq.lTính chất 1.2.55 Ta có thể nhân hai vế và modulo của một đồng dư thức vớicùng một số nguyên dương. Cụ thể là nếu ta có a b pmod mq thì với mọic P Z ta cũng có a.c b.c pmod m.cq.Chứng minh: Theo giả thiết a b pmod mq nên có số nguyên t sao cho a b mt. Nhân hai vế với cùng một số nguyên dương c, ta có ac bc mct,nghĩa là a.c b.c pmod m.cq.lTính chất 1.2.56 Ta có thể chia hai vế và modulo của một đồng dư thức chomột ước chung dương của chúng. Cụ thể nếu ta có a b pmod mq vàBộ môn Toán - ĐẠI HỌC THĂNG LONG 31


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcδ P Z, δ UCLNpa, b, mq thì ta cũng có:aδ b δ pmod m δ q.Chứng minh: Từ giả thiết δ UCLNpa, b, mq, ta đặt a δa 1 , b δb 1 ,m δm 1 với a 1 , b 1 , m 1 P Z . Nhưng a b mt, thay vào ta cóδa 1 δb 1 pmod δm 1 q. Chia cả hai vế cho δ ta có a 1 b 1 m 1 t hayaδ b δ pmod m δ q.lTính chất 1.2.57 Nếu hai số a và b đồng dư với nhau theo nhiều modulo thìchúng cũng đồng dư với nhau theo modulo là bội chung nhỏ nhất của cácmodulo nói trên. Cụ thể là nếu a b pmod m i q, @i 1, k, thì ta cũng cóa b pmod BCNNpm 1 , m 2 , . . . , m k qq.Chứng minh: Thật vậy, theo giả thiết ab là bội chung của m 1 , m 2 , . . . , m knên a b cũng là bội của BCNNpm 1 , m 2 , . . . , m k q nghĩa là a b pmod BCNNpm 1 , m 2 , . . . , m k qq.lTính chất 1.2.58 Nếu a và b đồng dư với nhau theo modulo m thì chúng cũngđồng dư với nhau theo modulo là ước của m. Cụ thể là nếu a b pmod mqvà δ m, δ ¡ 0 thì ta cũng có a b pmod δq.Chứng minh: Theo giả thiết, ta có m a b mà δ m nên δ a b nghĩalà a b pmod δq.lTính chất 1.2.59 Nếu a và b đồng dư với nhau theo modulo m thì tập hợp cácước chung của a và m trùng với tập hợp các ước chung của b và m. Đặc biệtta có UCLNpa, mq UCLNpb, mq.Chứng minh: Thật vậy, do a b pmod mq nên có số nguyên t sao cho a b mt. Đẳng thức này chứng tỏ các ước chung của a và m cũng là ước chungcủa b và m và ngược lại. Vậy tập hợp các ước chung của a và m trùng với tậphợp các ước chung của b và m và do đó ta có UCLNpa, mq UCLNpb, mq.lTính chất 1.2.60 Quan hệ đồng dư là quan hệ tương đương trên tập hợp cácsố nguyên Z .Chứng minh:32 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaa) Tính phản xạ: Với số nguyên a tùy ý ta luôn có: a a 0 . m nêna a pmod mq.b) Tính đối xứng: Nếu a và b là hai số nguyên sao cho a b pmod mq thìta có m a b. Khi ấy ta cũng có m b a cho nên b a pmod mq.c) Tính bắc cầu: Nếu a, b, c là ba số nguyên thỏa mãn a b pmod mqvà b c pmod mq thì ta có m a b và m b c. Khi ấym pa bq pb cq hay m a c nghĩa là a c pmod mq.Quan hệ đồng dư modulo m là quan hệ tương đương trên tập số nguyên Znên nó phân hoạch tập số nguyên ra thành m lớp rời nhau, mỗi lớp chứa cácsố nguyên đồng dư với nhau theo modulo m. Tập các lớp này được kí hiệu làZ {mZ hay Z m và chứa đúng m phần tử. Mỗi lớp trong tập Z m có đúng mộtsố nằm trong đoạn r0, m 1s, cho nên mỗi số nguyên trong đoạn này đượcxem là một “đại diện” của lớp. Tức là ta có thể coi:Z m t0, 1, 2, . . . , m 1u.Từ các tính chất của đồng dư thức, ta có thể tự do thực hiện các phép tính số họccộng “`”, nhân “d” thông thường trên tập Z m :a ` b pa bq mod m, @a, b P Z m ,a d b pa.bq mod m, @a, b P Z m .lVí dụ 1.2.61 Phép cộng và nhân trong Z 7 được cho trong bảng sau:` 0 1 2 3 4 5 60 0 1 2 3 4 5 61 1 2 3 4 5 6 02 2 3 4 5 6 0 13 3 4 5 6 0 1 24 4 5 6 0 1 2 35 5 6 0 1 2 3 46 6 0 1 2 3 4 5d 0 1 2 3 4 5 60 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1Bình thường, nếu không có gì gây nên sự hiểu nhầm thì ta có thể sử dụng kíhiệu “ ” thay cho “`” và “.” thay cho “d”.Nếu x là một phần tử trong Z m và UCLNpx, mq 1 thì tồn tại các sốnguyên u, v sao cho u.x v.m 1, tức là u.x 1 pmod mq. Khi đó taBộ môn Toán - ĐẠI HỌC THĂNG LONG 33


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcnói rằng x có nghịch đảo theo modulo m (phần tử nghịch đảo trong Z m ) là uvà ta kí hiệu phần tử nghịch đảo này là x 1 . Phần tử nghịch đảo theo modulom của x được tìm bằng cách sử dụng thuật toán Euclid mở rộng. Tập các phầntử trong Z m mà có nghịch đảo theo modulo m ta kí hiệu là Z m .Ví dụ 1.2.62 Xét Z 9 t0, 1, 2, . . . , 8u. Bằng thuật toán Euclid mở rộng,muốn tìm phần tử nghịch đảo của 7 ta có 1 4.73.9. Vậy 4.7 1 pmod 9q,hay 7 1 4 pmod 9q.Phi - hàm EulerĐịnh nghĩa 1.2.63 Cho số tự nhiên n khác không, ta gọi φpnq là số các số tựnhiên nhỏ hơn n và nguyên tố cùng nhau với n. Hàm φ được gọi là phi - hàmEuler.Ví dụ 1.2.64 Ta có φp1q 1, φp2q 1, φp3q 2, φp4q 2, φp5q 4,φp6q 2, φp7q 6, φp8q 4, φp9q 6, φp10q 4.Từ định nghĩa 1.2.63, ta có ngay hệ quả trực tiếp:Hệ quả 1.2.65 Số tự nhiên p là số nguyên tố khi và chỉ khi φppq p 1.Hệ quả 1.2.66 Nếu p là số nguyên tố và r là số tự nhiên khác không thìφpp r q p r p r1 p r1 pp 1q p r p1 1 p q.Chứng minh: Từ 0 đến p r 1 có t prp u pr1 số chia hết cho p. Ngoài cácsố đó ra, các số khác còn lại không chia hết cho p và do đó nguyên tố cùng nhauvới p r . Vậyφpp r q p r p r1 p r1 pp 1q p r p1 1 p q.lBổ đề 1.2.67 Giả sử a và b là hai số tự nhiên khác không, nguyên tố cùngnhau. Khi đó với mỗi số tự nhiên y cố định cho trước thì trong b số dạnga.x y px 0, b 1q có φpbq số nguyên tố cùng nhau với b.Chứng minh: Thật vậy, giả sử r x là số dư của phép chia a.x y cho b. Sốa.x y nguyên tố cùng nhau với b khi và chỉ khi r x nguyên tố cùng nhau vớib.34 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaMặt khác, khi ta chia b số dạng a.x y px 0, b 1q cho b ta có b số dưr 0 , r 1 , . . . , r b1 thỏa mãn 0 ¤ r x b px 0, b 1q. Những số dư này đôimột khác nhau vì nếu giả sử có r i r j pi jq thì pa.i r i q pa.j r j q api jq . b (do có hai số dư khi chia cho b bằng nhau). Mà điều này khôngthể xảy ra do 0 |i j| b và UCLNpa, bq 1. Vậy ta cótr 0 , r 1 , . . . , r b1 u t0, 1, . . . , b 1u.Vậy trong tập tr 0 , r 1 , . . . , r b1 u có đúng φpbq số nguyên tố cùng nhau với bhay nói cách khác trong b số dạng a.x y px 0, b 1q có φpbq số nguyêntố cùng nhau với b.lĐịnh lý 1.2.8 Với hai số tự nhiên khác không a và b nguyên tố cùng nhau, tacó φpa.bq φpaq.φpbq.Chứng minh: Nếu trong hai số a và b có một số bằng 1 thì hiển nhiên φpa.bq φpaq.φpbq vì φp1q 1.Giả sử a ¡ 1 và b ¡ 1, ta lập bảng những số tự nhiên từ 0 cho đến a.b 1như sau:M 0 1 . . . pa 1qa a 1 . . . a pa 1q2a 2a 1 . . . 2a pa 1q. . . . . . . . . . . .pb 1qa pb 1qa 1 . . . pb 1qa pa 1qDễ thấy là một số trong bảng M nguyên tố cùng nhau với tích a.b khi và chỉkhi số đó nguyên tố cùng nhau với cả a và b. Do đó để tìm những số nguyên tốcùng nhau với tích ab trong bảng M, trước hết ta tìm những số nguyên tố cùngnhau với a rồi trong các số đó, ta tìm những số nguyên tố cùng nhau với b.Các số trong bảng M có dạng a.x y với x 0, b 1 và y 0, a 1.Vì UCLNpa.x y, aq UCLNpy, aq nên các số trong bảng M nguyêntố cùng nhau với a khi và chỉ khi nó nằm ở cột tương ứng với những giá trị ynguyên tố cùng nhau với a. Có tất cả φpaq cột như vậy. Trong mỗi cột đó, vớigiá trị y cụ thể cố định, ta có b số có dạng a.x y, x 0, b 1. Theo bổ đề1.2.67, cột đó có φpbq số nguyên tố cùng nhau với b. Vậy trong bảng M có tấtcả φpaq.φpbq số nguyên tố cùng nhau với tích ab. Vậy ta có điều phải chứngminh.lHệ quả 1.2.68 Giả sử n p α 11 pα 22 . . . pα kklà dạng phân tích tiêu chuẩn củaBộ môn Toán - ĐẠI HỌC THĂNG LONG 35


số tự nhiên n ¡ 1. Khi đó ta cóChương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcφpnq np1 1 p 1qp1 1 p 2q . . . p1 1 p kq.Chứng minh: Do các số p 1 , p 2 , . . . , p k nguyên tố với nhau từng đôi một nêncác lũy thừa của chúng cũng nguyên tố với nhau từng đôi một. Áp dụng định lí1.2.8 k lần, ta có φpnq φpp α 11 qφppα 22 q . . . φppα kkq. Áp dụng hệ quả 1.2.66ta có điều phải chứng minh.lVí dụ 1.2.69 φp720q φp2 4 .3 2 .5q φp2 4 qφp3 2 qφp5q 2 3 p2 1q3p3 1qp5 1q 192.Định lí Euler được chúng ta công nhận không chứng minh dưới đây là công cụquan trọng để xét các đồng dư modulo của một số nguyên dương bất kì.Định lý 1.2.9 (Định lí Euler) Nếu m là một số nguyên dương và a nguyên tốcùng nhau với m thì a φpmq 1 pmod mq.Từ định lí Euler, ta có định lí Fermat nhỏ ứng với trường hợp riêng modulo làsố nguyên tố.Hệ quả 1.2.70 (Định lí Fermat nhỏ) Nếu p là số nguyên tố và a là số nguyênkhông chia hết cho p thì a p1 1 pmod pq.Tất nhiên, từ định lí Euler, nếu UCLNpa, mq 1 thì nghịch đảo theo modulom của a là a φpmq1 . Và vì chỉ những a nguyên tố cùng nhau với m mới cónghịch đảo theo modulo m nên số phần tử của Z mbằng φpmq.Biểu diễn số tự nhiên theo các hệ cơ số khác nhauKí hiệu số mà chúng ta đang sử dụng được cấu tạo từ mười chữ số0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Mỗi một số tự nhiên được kí hiệu bằng cách ghépcác chữ số nói trên lại với nhau. Ví dụ số 235 bao gồm ba chữ số 2, 3, 5. Mỗichữ số tùy theo vị trí trước sau của chúng trong cấu thành kí hiệu mà mang mộtý nghĩa nhất định: hàng đơn vị, hàng chục, hàng trăm... Biểu diễn thành tổngcác lũy thừa của 10, ta có, chẳng hạn 235 2.10 2 3.10 1 5.10 0 . Số 10khi đó gọi là cơ số của hệ kí hiệu và hệ kí hiệu mà chúng ta đang sử dụng phổbiến hiện nay là hệ thập phân hay hệ cơ số 10.Tất nhiên, không chỉ số 10 mới có thể trở thành cơ số của hệ kí hiệu. Trongnhiều trường hợp, việc sử dụng các cơ số khác 10 sẽ thuận tiện hơn. Đặc biệt làhệ cơ số 2, hệ cơ số 8 và hệ cơ số 16 thường được sử dụng trong các máy tính.36 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaThực tế, ta có thể sử dụng một số nguyên dương bất kì lớn hơn 1 làm cơ số đểbiểu diễn các số tự nhiên. Điều này được phát biểu (không chứng minh) trongđịnh lí sau:Định lý 1.2.10 (Định lí khai triển theo hệ cơ số) Cho b là một số nguyêndương lớn hơn 1. Khi đó nếu n là một số nguyên dương, thì nó có thể đượcbiểu diễn một cách duy nhất dưới dạng:n a k b k a k1 b k1 . . . a 1 b 1 a 0trong đó k là một số nguyên không âm, a 0 , a 1 , . . . , a k là các số nguyên khôngâm nhỏ hơn b và a k 0.Biểu diễn của n được cho trong định lí 1.2.10 được gọi là khai triển cơ sốb của n, nó được kí hiệu là a k a k1 . . . a 1 a 0 b.Ví dụ 1.2.71 Khai triển số 235 theo hệ cơ số 8 là 353 8 vì 235 3.8 2 5.8 13.Nếu chọn 2 làm cơ số ta có khai triển nhị phân. Khai triển theo hệ cơ số8 còn được gọi là khai triển bát phân và khai triển theo hệ cơ số 16 còn đượcgọi là khai triển thập lục phân. Trong hệ kí hiệu cơ số b ta phải cần đến đúngb kí hiệu. Chẳng hạn hệ cơ số 2 ta sẽ sử dụng các kí hiệu 0 và 1. Hệ cơ số 8 tasử dụng tám kí hiệu 0, 1, 2, 3, 4, 5, 6, 7. Riêng hệ cơ số 16 ta sử dụng 16 kíhiệu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (biểu diễn số 10), B (số 11), C (số 12), D(số 13), E (số 14), F (số 15).Ví dụ 1.2.72 Số nguyên 101011111 2 có khai triển thập phân là:101011111 2 2 8 0.2 7 2 6 0.2 5 2 4 2 3 2 2 2 1 2 0 351 10 .Ví dụ 1.2.73 Số nguyên 2AE0B 16 có khai triển thập phân là:2AE0B 16 2.16 4 10.16 3 14.16 2 0.16 1 11.16 0 175627 10 .Bây giờ chúng ta sẽ mô tả thuật toán xây dựng khai triển cơ số b của số tựnhiên n bất kì. Trước hết ta chia n cho b để được thương và số dư, tức là:n bq 0 a 0 , với 0 ¤ a 0 b.Số dư a 0 chính là chữ số tận cùng bên phải trong khai triển cơ số b của n. Tiếptheo chia q 0 cho b, ta được:q 0 bq 1 a 1 , với 0 ¤ a 1 b.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 37


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcTa thấy a 1 chính là chữ số thứ hai tính từ phải qua trái trong khai triển cơ số bcủa n. Tiếp tục quá trình này, bằng cách chia liên tiếp các thương cho b, ta sẽđược các chữ số tiếp theo trong khai triển cơ số b của n là các số dư tương ứng.Quá trình này sẽ kết thúc khi ta nhận được một thương bằng 0.Ví dụ 1.2.74 Tìm khai triển cơ số 8 của 12345 10 .Lời giải: Trước hết chia 12345 cho 8 ta được:12345 8.1543 1.Liên tiếp chia các thương tìm được cho 8, ta có:1543 8.192 7,192 8.24 0,24 8.3 0,3 8.0 3.Vậy ta có 12345 10 30071 8 .lThuật toán nói trên được biểu diễn dưới dạng giả mã qua thuật toán 14.Thuật toán 14 Thuật toán khai triển cơ số b của số tự nhiên n.Đầu vào: Cơ số b nguyên dương lớn hơn 1 và số tự nhiên n.Đầu ra: Khai triển cơ số b của n.1: q : n, k : 0.2: Trong khi q 0 Thực hiện3: a k : mod b.q4: q : tb u.5: k : k 1.6: Kết thúc Trong khi7: Kết quả trả về là a k1a k2 . . . a 1 a 0 b .Nói riêng, trong trường hợp cần biểu diễn số tự nhiên từ khai triển nhị phânvề khai triển theo hệ cơ số 4, hệ cơ số 8 hoặc hệ cơ số 16 hoặc ngược lại, do đặcthù 4, 8, 16 là các lũy thừa của 2 nên ta có thể khai triển nhanh hơn. Cụ thể,một chữ số trong hệ cơ số 16 tương ứng với 4 chữ số trong hệ nhị phân. Tươngtự, một chữ số trong hệ cơ số 8 (hệ cơ số 4) tương ứng với 3 (2) chữ số tronghệ nhị phân.Ví dụ 1.2.75 Để khai triển 10110011110101 2 theo hệ cơ số 16, ta xét từngcụm bốn chữ số một: 0101 2 5 16 , 1111 2 F 16 , 1100 2 C 16 và cuốicùng 0010 2 2 16 . Vậy 10110011110101 2 2CF 5 16 .38 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaMột số ứng dụngLí thuyết số có ứng dụng trong rất nhiều lĩnh vực. Áp dụng những kiến thứcchúng ta đã tìm hiểu từ đầu chương đến thời điểm này, chúng ta sẽ xem xét mộtsố ứng dụng của số học đồng dư.Vấn đề 1.2.76 (Hàm băm) Chúng ta đã tìm hiểu hai thuật toán tìm kiếm là tìmkiếm tuyến tính và tìm kiếm nhị phân. Thuật toán tìm kiếm tuyến tính sẽ mấtrất nhiều thời gian nếu dữ liệu được lưu trữ nhiều. Còn thuật toán tìm kiếm nhịphân thì không phải dữ liệu lúc nào cũng được sắp xếp để có thể áp dụng. Nếuchọn giải pháp sắp xếp ngay từ lúc mới nhập dữ liệu vào thì việc chuyển dữ liệucũng mất khá nhiều thời gian.Giải pháp được đưa ra trong trường hợp dữ liệu được lưu trữ nhiều là dùng mộthàm băm được lựa chọn thích hợp. Dữ liệu được nhận dạng bằng cách dùngchìa khóa là một số nguyên tương ứng một - một với một dữ liệu. Hàm bămhpkq gán ô nhớ hpkq cho dữ liệu có chìa khóa là k. Thực tế, ta có thể dùngnhiều hàm băm khác nhau. Một trong số các hàm băm thường dùng nhất là hàm:hpkq k mod mtrong đó m là số ô nhớ có thể được sử dụng.Các hàm băm cần phải được tính toán dễ dàng để dữ liệu được truy cậpnhanh. Hơn nữa hàm băm cần phải là toàn ánh để cho tất cả các ô nhớ đều đượcsử dụng. Hàm băm hpkq k mod m thỏa mãn cả hai điều này.Vì hàm băm không phải là đơn ánh nên có thể xảy ra trường hợp có từ haidữ liệu trở lên được gán cho cùng một ô nhớ. Khi xảy ra điều này, người ta nóicó sự xung đột hay đụng độ. Một cách để giải quyết đụng độ là gán cho ô nhớcòn tự do đầu tiên ở phía sau ô nhớ đã được gán trước bởi hàm băm.Ví dụ 1.2.77 Khi m 111, dữ liệu ứng với chìa khóa 064212848 sẽ đượcgán cho ô nhớ ở vị trí 14 vì hp064212848q 064212848 mod 111 14.Còn dữ liệu ứng với chìa khóa 037149212, một cách tương tự, sẽ được gáncho ô nhớ ở vị trí 65. Dữ liệu ứng với chìa khóa 107405723 đáng nhẽ đượcđặt vào ô nhớ hp107405723q 14 nhưng ô nhớ này đã bị chiếm bởi dữ liệucó chìa khóa là 064212848. Vậy ô nhớ 15 còn trống kế tiếp sau sẽ là ô nhớdành cho nó.Có rất nhiều giải pháp phức tạp hơn để giải quyết đụng độ một cách có hiệuquả hơn phương pháp vừa nêu trên. Các bạn có thể tìm hiểu kĩ hơn qua các tàiliệu về cấu trúc dữ liệu.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 39


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcVấn đề 1.2.78 (Số giả ngẫu nhiên) Trong thực tế, trong các mô phỏng trênmáy tính, nhiều khi ta rất cần đến những số được chọn một cách ngẫu nhiên. Cónhiều phương pháp để tạo ra các số có những tính chất của các số được chọnngẫu nhiên nhưng không có cách nào để tạo ra các số ngẫu nhiên thực sự từmáy tính. Vì các số được sinh ra bởi các phương pháp có hệ thống không thựcsự là ngẫu nhiên nên chúng được gọi là các số giả ngẫu nhiên. Chúng khôngthực sự ngẫu nhiên nhưng về mặt ý nghĩa, chúng có ích gần như các số ngẫunhiên.Mặc dù từ ngẫu nhiên chỉ sự tùy ý, nhưng để chính xác về mặt toán học, chúngta phải giới hạn các số được dùng vào một phạm vi nhất định. Không thể cómột số ngẫu nhiên, chỉ có một số ngẫu nhiên trong một miền xác định nào đó.Thông thường, trong hầu hết các trường hợp không chỉ cần một số ngẫu nhiên,mà cần đến dãy số ngẫu nhiên.Phương pháp đồng dư tuyến tính là phương pháp nổi tiếng nhất để tạo số giảngẫu nhiên, được sử dụng gần như độc chiếm kể từ khi D. Lehner đưa ra vàonăm 1951. Phương pháp này sẽ cho ta dãy số giả ngẫu nhiên tuân theo phân bốđều. Đối với những dãy số phân bố không đều (một số giá trị có thể nhiều hơnmột số khác), ta thường sử dụng phối hợp một số dãy phân bố đều tạo thành.Theo phương pháp đồng dư tuyến tính, ta chọn ra bốn số nguyên. Đólà modulo m, nhân tử a, số gia c và số hạt giống x 0 , với 2 ¤ a ¤ m,0 ¤ c m và 0 ¤ x 0 m. Chúng ta sẽ tạo ra dãy các số giả ngẫu nhiêntx n u với 0 ¤ x n m với mọi n bằng cách dùng liên tiếp phép đồng dư:x n 1 pax n cq mod m.Để tạo ra các số giả ngẫu nhiên nằm trong khoảng p0, 1q, ta chia các số đượctạo ra bằng phương pháp đồng dư tuyến tính cho modulo m.Thường phương pháp đồng dư tuyến tính được sử dụng với số gia c 0hoặc c 1. Modulo m nên lớn và thường liên quan đến lũy thừa của 10 hoặc2. Nhân tử a không nên quá lớn hoặc quá nhỏ: một lựa chọn an toàn là dùngsố có ít hơn m một chữ số và không theo một mẫu riêng nào cả. Tốt nhất khic 1 thì nên chọn a có dạng . . . x21 10 trong đó x là chữ số chẵn là yêu cầuđược thừa nhận bởi nó tránh được vài sự cố có thể xảy ra mà các phân tích toánhọc còn để hở. Các qui luật này được phát triển bởi D.E. Knuth. Knuth chứngminh rằng các sự lựa chọn này làm cho phương pháp đồng dư tuyến tính tạo racác số giả ngẫu nhiên tốt hơn, thỏa mãn được nhiều kiểm tra thống kê phức tạp.Ví dụ 1.2.79 Khi chọn m 9, a 7, c 4, x 0 3 ta có dãy số giả ngẫunhiên sau:3, 7, 8, 6, 1, 2, 0, 4, 5, 3, 7, 8, 6, 1, 2, 0, 4, 5, 3, . . .40 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaDãy số trên chứa 9 phần tử khác nhau trước khi lặp lại.Vấn đề nghiêm trọng nhất là tạo ra một chu kì nhỏ so với miền xác định củanó. Ví dụ như khi a 19, m 381, x 0 0, c 1 sẽ tạo ra chuỗi0, 1, 20, 0, 1, 20, . . . một chuỗi không ngẫu nhiên trong khoảng từ 0 đến 380.Bộ giá trị với c 0, m 2 31 1, a 7 5 16807 thường được dùng rấtrộng rãi. Với các giá trị này, người ta đã chứng minh được rằng sẽ có 2 31 2số được phát ra trước khi bắt đầu lặp lại.Vấn đề 1.2.80 (Phương trình đồng dư tuyến tính) Cho a và m là hai sốnguyên dương, b là một số nguyên nào đó. Hãy tìm tất cả những số nguyên xsao choa.x b pmod mq.Đồng dư thức trên được gọi là phương trình đồng dư tuyến tính với ẩn x.Để giải phương trình đồng dư tuyến tính, ta xét các trường hợp sau:• Nếu UCLNpa, mq 1 (tức là a là phần tử của Z m) thì ta có ngaynghiệm x a 1 b pmod mq.• Khi UCLNpa, mq d ¡ 1: Nếu d b thì phương trình đã cho tươngđương với phương trìnhp a d qx b d pmod m d q.Khi đó UCLNp a d , m q 1 và phương trình mới nhận được này thuộcddạng ta đã xét ở trên. Nếu d b thì phương trình đã cho vô nghiệm vì hiệucủa hai số chia hết cho d thì không thể là một số không chia hết cho d.Ví dụ 1.2.81 Giải phương trình sau: 7.x 3 pmod 9q.Lời giải: Dùng thuật toán Euclid mở rộng, theo modulo 9 ta có 7 1 4. Vậyx 4.3 12 3 pmod 9q.lVấn đề 1.2.82 (Hệ mã mật Caesar) Một trong những ứng dụng của phép đồngdư liên quan đến những hệ mã mật và một trong những hệ mã mật đầu tiên đượcghi nhận là hệ mã mật do Julius Caesar đưa ra. Ông đã làm cho bức thư trởnên bí mật bằng cách dịch mỗi chữ cái đi ba chữ cái về phía trước trong bảngchữ cái. Chẳng hạn chữ B được chuyển thành chữ E, còn chữ X được chuyểnthành chữ A. . . .Bộ môn Toán - ĐẠI HỌC THĂNG LONG 41


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcĐể biểu diễn quá trình mã hóa của Caesar một cách toán học, trước hết ta thaymỗi chữ cái (trong bảng chữ cái tiếng Anh và chú ý rằng ta không phân biệt chữhoa và chữ thường) bằng một số nguyên từ 0 đến 25, dựa vào vị trí mà nó xuấthiện trong bảng chữ cái:A B C D E F G H I J K L M N O P Q R0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17S T U V W X Y Z18 19 20 21 22 23 24 25Phương pháp mã hóa của Caesar có thể biểu diễn bởi hàm f là song ánh từ tậpt0, 1, 2, . . . , 25u sang chính tập t0, 1, 2, . . . , 25u. Trong trường hợp này, tacó fppq pp 3q mod 26. Như vậy, trong phiên bản mã hóa của bức thư,chữ cái được biểu diễn bởi p sẽ được thay bằng chữ cái được biểu diễn bởipp 3q mod 26.Để phục hồi lại bức thư gốc đã được mã hóa theo hệ mã mật Caesar, ta cầnphải dùng hàm ngược f 1 của hàm f. Ta có f 1 ppq pp 3q mod 26. Nóicách khác, để tìm lại bức thư gốc, mỗi một chữ cái lùi lại ba chữ trong bảng chữcái, ba chữ cái đầu tiên chuyển thành ba chữ cái cuối cùng tương ứng của bảngchữ cái.Ta có thể tổng quát hóa hệ mã mật của Caesar bằng cách sử dụng hàm lậpmã fppq pap bq mod 26. Điều kiện của hàm f là nó phải là một songánh từ t0, 1, 2, . . . , 25u vào chính t0, 1, 2, . . . , 25u. Để thỏa mãn điều kiệnđó thì ta phải có UCLNpa, 26q 1. Khi đó sẽ tồn tại a 1 theo modulo 26 vàf 1 ppq pp bqa 1 mod 26.Ví dụ 1.2.83 Khi sử dụng hàm fppq p7p 3q mod 26, chữ N được thaybằng chữ cái nào? chữ A được thay bằng chữ cái nào? chữ T được thay bằngchữ cái nào?Lời giải: Chữ N được chuyển thành số 13, cho qua hàm f ta có fp13q p7.13 3q mod 26 16. Vậy chữ cái N được thay bằng chữ Q. Chữ A đượcchuyển thành số 0, cho qua hàm f ta có fp0q p7.0 3q mod 26 3.Vậy chữ cái A được mã hóa thành chữ D. Chữ T được chuyển thành số 19,fp19q p7.19 3q mod 26 6. Vậy chữ T được mã thành chữ G.Ngược lại, nghịch đảo của 7 theo modulo 26 là 15. Chữ Q, số tươngứng là 16 được giải mã qua f 1 ppq pp 3q.15 mod 26 là chữ N vìf 1 p16q p16 3q.15 mod 26 13. Chữ D, số tương ứng là 3 được giảimã thành chữ A vì f 1 p3q 0. Cuối cùng, chữ G, số tương ứng là 6 được giảimã thành chữ T vì f 1 p6q p6 3q.15 mod 26 19.l42 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.2. Số nguyên và phép chiaPhương pháp mã hóa Caesar dễ bị khám phá bằng cách dựa vào tần suất xuấthiện của các chữ cái trong bức thư. Vì vậy ngày nay, người ta cũng ít sử dụnghệ mã mật theo phương pháp này. Nhưng có nhiều phương pháp khác tinh vihơn được sử dụng thông dụng hiện nay cũng dựa trên cơ sở lí thuyết của số họcđồng dư.Vấn đề 1.2.84 (Bài toán Hàn Tín điểm binh) Tương truyền rằng để kiểm traquân số, Hàn Tín thường ra lệnh cho quân sĩ xếp thành hàng ba, hàng năm vàhàng bảy rồi thông báo lại số quân dư thừa ứng với mỗi trường hợp. Khi biếtcác số dư và đã sẵn có thông tin gần đúng về số quân của mình, Hàn Tín có thểbiết được số quân chính xác.Vậy cách làm của Hàn Tín là như thế nào? Chứng minh của định lí Trung Hoavề phần dư dưới đây sẽ là câu trả lời cho các bạn.Định lý 1.2.11 (Định lí Trung Hoa về phần dư) Giả sử m 1 , m 2 , . . . , m r lànhững số nguyên dương nguyên tố cùng nhau từng đôi một. Khi đó hệ đồng dư:$'&'%x a 1 pmod m 1 q,x a 2 pmod m 2 q,. . .x a r pmod m r qcó nghiệm duy nhất theo modulo M m 1 m 2 . . . m r .Chứng minh:a) Tính tồn tại: Trước hết ta xây dựng một nghiệm của hệ. Giả sử M k M m 1 m 2 . . . m k1 m k 1 . . . m r . Ta luôn có UCLNpM k , m k q m k1 vì những số m i nguyên tố cùng nhau từng đôi một. Vậy ta có thể tìm đượcnghịch đảo y k của M k theo modulo m k , tức là M k y k 1 pmod m k q.Đặtx pa 1 M 1 y 1 a 2 M 2 y 2 . . . a r M r y r q mod M.Ta thấy rằng với mọi 1 ¤ k ¤ r thì x a k pmod m k q vì m k M j vớimọi j k và m k M. Vậy x chính là một nghiệm của hệ đồng dư đangxét.b) Tính duy nhất: Giả sử x 0 và x 1 là hai nghiệm của hệ. Khi đó, với mỗi k,x 0 x 1 a k pmod m k q cho nên m k px 0 x 1 q với mọi 1 ¤ k ¤ r.Vì m k nguyên tố cùng nhau từng đôi một nên M px 0 x 1 q. Vậyx 0 x 1 .Bộ môn Toán - ĐẠI HỌC THĂNG LONG 43


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứclVí dụ 1.2.85 Hãy tìm x thỏa mãn x 2 pmod 3q, x 3 pmod 5q, x 9 pmod 11q.Lời giải: Nghịch đảo của 5.11 theo modulo 3 là 1, nghịch đảo của 3.11 theomodulo 5 là 2, nghịch đảo của 3.5 theo modulo 11 là 3. Vậy ta cóx p2.5.11.1 3.3.11.2 9.3.5.3q mod 3.5.11 713 mod 165 53.l1.3 Đa thức và Trường hữu hạnTrường và Trường hữu hạnĐịnh nghĩa 1.3.1 Cho tập hợp K có ít nhất hai phần tử. Trên K có hai phéptoán là phép cộng (kí hiệu là ) và phép nhân (kí hiệu là . hoặc ). K cùngvới hai phép toán đó được gọi là một trường nếu thỏa mãn 9 tính chất sau:T.1. Phép cộng có tính chất kết hợp: @a, b, c P K , pa bq c a pb cq .T.2. Có phần tử 0 P K sao cho: @a P K , 0 a a 0 a . Phần tử0 được gọi là phần tử không của K hay phần tử trung lập của phép cộngcủa K .T.3. Với mỗi a P K luôn tồn tại a 1 P K sao cho: a pa 1 q pa 1 q a 0,a 1 được gọi là phần tử đối của a và được kí hiệu là a.T.4. Phép cộng có tính chất giao hoán: @a, b P K , a b b a .T.5. Phép nhân có tính chất kết hợp: @a, b, c P K , pa.bq.c a.pb.cq .T.6. Có phần tử 1 P K sao cho @a P K , ta có: a.1 1.a a. Phần tử 1được gọi là phần tử đơn vị hay phần tử trung lập của phép nhân của K .T.7. Với mỗi a 0 luôn tồn tại a 1 P K sao cho a.a 1 a 1 .a 1, a 1 được gọilà nghịch đảo của a và được kí hiệu là a 1 .T.8. Phép nhân có tính chất giao hoán: @a, b P K , a.b b.a .T.9. Phép nhân phân phối đối với phép cộng: @a, b, c P K , a.pba.b a.c và pb cq.a b.a c.a .cq 44 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnCác tính chất trên còn được gọi là các tiên đề của trường.Ví dụ 1.3.2 Xét tập hợp số N , Z , Q , R cùng hai phép toán cộng và nhân thôngthường:• Phần tử 4 P N nhưng không có phần tử a P N sao cho 4 a 0 nêntập số tự nhiên N không phải là một trường (tiên đề T.3 không được thoảmãn).• Số nguyên 2 0 nhưng không có một số nguyên x nào thỏa mãn 2.x 1,do đó tập số nguyên Z không phải là một trường (tiên đề T.7 không đượcthoả mãn).• Tập hợp số hữu tỷ Q với những phép toán cộng và nhân thông thường làmột trường (trường số hữu tỉ) vì nó thỏa mãn cả 9 tiên đề của trường. Số0 chính là phần tử trung lập của phép cộng, số 1 chính là phần tử đơn vịcủa trường Q . Nếu a P Q thì đối của a là a, nghịch đảo của a 0 là1a .• Tương tự, tập hợp các số thực R với phép toán cộng và nhân thông thườnglà một trường và được gọi là trường số thực.Một số tính chất của trườngCho K là một trường, a, b, c P K , khi đó:Tính chất 1.3.3 (Luật giản ước đối với phép cộng) Nếu a b a c p1qthì b c.Chứng minh: Do K là một trường, a P K nên a có đối là a P K . Cộnga P K về phía bên trái của hai vế của đẳng thức p1q, ta được:paq pa bq paq pa cq.Suy ra rpaq as b rpaq as c (theo tiên đề T.1).Từ đó 0 b 0 c (theo tiên đề T.3).Do đó b c (theo tiên đề T.2).lTính chất 1.3.4 (Qui tắc chuyển vế) Định nghĩa a b anếu a b c p2q thì a c b.pbq. Khi đóBộ môn Toán - ĐẠI HỌC THĂNG LONG 45


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcChứng minh: Cộng cả hai vế của p2q với b, ta được:pa bq pbq c pbq.Suy ra a rb pbqs c pbq (theo tiên đề T.1).Từ đó a 0 c pbq (theo tiên đề T.3).Do đó a c pbq (theo tiên đề T.2).Nghĩa là a c b (theo định nghĩa).lTính chất 1.3.5a.0 0.a 0.Chứng minh: Ta có: a.0 a.p0 0q a.0 a.0. Mặt khác: a.0 a.0 0.Do đó: a.0 a.0 a.0 0. Giản ước cho a.0 ta được a.0 0. Tương tựta được: 0.a 0.lTính chất 1.3.6 Nếu a.b 0 thì a 0 hoặc b 0.Chứng minh: Giả sử a.b 0 p3q và a 0. Ta sẽ chứng minh b 0. Thậtvậy, từ a 0, theo tiên đề T.6, có a 1 sao cho a 1 .a 1. Nhân hai vế củap3q với a 1 , ta được:a 1 .pa.bq a 1 .0.Suy ra pa 1 .aq.b a 1 .0 (theo tiên đề T.5).Do đó 1.b a 1 .0 (theo tiên đề T.7).Vậy b a 1 .0 (theo tiên đề T.6).Từ đó b 0 (theo tính chất 1.3.5).lTính chất 1.3.7a.pbq paq.b pa.bq.Chứng minh: Ta có: a.pbq a.b a.rpbq bs a.0 0 và paq.ba.b rpaq as.b 0.b 0. Do đó a.pbq paq.b pa.bq. lTính chất 1.3.8apb cq ab ac.46 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnChứng minh: Ta có a.pb cq a.rb pcqs a.b a.pcq a.brpacqs a.b a.c.lTính chất 1.3.9 Nếu a.b a.c và a 0 thì b c.Chứng minh: Từ a 0, theo tiên đề T.6 có a 1 sao cho a 1 a 1. Nhân haivế của biểu thức a.b a.c với a 1 , ta được:a 1 .pa.bq a 1 .pa.cq.Suy ra pa 1 .aq.b pa 1 .aq.c (theo tiên đề T.5).Từ đó1.b 1.c.Vậy b c (theo tiên đề T.6).lTrường các số nguyên modulo pCho m là một số nguyên. Ta nhớ lại rằng Z m t0, 1, 2, . . . , m 1u.Trên Z m ta có hai phép toán cộng “`” và nhân “d” như sau:a ` b pa bq mod m, @a, b P Z m ,a d b pa.bq mod m, @a, b P Z m .Ví dụ 1.3.10 Phép cộng và nhân trong Z 7 được cho trong bảng sau:` 0 1 2 3 4 5 60 0 1 2 3 4 5 61 1 2 3 4 5 6 02 2 3 4 5 6 0 13 3 4 5 6 0 1 24 4 5 6 0 1 2 35 5 6 0 1 2 3 46 6 0 1 2 3 4 5d 0 1 2 3 4 5 60 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1Như chúng ta đã đề cập, nếu không sợ nhầm lẫn và để thuận tiện trong cáchviết, phép toán “`” có thể được kí hiệu là “ ”, phép toán “d” có thể được kíhiệu bởi “.” hoặc “”.Ta dễ dàng có thể kiểm tra mệnh đề sau:Mệnh đề 1.3.11 Z m là một trường khi và chỉ khi m là số nguyên tố.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 47


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcPhần tử trung lập của phép cộng là 0 và phần tử đơn vị của phép nhân là 1.Đối của 0 là 0. Nếu 0 a m thì đối của a là a m a. Nếu0 a m thì nghịch đảo của a chính là phần tử nghịch đảo theo modulo mcủa a: a 1 pmod mq.Ví dụ 1.3.12 • Trong Z 7 ta có: 1 1 1, 2 1 4, 3 1 5, 4 1 2,5 1 3, 6 1 6.• Trường Z 29 là một trường hữu hạn quan trọng thường được sử dụng trongviệc mã hóa (29 là số nguyên tố nhỏ nhất không nhỏ hơn 26 là số chữ cáitrong bảng chữ cái tiếng Anh).Ta có chẳng hạn: 20 13 p20 13q mod 29 4, 20.13 p20.13q mod 29 28, 7 22, 12 17.Ta có nghịch đảo của một số phần tử trong Z 29 như sau: 1 1 1,2 1 15, 3 1 10, 4 1 22, 12 1 17.Trường hữu hạnTrong nhiều vấn đề lí thuyết cũng như ứng dụng, ta thường làm việc với cáctrường chỉ có hữu hạn phần tử, đặc biệt là các trường Z p với p là số nguyên tố.Mệnh đề 1.3.13 Trong trường hữu hạn F , luôn tồn tại số nguyên dương p thỏamãn p.1 1 1 . . . 1 0 trong đó 1 là phần tử đơn vị của trường F .looooooooomooooooooonp sốChứng minh: Thật vậy, do trường F chỉ có hữu hạn phần tử nên dãy1, 2.1, 3.1, . . . , k.1, . . . (là các phần tử của trường F ) sẽ phải lặp lại. Chẳnghạn n.1 m.1 với n m. Khi đó pm nq.1 0. lĐịnh nghĩa 1.3.14 Cho trường hữu hạn F với phần tử đơn vị 1. Số nguyêndương nhỏ nhất p thỏa mãn p.1 0 được gọi là đặc số của trường F .Từ định nghĩa ta có nhận xét: nếu p là đặc số của trường hữu hạn F thì p.a 0với mọi phần tử a P F .Mệnh đề 1.3.15 Đặc số p của trường hữu hạn F là một số nguyên tố.Chứng minh: Giả sử p r.s với 1 r, s p. Khi đó p.1 pr.sq.1 pr.1q.ps.1q 0. Theo tính chất 1.3.6 ta có r.1 0 hoặc s.1 0. Điều nàymâu thuẫn với p là số nguyên dương nhỏ nhất thỏa mãn p.1 0. Vậy p là sốnguyên tố.l48 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnVới p là số nguyên tố, ta kí hiệu F q là trường có q phần tử với đặc số p.Người ta đã chứng minh rằng số phần tử q của trường F luôn là một lũy thừacủa p: q p d .Mệnh đề 1.3.16 Nếu a là phần tử khác không của một trường hữu hạn q phầntử F q thì a q1 1.Chứng minh: Lấy b 1 , b 2 , . . . , b q1 là q 1 phần tử khác nhau từng đôimột và khác không của F q . Ta có ab i ab j với i j vì nếu ab i ab j thì apb i b j q 0 suy ra b i b j do a 0. Vậy q 1 phần tửab 1 , ab 2 , . . . , ab q1 cũng chính là q 1 phần tử khác nhau từng đôi một vàkhác không của F q . Ta có:pab 1 qpab 2 q . . . pab q1 q b 1 b 2 . . . b q1 ,hay a q1 pb 1 b 2 . . . b q1 q b 1 b 2 . . . b q1 .Do b 1 b 2 . . . b q1 0 nên suy ra a q1 1.Định nghĩa 1.3.17 Cấp của một phần tử a khác không thuộc trường hữu hạn qphần tử F q là một số n nguyên dương nhỏ nhất sao cho a n 1.Ví dụ 1.3.18 Trong Z 5 , cấp của 1 là 1, cấp của 2 là 4, cấp của 3 là 4, cấp của4 là 2.Định lý 1.3.1 Nếu a là một phần tử khác không của trường hữu hạn q phần tửF q và n là cấp của a thì q 1 chia hết cho n.Chứng minh: Theo thuật toán chia, lấy q 1 chia cho n ta có q 1 k.nvới 0 ¤ r n. Ta có:a q1 a k.n r pa n q k .a r .Do a q1 1 và a n 1 nên suy ra a r 1. Vì 0 ¤ r n và n là số nguyêndương nhỏ nhất thỏa mãn a n 1 nên ta phải có r 0. Vậy n q 1. llrĐịnh nghĩa 1.3.19 Phần tử a khác không trong trường hữu hạn q phần tử F qđược gọi là phần tử nguyên thủy nếu cấp của a là q 1.Vì cấp của phần tử nguyên thủy a là q 1 nên tập hợp ta 1 , a 2 , . . . , a q1 uchính là tất cả các phần tử khác không của F q .Hệ quả 1.3.20 Mọi trường hữu hạn q phần tử F q đều có phần tử nguyên thủy.Nếu a là phần tử nguyên thủy của F q thì a s là phần tử nguyên thủy của F q khivà chỉ khi s và q 1 nguyên tố cùng nhau. Như vậy tồn tại tất cả φpq 1qphần tử nguyên thủy của F q .Bộ môn Toán - ĐẠI HỌC THĂNG LONG 49


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcĐa thức trên một trườngĐịnh nghĩa 1.3.21 K là một trường, x là một kí hiệu. Với mỗi bộ hữu hạnnhững phần tử thuộc K : a n , a n1 , . . . , a 1 , a 0 , ta lập biểu thức hình thức:f a n x n a n1 x n1 . . . a 2 x 2 a 1 x a 0 .Khi đó f được gọi là một đa thức của ẩn x (hay biến x) với hệ số trên trườngK . Kí hiệu K rxs là tập hợp tất cả các đa thức ẩn x với hệ số trên K .Phép cộng hai đa thức, nhân hai đa thức và phép nhân một phần tử của K vớimột đa thức tương tự như trường hợp đa thức hệ số thực (trường R ) mà ta coinhư đã biết. Nói riêng, đa thức f 0 và đa thức g 0 kéo theo fg 0.Định nghĩa 1.3.22 Cho đa thức với các hệ số trên trường K : f a n x na n1 x n1 . . . a 2 x 2 a 1 x a 0 trong đó a n 0. Khi đó ta nói rằng đathức f có bậc là n và viết deg f n. Bậc của đa thức không (0) được coi làbằng 8.Nếu deg f n, deg g m thì degpfgq n m và degpf gq ¤maxtn, mu.Định lý 1.3.2 Giả sử g là một đa thức khác không trên trường K . Khi đó vớimỗi đa thức f P K rxs, tồn tại duy nhất một cặp đa thức q và r trên trường Ksao cho:f qg r, deg r deg g.Các đa thức q và r được gọi tương ứng là thương và phần dư trong phép chiaf cho g. Đôi khi ta cũng kí hiệu q f div g và r f mod g.Chứng minh: Giả sử f a n x n a n1 x n1 . . . a 2 x 2 a 1 x a 0 vàg b m x m b m1 x m1 . . . b 2 x 2 b 1 x b 0 trong đó a n , b m 0.Chứng minh được tiến hành bằng qui nạp toán học theo n.Nếu n 0, m 0 thì ta đặt r 0, q a 0 b 10. Còn nếu n 0, m ¡ 0thì ta đặt q 0, r f.Giả sử rằng định lí đã được chứng minh cho mọi đa thức có bậc nhỏ hơn n,trong đó n ¡ 0.Ta đi chứng minh định lí đúng với đa thức có bậc là n (n ¡ 0): Nếu m ¡ nthì ta chọn q 0, r f. Nếu m ¤ n, đặt h f pa n b 1m qxnm .g. Khiđó h là một đa thức có bậc deg h n. Theo giả thiết qui nạp, có các đa thứcs và r sao cho:h sg r, deg r deg g.50 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnĐặt q a n b 1m xnms, ta có ngayf qg r, deg r deg g.Để chứng minh tính duy nhất của cặp q, r, ta giả sử q 1 và r 1 cũng là các đathức sao cho:f q 1 g r 1 , deg r 1 deg g.Khi đó r r 1 pq 1 qq.g. Nếu q q 1 thìdegpr r 1 q degpq q 1 q deg g ¥ deg g.Điều này mâu thuẫn với giả thiết deg r deg g và deg r 1 deg g. Vậyq q 1 và do đó r r 1 .lĐịnh nghĩa 1.3.23 Đa thức f P K rxs được gọi là chia hết cho đa thứcg P K rxs khác không hoặc g chia hết f nếu có đa thức q P K rxs sao chof qg. Khi đó ta cũng nói g là ước của f hoặc f là bội của g và kí hiệug f hoặc f . g. Một đa thức khác đa thức hằng số (phần tử của trường K )và không chia hết cho đa thức nào bậc nhỏ hơn khác hằng số được gọi là đathức bất khả qui.Từ định nghĩa, ta có ngay mọi đa thức bậc nhất cũng là đa thức bất khả qui. Đathức hằng số không phải là đa thức bất khả qui.Ta công nhận định lí sau:Định lý 1.3.3 Mọi đa thức có bậc không nhỏ hơn 1 trên trường K luôn phântích được thành tích của những đa thức bất khả qui. Phân tích này là duy nhấtnếu đòi hỏi các đa thức trong khai triển không phải đa thức hằng đều có hệ sốcao nhất là 1.Như vậy, ta thấy dường như có một sự “tương tự” giữa các số nguyên và cácđa thức trên trường K . Các phép toán cộng, trừ, nhân, chia tương tự như nhau.Thuật toán chia tương tự nhau. So sánh số nguyên tương tự với so sánh bậc củađa thức. Số nguyên tố tương tự đa thức bất khả qui.Định nghĩa 1.3.24 Cho hai đa thức f và g trên trường K . Đa thức h đượcgọi là ước chung của hai đa thức f và g nếu h là ước của cả f và g. Ướcchung h của f và g được gọi là ước chung lớn nhất của f và g (kí hiệuh UCLNpf, gq) nếu h có hệ số cao nhất là phần tử đơn vị của K và h cóbậc lớn nhất trong tất cả các ước chung của f và g. Nếu UCLNpf, gq 1thì ta cũng nói f và g là hai đa thức nguyên tố cùng nhau.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 51


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcTương tự như đối với khái niệm ước chung lớn nhất của hai số nguyên, tacó khẳng định quan trọng sau:Định lý 1.3.4 Nếu f và g là hai đa thức có ước chung lớn nhất là d thì có haiđa thức u và v sao cho d f.u g.v.Để tìm ước chung lớn nhất của hai đa thức f và g ta cũng có thuật toánEuclid:f gq 0 r 1 , deg r 1 deg g;g r 1 q 1 r 2 , deg r 2 deg r 1 ;r 1 r 2 q 2 r 3 , deg r 3 deg r 2 ;. . .r n2 r n1 q n1 r n , deg r n deg r n1 ;r n1 r n q n .Đa thức dư cuối cùng khác đa thức không r n chính là ước chung lớn nhất củahai đa thức f và g đã cho. Cũng vậy, để tìm cả ước chung lớn nhất d (của f vàg) lẫn hai đa thức u, v tương ứng sao cho d f.u g.v ta sử dụng thuật toánEuclid mở rộng tương tự với thuật toán Euclid mở rộng dành cho số nguyên. Đềnghị các bạn tự xây dựng thuật toán này và phần giả mã của cả hai thuật toánEuclid mở rộng và Euclid cho đa thức.Định lí 1.3.4 cung cấp cho ta cơ sở xây dựng các trường hữu hạn gồm q p rphần tử. Trước tiên, ta nhận thấy các phép toán cộng và nhân các đa thức trêntrường Z p (p là số nguyên tố) thỏa mãn tất cả các tiên đề của định nghĩa trườngtrừ ra tiên đề T.7 về tính khả nghịch của đa thức khác đa thức không. Để tiên đềT.7 thỏa mãn, ta sẽ đưa vào hai phép toán cộng ` và nhân d mới dựa trên phépcộng và nhân đa thức như sau: nếu f là một đa thức bất khả qui bậc r trongZ p rxs, thìg ` h pghq mod f, @g, h P Z p rxs,g d h pg.hq mod f, @g, h P Z p rxs.Rõ ràng là tuy ta xét hai phép toán ` và d trên tập Z p rxs nhưng thực ra ta chỉxét trên tập các đa thức trên trường Z p có bậc nhỏ hơn r. Dễ dàng kiểm chứngtrên tập này, hai phép toán mới định nghĩa cũng thỏa mãn các tiên đề T.1, T.2,T.3, T.4, T.5, T.6, T.8, T.9.Ta sẽ xem xét tiên đề T.7. Vì f là đa thức bất khả qui nên UCLNpf, gq 1với g là đa thức khác đa thức không trên trường Z p có bậc nhỏ hơn r. Theođịnh lí 1.3.4, có hai đa thức u và v sao cho 1 f.u g.v. Chia hai vế chođa thức f lấy phần dư, ta sẽ có g d v 1. Vậy nếu g là đa thức khác đa thức52 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnkhông trên trường Z p có bậc nhỏ hơn r thì luôn có đa thức v trên trường Z p cóbậc nhỏ hơn r (nếu không nhỏ hơn r thì ta lấy v mod f) sao cho g d v 1.Vậy tiên đề T.7 cũng được thỏa mãn. Tức là nếu f là đa thức bất khả qui bậcr thì ta có tập các đa thức trên trường Z p có bậc nhỏ hơn r với hai phép toáncộng ` và nhân d định nghĩa ở trên lập thành một trường. Theo qui tắc nhân,ta có thể đếm được trường này có đúng q p r phần tử.Bài tập II.1. Xây dựng thuật toán tính tổng tất cả các số nguyên trong một bảng. Hãychứng minh tính đúng đắn, tính dừng của thuật toán vừa xây dựng. Chỉ ra cácđặc trưng còn lại của thuật toán.I.2. Xây dựng thuật toán tính x n với x P R và n P Z . Hãy chứng minh tínhđúng đắn, tính dừng của thuật toán vừa xây dựng. Chỉ ra các đặc trưng còn lạicủa thuật toán.I.3. Xây dựng thuật toán tráo đổi giá trị của các biến x và y bằng cách chỉ dùngphép gán. Số tối thiểu các phép gán để làm việc đó là bao nhiêu?I.4. Xây dựng thuật toán tráo đổi giá trị của các biến x và y mà không sử dụngbiến trung gian. Hãy chứng minh tính đúng đắn của thuật toán vừa xây dựng.I.5. Liệt kê các bước cần tiến hành để tìm số 9 trong dãy 1, 3, 4, 5, 6, 8, 9, 11khi dùng:a) Thuật toán tìm kiếm tuyến tính.b) Thuật toán tìm kiếm nhị phân.I.6. Xây dựng thuật toán kiểm tra tính toàn ánh, đơn ánh của một hàm số từ tậphữu hạn phần tử này đến tập hữu hạn phần tử khác.I.7. Mode của một bảng liệt kê các số nguyên là phần tử ít xuất hiện nhất ởtrong bảng. Xây dựng thuật toán tìm mode của dãy số nguyên không giảm.I.8. Xây dựng thuật toán tìm trong dãy các số nguyên tất cả các số hạng lớnhơn tổng tất cả các số hạng đứng trước nó trong dãy.I.9. Tìm hoán vị theo thứ tự từ điển liền trước và liền sau của các hoán vị sau:a) 1, 4, 3, 2.b) 5, 4, 1, 2, 3.c) 1, 2, 4, 5, 3.d) 4, 5, 2, 3, 1.e) 6, 7, 1, 4, 2, 3, 5.f) 3, 1, 5, 2, 8, 7, 6, 4.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 53


I.10. Sắp xếp các hoán vị sau theo thứ tự từ điển:Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức2, 3, 4, 5, 6, 1;2, 3, 1, 4, 5, 6;1, 6, 5, 4, 3, 2;1, 5, 6, 4, 2, 3;5, 4, 3, 2, 1, 6;5, 4, 1, 2, 3, 6;2, 3, 1, 4, 6, 5;3, 1, 4, 5, 6, 2;4, 3, 2, 5, 6, 1;6, 5, 4, 3, 2, 1;6, 5, 4, 3, 1, 2;4, 3, 5, 6, 1, 2.I.11. Dùng thuật toán sinh hoán vị kế tiếp hãy tạo ra 24 hoán vị của 4 số nguyêndương đầu tiên theo thứ tự từ điển.I.12. Dùng thuật toán sinh xâu nhị phân hãy liệt kê tất cả các tập con của tậpt1, 2, 3, 4u.I.13. Dùng thuật toán sinh tập con m phần tử của tập có n phần tử, hãy liệt kêtất cả các tổ hợp chập 3 của tập ta, b, c, d, eu.I.14. Hãy xây dựng thuật toán sinh chỉnh hợp chập m phần tử của tập có nphần tử. Áp dụng thuật toán vừa xây dựng, hãy liệt kê tất cả các chỉnh hợp chập3 của tập ta, b, c, d, eu.I.15. Hãy xây dựng thuật toán sinh chỉnh hợp lặp chập m phần tử của tập có nphần tử.I.16. Hãy xây dựng thuật toán sinh tổ hợp lặp chập m phần tử của tập có nphần tử.I.17. Hãy xây dựng thuật toán tìm dãy con tăng dài nhất và dãy con giảm dàinhất của một dãy hữu hạn số nguyên dương cho trước.I.18. Cho phương trình x 1 x 2 . . . x n C trong đó C là hằng nguyênkhông âm. Hãy liệt kê tất cả các nghiệm nguyên không âm của phương trình.I.19. Tìm các số nguyên tương ứng với các hoán vị sau:a) 1, 4, 3, 2.b) 5, 4, 1, 2, 3.c) 1, 2, 4, 5, 3.d) 4, 5, 2, 3, 1.e) 6, 7, 1, 4, 2, 3, 5.f) 3, 1, 5, 2, 8, 7, 6, 4.I.20. Tìm các hoán vị của t1, 2, 3, 4, 5u tương ứng với các số nguyên sau đâythông qua khai triển Cantor:a) 3.b) 89.c) 11.d) 111.e) 35.f) 58.54 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnI.21. Trong những số sau số nào chia hết cho 19?a) 76.b) 220.c) 494.d) 1063.I.22. Hãy xác định thương và số dư của những phép chia sau:a) 0 chia cho 8.b) 4 chia cho 1.c) 1 chia cho 5.d) 111 chia cho 11.e) 789 chia cho 23.f) 1001 chia cho 13.I.23. Chứng minh rằng trong năm số nguyên tùy ý tồn tại ba số có tổng chiahết cho 3.I.24. Cho m và n là những số nguyên. Chứng minh rằng nếu m 2hết cho 3 thì m và n cùng chia hết cho 3.n 2 chiaI.25. Chứng minh rằnga) 11 10 1 . 100. b) 2222 5555 5555 2222 . 7.I.26. Tìm tất cả những số tự nhiên n để 2 n 1 chia hết cho 7. Chứng minhrằng với mọi số tự nhiên n ta có 2 n 1 không chia hết cho 7.I.27. Kiểm tra xem số nguyên nào sau đây là số nguyên tố:a) 19.b) 93.c) 107.d) 119.e) 2047.f) 8191.I.28. Phân tích những số dưới đây ra thừa số nguyên tốa) 143.b) 289.c) 899.d) 7337.e) 1875.f) 11687.I.29. Chứng minh rằng lũy thừa của số nguyên tố p khi phân tích n! ra thừa sốnguyên tố bằngt n p u t n p 2 u . . . t n p k u,Bộ môn Toán - ĐẠI HỌC THĂNG LONG 55


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứctrong đó k là số nguyên dương thỏa mãn p k ¤ n p k 1 .I.30. Hãy phân tích những số sau ra thừa số nguyên tốa) 10!. b) 20!. c) 50!.I.31. 100! tận cùng bằng bao nhiêu số 0?I.32. Cho a là một số nguyên dương. Chứng minh rằng với số tự nhiên n ¡ 1:a) Nếu a n 1 là số nguyên tố thì a 2.b) Nếu 2 n 1 là là số nguyên tố thì n là số nguyên tố.I.33. Hãy chỉ ra những số nguyên tố trong những số cho dưới đây:a) 2 9 1.b) 2 11 1.c) 2 13 1.d) 3 7 1.e) 5 15 1.f) 9 7 1.I.34. Chứng minh rằng số dư trong phép chia một số nguyên tố cho 30 chỉ cóthể là 1 hoặc là số nguyên tố. Hãy xét xem khi chia số nguyên tố cho 60 thì cókết quả như trên không?I.35. Xác định số nguyên tố p sao cho 2pnhiên.1 là lập phương của một số tựI.36. Tìm tất cả những số nguyên tố p sao cho nó vừa là tổng của hai số nguyêntố và vừa là hiệu của hai số nguyên tố.I.37.a) Cho p và 8p 2 1 là những số nguyên tố. Chứng minh rằng 8p 2 2p 1cũng là số nguyên tố.b) Cho p ¥ 5 là một số nguyên tố. Chứng minh rằng nếu 2p 1 là số nguyêntố thì 4p 1 là hợp số.I.38. Chứng minh rằng với n ¡ 2 các số 2 nsố nguyên tố.1 và 2 n 1 không thể cùng làI.39. Một số nguyên dương được gọi là hoàn hảo nếu nó bằng tổng các ước sốcủa nó trừ ước là chính số đó.56 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạna) Chứng minh 6 và 28 là những số hoàn hảo.b) Chứng minh 2 p1 p2 p 1q là một số hoàn hảo nếu 2 p 1 là số nguyên tố.I.40. Dùng thuật toán Euclid để tìm ước chung lớn nhất của những cặp số nguyênsau:a) a 12 và b 8.b) a 111 và b 223.c) a 1001 và b 1331.d) a 12345 và b 54321.e) a 123 và b 277.f) a 11111 và b 111111.I.41. Dùng thuật toán Euclid mở rộng để tìm ước chung lớn nhất d và nhữngsố nguyên x, y ứng với những cặp số nguyên a, b sao cho d a.x b.y ởbài tập trên.I.42. Xác định ước số chung lớn nhất và bội chung nhỏ nhất của những cặp sốnguyên sau:a) 2 2 .3 3 .5 5 và 2 5 .3 3 .5 2 .b) 2 2 .7 và 563.13.c) 0 và 5.d) 2.3.5.7.11.13 và 2 11 .3 9 .11.17 14 .e) 187 và 51.f) 2.3.5.7 và 2.3.5.7.I.43. Chứng minh rằnga) UCLNpa, a bq UCLNpa, bq.b) UCLNpa b, abq 1 nếu UCLNpa, bq 1.c) UCLNp2a b, apa bqq 1 nếu UCLNpa, bq 1.d) UCLNp5a 3b, 13a 8bq UCLNpa, bq.I.44. Tìm tất cả những cặp số tự nhiên a và b thỏa mãna) a b 432 và UCLNpa, bq 36.b) ab 8400 và UCLNpa, bq 20.c) 7a 11b và UCLNpa, bq 45.d) BCNNpa, bq 2496 và UCLNpa, bq 24.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 57


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcI.45. Cho a, b, c là những số lẻ. Chứng minh rằng ta cóUCLNpa, b, cq UCLN a b2 , b c2 , c a .2I.46. Chứng minh rằng:a) Với a ¡ 1 ta có UCLNpa m 1, a n 1q a UCLNpm,nq 1.b) Với a ¡ 1, m ¡ 1 ta có UCLN am 1a 1 , a 1 UCLNpa 1, mq.c) Với a ¡ 1 ta có UCLNpa! 1, pa 1q! 1q 1.I.47. Chứng minh rằng:a) BCNNpa, UCLNpb, cqq UCLNpBCNNpa, bq, BCNNpa, cqq.b) UCLNpa, BCNNpb, cqq BCNNpUCLNpa, bq, UCLNpa, cqq.I.48. Chứng minh rằng:a) BCNNpa, b, cq b) UCLNpa, b, cq abc. UCLNpa, b, cqUCLNpa, bq. UCLNpb, cq. UCLNpc, aq .abc. BCNNpa, b, cqBCNNpa, bq. BCNNpb, cq. BCNNpc, aq .I.49. Chứng minh rằng:a) 100a 10b c 0 pmod 21q khi và chỉ khi a 2b 4c 0 pmod 21q.b) 3 n 1 pmod 10q khi và chỉ khi 3 n 4 1 pmod 10q.I.50. Tìm số dư trong những phép chia sau:a) 8! chia cho 11.b) 1532 5 1 chia cho 9.c) 35 150 chia cho 425.d) 6 592 chia cho 11.e) 3 40 chia cho 83.f) 5 70 7 50 chia cho 12.g) 3.5 75 4.7 100 chia cho 132.h) p12371 56 34q 28 chia cho 111.i) 10 10 10 102 . . . 10 1010 chiacho 7.58 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạnI.51. Chứng minh rằng:a) 220 11969 119 69220 69 220119 chia hết cho 102.b) 6 2n 1 5 n 2 chia hết cho 31 với n P N .c) 2 70 3 70 chia hết cho 13.d) 20 15 1 chia hết cho 11.31.61.e) 2 34n 1 3 chia hết cho 11 với n P N .f) 2 26n 2 3 chia hết cho 19 với n P N .I.52. Chứng minh rằng với m, n là những số tự nhiên lẻ, ta có:1 n 2 n . . . m n 0 pmod mq.I.53. Chứng minh rằng nếu UCLNpa, mq 1 và α, β là hai số tự nhiên saocho α β pmod φpmqq thì ta có a α a β pmod mq.I.54. Cho m và n là hai số tự nhiên lớn hơn 1 nguyên tố cùng nhau. Chứngminh rằngm φpnq n φpmq 1 pmod mnq.I.55. Chứng minh rằng nếu a 1 a 2 . . . a n 0 pmod 30q thìa 5 1a 5 2. . . a 5 n 0 pmod 30q.I.56. Chứng minh rằng:a) 1 30 2 30 . . . 10 30 1 pmod 11q.b) Với p là một số nguyên tố lẻ ta có: 1 m 2 m . . . pp1q m 1 pmod pqnếu m 0 pmod p 1q.c) Với p là một số nguyên tố lẻ ta có: 1 m 2 m . . . pp 1q m 0 pmod pqnếu m 0 pmod p 1q.I.57. Tính nghịch đảo của:a) 3 trong Z 28 .b) 4 trong Z 65 .c) 13 trong Z 43 .d) 112 trong Z 213 .Bộ môn Toán - ĐẠI HỌC THĂNG LONG 59


I.58. Tính giá trị của các hàm Euler sau:Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứca) φp15q.b) φp63q.c) φp109q.d) φp936q.e) φp11200q.f) φp2431q.I.59. Chuyển từ biểu diễn thập phân sang biểu diễn nhị phân của những sốnguyên sau:a) 57.b) 423.c) 1234.d) 342.e) 643.f) 235158.I.60. Chuyển từ biểu diễn nhị phân sang biểu diễn thập phân của những sốnguyên sau:a) 11111 2 .b) 1000000001 2 .c) 1010101 2 .d) 1100110011 2 .e) 11100001011010 2 .f) 111110000011111 2 .I.61. Chuyển từ biểu diễn nhị phân sang biểu diễn thập lục phân của những sốnguyên sau:a) 11111 2 .b) 1000000001 2 .c) 1010101 2 .d) 1100110011 2 .e) 11100001011010 2 .f) 111110000011111 2 .I.62. Chuyển từ biểu diễn thập lục phân sang biểu diễn thập phân và nhị phâncủa những số nguyên sau:a) AABB 16 .b) 135AB 16 .c) DEF ACED 16 .d) 1A5B8EF 16 .e) DCE36 16 .f) F F F F 16 .I.63. Chuyển từ biểu diễn thập phân sang biểu diễn thập lục phân của những sốnguyên sau:60 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạna) 1356.b) 4327.c) 512.d) 65537.e) 4096.f) 851532.I.64. Chứng minh rằng, chỉ dùng các loại quả cân nặng 1kg, 3kg, 9kg, 27kg,mỗi loại đúng một quả cân và một chiếc cân đĩa, có thể cân được tất cả các vậtcó khối lượng nguyên (đơn vị là kg) từ 1kg đến 40kg.I.65. Ô nhớ nào sẽ được gán bởi hàm băm hpkq k mod 101 cho hồ sơ củasinh viên có số thẻ bảo hiểm xã hội là:a) 104578690.b) 432222187.c) 372201919.d) 501338753.I.66. Một bãi đỗ xe có 31 chỗ dành cho khách, được đánh số từ 0 đến30. Các xe của khách được gán cho chỗ đỗ bằng cách dùng một hàm bămhpkq k mod 31 với k là số tạo bởi ba chữ số đầu trên biển đăng kí xe củakhách.a) Xác định chỗ đỗ của xe, nếu ba chữ số đầu trên biển đăng kí của nó là:317; 918; 007; 100; 111; 310.b) Mô tả các bước mà khách cần phải tuân theo để tìm ra chỗ đỗ xe còn trốngkhi chỗ đỗ theo qui ước của họ đã bị chiếm.I.67. Xác định dãy các số giả ngẫu nhiên được sinh ra bằng cách dùng “máyphát” đồng dư tuyến tính:x n 1 p4x n 1q mod 7 với số hạt giống x 0 3.I.68. Xác định dãy các số giả ngẫu nhiên được sinh ra bằng cách dùng “máyphát” đồng dư tuyến tính:x n 1 3x n mod 11 với số hạt giống x 0 2.I.69. Giải những phương trình đồng dư sau:a) 7x 25 pmod 117q.b) 67x 64 pmod 183q.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 61


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcc) 213x 137 pmod 2113q.d) 1296x 1105 pmod 2113q.e) pa bqx a 2 b 2 pmod a.bq với UCLNpa, bq 1.f) 6x 27 pmod 33q.g) 186x 374 pmod 422q.h) 129x 321 pmod 471q.i) 285x 177 pmod 924q.I.70. Mã hóa bức thư “LET BYGONES BE BYGONES” bởi các hàm mã hóafppq cho sau đây:a) fppq pp 3q mod 26.b) fppq pp 15q mod 26.c) fppq p3p 7q mod 26.I.71. Giải mã các bức thư đã được mã hóa bằng mật mã Ceasar sau:a) ORYH VWRUB.b) PLVVLRQ WRS VHFUHW.c) JRQH ZLWK WKH ZLQG.I.72. Biết bản mã hóa của một bức thư như sau: “LJMKG MGMXF QEXMW”.Tìm bức thư gốc biết nó được mã hóa bởi hàm fppq p7p 10q mod 26.I.73. Giải những hệ phương trình đồng dư sau:a)b)$'&'%$&%x 1 pmod 3q,x 4 pmod 5q,x 2 pmod 7q,x 9 pmod 11q,x 3 pmod 13q.x a pmod 3q,x b pmod 5q,x c pmod 7q.c)d)$&%$&%x 4 pmod 5q,x 1 pmod 12q,x 7 pmod 14q.x 13 pmod 14q,x 6 pmod 35q,x 26 pmod 45q.62 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


1.3. Đa thức và Trường hữu hạne)$&%5x 1 pmod 12q,5x 2 pmod 8q,7x 3 pmod 11q.f)$&%3x 1 pmod 10q,4x 3 pmod 5q,2x 7 pmod 9q.I.74. Tìm tất cả những số tự nhiên không vượt quá 1000 mà khi chia chúngcho 3, 5, 9, 11 ta được số dư lần lượt là 1, 3, 4, 9.I.75. Hãy thực hiện phép nhân các đa thức fpxq và gpxq sau trong Z 5 rxs:a) fpxq 2x 2 4x 1 và gpxq 2x 3 3x 2 5.b) fpxq px 2q 2 và gpxq px 3q 2 .I.76. Trong Z 5 rxs hãy thực hiện phép chia fpxq x 3 2x 2 2x 1 chogpxq 2x 2 2x 1.I.77. Hãy xác định số nguyên p để đa thức dư của phép chia đa thức fpxq x 3 px 5 cho gpxq x 2 5x 7 trong Z 7 rxs bằng 0.I.78. Trong Q rxs, chứng minh rằng đa thức fpxq pxchia hết cho:1q 2n x 2n 2x 1a) 2x 1.b) x 1.c) x.I.79. Chứng minh rằng với mọi số tự nhiên n, ta có đa thức fpxq px1q n nx 1 chia hết cho đa thức gpxq x 2 trong R rxs.I.80. Tìm các số thực a sao cho trong R rxs ta có đa thức fpxq x 4 xchia hết cho đa thức gpxq x 2 ax 1.aI.81. Cho k và n là các số tự nhiên khác không, r là số dư của phép chia n chok. Chứng minh rằng dư của phép chia x n cho x k 1 là x r .I.82. Trong Q rxs, tìm UCLN của các cặp đa thức sau:a) fpxq x 6 2x 5 x 4 x 2 2x 1 và gpxq x 5 3x 3 x 2 2x 1.b) fpxq x 5 x 3 x 2 x 1 và gpxq x 3 2x 2 x 1.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 63


Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thứcI.83. Chứng minh rằng trong R rxs, các đa thức fpxq x 4 1 và gpxq x 3 1 nguyên tố cùng nhau. Hãy tìm cặp đa thức upxq và vpxq trong R rxssao cho 1 f.u g.v.I.84. Chứng minh rằng trong Q rxs, đa thức fpxq x 3 3n 2 xlà một số tự nhiên khác không, là đa thức bất khả qui.n 3 , với nI.85. Chứng minh rằng trong Q rxs, những đa thức sau bất khả qui:a) fpxq x 4 8x 3 12x 2 6x 3.b) gpxq x 4 x 3 2x 1.c) spxq x p1 x p2 . . . x 1 với p là một số nguyên tố.d) tpxq x 3 3x 1.64 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


Chương 2Nguyên lí bù trừ, Đệ qui vàHệ thức truy hồiNguyên lí bù trừ, hệ thức truy hồi là những kĩ thuật đếm cao cấp khác màchúng ta sẽ cùng tìm hiểu trong chương này. Các bạn sẽ được làm quenvới định nghĩa đệ qui, các dạng hệ thức truy hồi tuyến tính hệ số hằng số và saucùng là áp dụng vào tính toán đánh giá độ phức tạp thuật toán.2.1 Nguyên lí bù trừTrong phần nguyên lí đếm ta đã biết số phần tử của hợp hai tập hợp bằng|A Y B| |A| |B| |A X B|. Vậy số phần tử của hợp nhiều hơn hai tậphợp thì sao? Trong nội dung mục này, chúng ta sẽ xem xét cách đếm số phần tửcủa hợp hữu hạn những tập hợp. Đó chính là nội dung của nguyên lí bù trừ.Đối với trường hợp ta có ba tập hợp A, B, C cho trước, tổng |A| |B| |C|sẽ đếm một lần các phần tử chỉ thuộc một trong ba tập hợp, đếm hai lần cácphần tử thuộc đúng hai trong ba tập hợp và sẽ đếm ba lần các phần tử thuộc cảba tập hợp. Vậy để loại bỏ sự trùng lặp trong quá trình đếm các phần tử, ta cầnphải trừ đi số phần tử thuộc các giao của tất cả các cặp hai trong ba tập hợp:|A| |B| |C| |A X B| |A X C| |B X C|.Tuy nhiên, tổng trên cũng không đếm chính xác được số phần tử của AYB YCvì trong quá trình trừ vừa thực hiện, ta đã trừ đi ba lần số các phần tử thuộc cảba tập hợp (tức là các phần tử thuộc cả ba tập hợp không xuất hiện trong tổng).Để có được số phần tử chính xác, ta thêm vào tổng trên số phần tử thuộc vào cảba tập hợp đã cho. Vậy ta nhận được công thức:|AYB YC| |A| |B| |C||AXB||AXC||B XC| |AXB XC|.


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiVí dụ 2.1.1 Hãy tìm số xâu nhị phân độ dài mười chứa tám số 0 liên tiếp.Lời giải: Gọi A, B, C lần lượt là tập các xâu nhị phân độ dài mười chứa támsố không liên tiếp ở vị trí đầu tiên, tám số không liên tiếp ở vị trí giữa và tám sốkhông liên tiếp ở vị trí cuối của xâu. Để đếm số xâu nhị phân độ dài mười chứatám số 0 liên tiếp ta tìm số phần tử của tập A Y B Y C theo công thức|AYB YC| |A| |B| |C||AXB||AXC||B XC| |AXB XC|.Theo qui tắc nhân ta có thể tính ngay được |A| |B| |C| 4, |A X B| |B X C| 2, |A X C| 1 và |A X B X C| 1. Vậy |A Y B Y C| 8. lTrong trường hợp tổng quát, ta có nguyên lí bù trừ được phát biểu như sau:Định lý 2.1.1 (Nguyên lí bù trừ) Cho A 1 , A 2 , . . . , A n là n tập hợp hữu hạnphần tử. Khi đó, ta có:¸ ¸¸|A 1 YA 2 Y. . .YA n | |A i | |A i XA j ||A i XA j XA k |1¤i¤n 1¤i j¤n1¤i j k¤n¸ . . . p1q m1 |A i1 X A i2 X . . . X A im |1¤i 1 i 2 ... i m ¤n. . . p1q n1 |A 1 X A 2 X . . . X A n |.Chứng minh: Chúng ta sẽ chứng minh công thức trên bằng cách chỉ ra rằng mỗiphần tử của hợp n tập hợp được đếm đúng một lần. Giả sử a là phần tử chungcủa đúng r tập hợp trong những tập A 1 , A 2 , . . . , A n trong đó 1 ¤ r ¤ n.° ° Phần tử này được đếm đúng Cr 1 lần trong tổng |A i |, đúng Cr 2 lần trong tổng|Ai X A j |. Tổng quát, nó được đếm đúngC 1 r C2 r. . . p1q r1 C r rlần khi tính giá trị ở vế phải của công thức trên. Mặt khác, ta cóhayC 0 r C1 rC 2 r . . . p1qr C r r p1 1qr 0C 1 r C2 r. . . p1q r1 C r r C0 r 1.Vậy dù cho a là phần tử nào trong hợp A 1 Y A 2 Y . . . Y A n , a cũng chỉ đượcđếm đúng 1 lần khi áp dụng tính giá trị vế phải của công thức trên. Nguyên líđược chứng minh.lNhận thấy rằng mỗi số hạng trong vế phải của công thức đếm số phần tử củahợp n tập hợp tính theo nguyên lí bù trừ ứng với một tập con không rỗng của66 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.2. Định nghĩa bằng đệ quitA 1 , A 2 , . . . , A n u. Theo công thức tính số tập con của tập có n phần tử ta cóvế phải của công thức phát biểu trong nguyên lí bù trừ gồm 2 n 1 số hạng.Ví dụ 2.1.2 Hãy tính số các số nguyên tố nhỏ hơn 100.Lời giải: Trước hết ta đếm số hợp số nhỏ hơn 100. Nhớ lại rằng một hợp sốluôn có ít nhất một ước nguyên tố nhỏ hơn hay bằng căn bậc hai của nó. Do vậymọi hợp số nhỏ hơn 100 sẽ chia hết cho 2 hoặc cho 3 hoặc cho 5 hoặc cho 7không kể 2, 3, 5, 7. Gọi A k là tập các số nguyên dương nhỏ hơn 100 chia hếtcho k. Vậy số các hợp số nhỏ hơn 100 là |A 2 Y A 3 Y A 5 Y A 7 | 4. Theonguyên lí bù trừ cho hợp của bốn tập hợp ta có|A 2 Y A 3 Y A 5 Y A 7 | |A 2 | |A 3 | |A 5 | |A 7 | |A 2 X A 3 | |A 2 X A 5 | |A 2 X A 7 | |A 3 X A 5 | |A 3 X A 7 | |A 5 X A 7 ||A 2 X A 3 X A 5 | |A 2 X A 3 X A 7 | |A 2 X A 5 X A 7 | |A 3 X A 5 X A 7 | |A 2 X A 3 X A 5 X A 7 |.Mặt khác, ta có |A k | t 99 k u, A i X A jA i X A j X A k A ijk với UCLNpi, j, kq 1 . . . .Do đó|A 2 Y A 3 Y A 5 Y A 7 | |A 2 | |A 3 | |A 5 | |A 7 | |A 6 | |A 10 | |A 14 | |A 15 | |A 21 | |A 35 ||A 30 | |A 42 | |A 70 | |A 105 | |A 210 | A ij với UCLNpi, jq 1 và 49 33 19 14 16 9 7 6 4 2 3 2 1 0 0 77.Vậy số các số nguyên tố nhỏ hơn 100 (không phải là 1 hay các hợp số nhỏ hơn100) là 99 1 p77 4q 25. l2.2 Định nghĩa bằng đệ quiChúng ta có nhiều cách để định nghĩa một đối tượng. Chúng ta có thể địnhnghĩa một cách tường minh nhưng điều này không phải lúc nào cũng thực hiệnđược, có một cách khác là ta định nghĩa đối tượng này qua chính nó. Kỹ thuậtkiểu này được gọi là đệ qui hay hồi qui. Kỹ thuật đệ qui được sử dụng rất nhiềuvà đặc biệt hữu ích trong lập trình tin học.Trong mục này chúng ta sẽ đưa ra định nghĩa đệ qui của những dãy số, hàmsố và tập hợp bằng đệ qui.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 67


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiĐịnh nghĩa hàm bằng đệ quiĐể xem một hàm được định nghĩa bằng đệ qui như thế nào ta hãy xét ví dụvề định nghĩa hàm giai thừa F pnq. Chúng ta có thể định nghĩa một cách tườngminh F pnq n!. Tuy nhiên tính toán giá trị của hàm tại một số nguyên dươngn bất kì, chẳng hạn F p5q 5! ta phải tính 5! 5.4! 5.4.3! 5.4.3.2! 5.4.3.2.1! 5.4.3.2.1.0!. Như vậy giá trị F p5q được tính thông qua các giátrị trước nó và cuối cùng bao giờ ta cũng phải tính F p0q 0! 1. Từ ví dụtrên ta thấy có thể định nghĩa hàm giai thừa F pnq như sau: Đầu tiên ta địnhnghĩa giá trị tại n 0 sau đó ta xác định giá trị tại số nguyên n bất kì bằngcông thức F pnq n.F pn 1q.Một cách tổng quát, để định nghĩa một hàm xác định trên tập số nguyênkhông âm bằng đệ qui ta cho:1. Giá trị của hàm tại n 0,2. Công thức tính giá trị của hàm tại số nguyên dương n từ các giá trị của nótại các số nguyên dương nhỏ hơn.Ví dụ 2.2.1 Cho hàm f được định nghĩa bằng đệ qui như sau:Hãy tìm fp1q, fp2q, fp3q và fp4q.fp0q 2, fpn 1q 3fpnq 5.Lời giải: Từ định nghĩa của hàm f bằng đệ qui ta cófp1q 3fp0q 5 3.2 5 11,fp2q 3fp1q 5 3.11 5 38,fp3q 3fp2q 5 3.38 5 119,fp4q 3fp3q 5 3.119 5 362.Những ví dụ sau sẽ cho ta định nghĩa đệ qui của một số hàm như: hàm lũy thừa,hàm giai thừa, hàm dạng tổng, hàm dạng tích,...Ví dụ 2.2.2 Hãy cho định nghĩa đệ qui của hàm giai thừa F pnq n!.Lời giải: Nhận thấy F p0q 1. Do pn 1q! 1.2.3 . . . n.pn 1q pn 1q.n! nên ta có công thức F pn 1q pn 1q.F pnq. llVí dụ 2.2.3 Hãy cho định nghĩa đệ qui của hàm lũy thừa F pnq a n , trong đóa là số thực khác không và n là số nguyên không âm.68 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.2. Định nghĩa bằng đệ quiLời giải: Ta xác định F p0q a 0 1. Vì a pn 1q a.a n nên ta có công thứcF pn 1q a.F pnq. lVí dụ 2.2.4 Hãy cho định nghĩa đệ qui của hàm F pnq ņk0a k .Lời giải: Đầu tiên ta xác định F p0q a 0 .Sau đó ta tìm công thức đệ qui như sau:F pn1q n¸1k0a k ņk0a ka n 1 F pnq a n 1 .lVí dụ 2.2.5 Hãy cho định nghĩa đệ qui của hàm F pnq n¹k0a k .Lời giải: Phần đầu của định nghĩa đệ qui là: F p0q a 0 .Phần thứ hai của định nghĩa của đệ qui làF pn1q n¹1k0a k n¹k0a k.an 1 a n 1 .F pnq.lVí dụ 2.2.6 Hãy đưa ra định nghĩa đệ qui của hàm max và min sao chomaxta 1 , a 2 , . . . , a n u và minta 1 , a 2 , . . . , a n u tương ứng là số lớn nhất vàbé nhất của n số a 1 , a 2 , . . . , a n .Lời giải: Ta sẽ định nghĩa đệ qui đồng thời hàm max và hàm min như sau:Đầu tiên ta xác định maxta 1 u a 1 và minta 1 u a 1 .Sau đó ta đưa ra biểu thức đệ quimaxta 1 , a 2 , . . . , a n u maxtmaxta 1 , a 2 , . . . , a n1 u, a n u,vàminta 1 , a 2 , . . . , a n u mintminta 1 , a 2 , . . . , a n1 u, a n u.Trong một số định nghĩa hàm bằng đệ qui, ta cho giá trị của hàm tại k sốnguyên không âm đầu tiên và cho qui tắc tính giá trị của hàm tại số nguyên lớnBộ môn Toán - ĐẠI HỌC THĂNG LONG 69l


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồihơn từ k giá trị này. Theo nguyên lí thứ hai của qui nạp toán học thì cách địnhnghĩa này tạo ra những hàm hoàn toàn xác định.Một dãy số là một hàm số xác định trên tập số nguyên không âm. Chính vìvậy ta hoàn toàn có thể đưa ra định nghĩa đệ qui của những dãy số. Một trongnhững dãy số phổ biến nhất là dãy Fibonacci.Ví dụ 2.2.7 (Dãy Fibonacci) Dãy số Fibonacci tf n u được định nghĩa bằng đệqui như sau: f 0 0, f 1 1 và f n f n1 f n2 , với n 2, 3, 4, . . ..Hãy tính các số hạng f 2 , f 3 , f 4 , f 5 , f 6 , f 7 .Lời giải: Từ định nghĩa đệ qui của dãy tf n u ta suy ra:f 2 f 1 f 0 0 1 1,f 3 f 2 f 1 1 1 2,f 4 f 3 f 2 2 1 3,f 5 f 4 f 3 3 2 5,f 6 f 5 f 4 5 3 8,f 7 f 6 f 5 8 5 13.Dãy số Fibonacci có nhiều ứng dụng quan trọng và lí thú. Ta cũng thườnggặp dãy số Fibonacci trong thiên nhiên, chẳng hạn ở số cánh của hầu hết cácloài hoa: 3 cánh (hoa loa kèn), 5 cánh (hoa mao lương vàng), 8 cánh (hoa phiyến), 13 cánh và 21 cánh (hoa cúc vạn thọ), 34 cánh (hoa cúc),...Dãy Fibonacci còn có rất nhiều tính chất hay và có thể được chứng minhbằng cách sử dụng định nghĩa đệ qui. Sau đây ta sẽ đưa ra một vài ví dụ.Ví dụ? 2.2.8 Chứng minh rằng với n ¥ 3 ta có f n ¡ α n2 , trong đó α 1 5.2Lời giải: Gọi P pnq là mệnh đề “f n ¡ α n2 ”.Với n 3 và n 4, ta cóα 1 ?52Vậy P p3q và P p4q là đúng.2 f 3 , α 2 3 ?523 f 4 .Giả sử P pkq đúng với mọi k nguyên sao cho 3 ¤ k ¤ n, trong đó n ¥ 5.Ta cần chỉ ra rằng P pn 1q đúng. Thật vậy, vì α là nghiệm của phương trìnhx 2 x 1 0 nên α 2 α 1. Do đóα n1 α 2 .α n3 pα 1qα n3 α.α n3 α n3 α n2 α n3l70 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.2. Định nghĩa bằng đệ quiTheo giả thiết qui nạp nếu n ¥ 5 ta cóf n1 ¡ α n3 , f n ¡ α n2 .Từ đó f n 1 f n f n1 ¡ α n2 α n3 α n1 .Vậy P pn 1q đúng. Theo nguyên lí qui nạp toán học ta có P pnq đúng vớimọi n ¥ 3.lĐịnh nghĩa tập hợp bằng đệ quiCác tập hợp thường được định nghĩa bằng đệ qui. Trước tiên ta đưa ra tậpxuất phát. Sau đó xây dựng qui tắc tạo những phần tử mới từ các phần tử đãbiết của tập. Những tập được mô tả bằng cách như vậy được gọi là những tậpđược định nghĩa tốt, những định lí về chúng có thể chứng minh bằng cách sửdụng định nghĩa đệ qui của chúng.Ví dụ 2.2.9 Giả sử S được định nghĩa bằng đệ qui như sau:1. 3 P S.2. x y P S nếu x P S và y P S.Hãy chỉ ra rằng S là tập các số nguyên dương chia hết cho 3.Lời giải: Gọi A là tập các số nguyên dương chia hết cho 3. Để chứng minhA S ta sẽ chứng minh rằng A là tập con của S và S là tập con của A.Chứng minh A „ S.Nhận thấy rằng các phần tử của A đều có dạng 3n với n là một số nguyêndương. Đặt P pnq là hàm mệnh đề “3n thuộc S”. Để chứng minh A là tập concủa S ta cần chỉ ra rằng P pnq đúng với mọi n nguyên dương. P p1q đúng vìtheo định nghĩa của S ta có 3.1 3 P S. Giả sử P pnq đúng, tức là 3.n P S.Vì 3 P S và 3n P S nên theo định nghĩa 3 3n 3pn 1q P S. Điều nàycó nghĩa là P pn 1q đúng. Theo qui nạp toán học mọi số có dạng 3n, với nnguyên dương, thuộc S.Chứng minh S „ A.Để chứng minh S là tập con của A ta sẽ chỉ ra rằng các phần tử của S sinh rado phần đầu và phần sau của định nghĩa đệ qui đều thuộc A, tức là đều chia hếtcho 3. Hiển nhiên phần tử đầu tiên của S là 3 thuộc A do 3 chia hết cho 3. Bâygiờ ta chứng minh tất cả các phần tử của S sinh ra do phần sau của định nghĩa,cũng thuộc A. Giả sử x và y là hai phần tử của S là hai phần tử của A. Theođịnh nghĩa của S thì x y cũng là một phần tử của S, vì x và y đều chia hếtcho 3 nên x y cũng chia hết cho 3, tức là x y P A. lBộ môn Toán - ĐẠI HỌC THĂNG LONG 71


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiĐịnh nghĩa tập hợp trong ví dụ 2.2.9 là một định nghĩa đệ qui rất điển hình.Đầu tiên tập xuất phát được đưa ra. Tiếp theo là qui tắc tạo những phần tử mớitừ những phần tử đã biết của tập.Một trong các ứng dụng thường gặp nhất của định nghĩa đệ qui cho tập hợplà để định nghĩa biểu thức được tạo đúng qui tắc trong các hệ khác nhau. Ta xétví dụ sau:Ví dụ 2.2.10 Ta xét biểu thức gồm các biến, các số và các toán tử , trừ ,nhân , chia { và lũy thừa Ò được kết hợp với nhau theo một qui tắc nào đó. Khiđó một biểu thức (được tạo) đúng qui tắc được định nghĩa như sau:1. x là biểu thức đúng qui tắc nếu x là một số hay một biến.2. pf gq, pf gq, pf gq, pf{gq và pf Ò gq là những biểu thức đúng quitắc nếu f, g là những biểu thức đúng qui tắc.Chẳng hạn, do x và 3 là các biểu thức đúng qui tắc nên theo định nghĩa trênpx 3q, px 3q, px 3q, px{3q và px Ò 3q là các biểu thức đúng qui tắc. Tiếptheo, vì y cũng là biểu thức đúng qui tắc nên ppx 3q yq, py px 3qq cũnglà đúng qui tắc,... (lưu ý là p3{0q cũng là biểu thức đúng qui tắc vì ở đây ta chỉquan tâm đến cú pháp).Ví dụ 2.2.11 Biểu thức cho mệnh đề phức hợp gồm T, F , biến mệnh đề và cáctoán tử t , ^, _, Ñ, Øu được định nghĩa như sau:1. T, F và p, trong đó p là một biến mệnh đề, là những biểu thức đúng quitắc.2. p pq, pp ^ qq, pp _ qq, pp Ñ qq, pp Ø qq là những biểu thức đúng quitắc nếu p và q là những biểu thức đúng qui tắc.Chẳng hạn, nếu p, q là những biến mệnh đề, khi đó dùng định nghĩa đệ quinhiều lần ta có thể chỉ ra rằng các biểu thứclà đúng qui tắc.pp ^ qq, pr _ F q và ppp ^ qq Ñ pr _ F qqĐịnh nghĩa đệ qui thường được dùng khi nghiên cứu các xâu kí tự. Nhắclại rằng, xâu là dãy những kí tự thuộc bộ chữ cái Σ. Tập hợp các xâu ứng vớibộ chữ cái Σ được kí hiệu là Σ . Hai xâu có thể kết hợp với nhau theo phépghép. Ghép hai xâu x và y được xâu xy là xâu tạo nên bằng cách viết tiếpxâu y sau xâu x. Ví dụ, cho x là xâu abrrs, y là xâu zedgt, khi đó xy làxâu abrrszedgt. Khi chứng minh những kết quả về xâu ta thường dùng địnhnghĩa đệ qui.72 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.2. Định nghĩa bằng đệ quiVí dụ 2.2.12 (Định nghĩa đệ qui của tập các xâu) Giả sử Σ là tập các xâutrên bộ chữ cái Σ. Khi đó, Σ được định nghĩa bằng đệ qui như sau:1. λ P Σ , trong đó λ là xâu rỗng, tức là xâu không có phần tử nào.2. wx P Σ nếu w P Σ và x P Σ.Phần đầu của định nghĩa nói rằng xâu rỗng thuộc Σ . Phần sau khẳng định mộtxâu mới tạo nên bằng cách ghép một kí tự của Σ với một xâu của Σ cũng thuộcΣ .Độ dài của xâu, tức số kí tự trong xâu, cũng được định nghĩa bằng đệ qui.Ví dụ 2.2.13 Hãy nêu định nghĩa bằng đệ qui độ dài của xâu w.Lời giải: Ta kí hiệu độ dài của xâu w là lpwq. Khi đó định nghĩa đệ qui củalpwq như sau:1. lpλq 0, với λ là xâu rỗng.2. lpwxq lpwq 1, nếu w P Σ và x P Σ.lVí dụ 2.2.14 Chứng minh rằng lpxyq lpxqxâu thuộc Σ .lpyq, trong đó x và y là nhữngLời giải: Ta sẽ chứng minh bằng qui nạp toán học theo độ dài n của xâu ykhẳng địnhlpxyq lpxq lpyq,với x, y là những xâu thuộc Σ .Đặt P pnq là mệnh đềlpxyq lpxqvới x P Σ và y P Σ , y là xâu có độ dài n.Với n 0 ta có y λ, khi đólpyq,lpxyq lpxλq lpxq lpxq 0 lpxq lpλq.Giả sử P pnq là đúng, ta phải chứng minh rằng nếu z P Σ là xâu có độ dàin 1 thìlpxzq lpxq lpzq.Do z là xâu có độ dài n 1 nên z ya, với y là xâu có độ dài n và a P Σ.Theo định nghĩa độ dài của xâu ta cólpxzq lpxyaq lpxyq 1.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 73


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiMặt khác, theo giả thiết qui nạp ta lại có lpxyq lpxqlpyq. Từ đólpxzq lpxyq 1 lpxq lpyq 1 lpxq lpyaq lpxq lpzq.Vậy P pn 1q đúng và ta có điều phải chứng minh. l2.3 Hệ thức truy hồiĐịnh nghĩa 2.3.1 Hệ thức truy hồi của một dãy số ta n u là công thức biểudiễn a n qua một hay nhiều số hạng đi trước của dãy, cụ thể là biểu diễn quaa n0 , a n0 1, . . . , a n1 , với mọi n nguyên dương và n ¥ n 0 , trong đó n 0 là sốnguyên không âm.Dãy số được gọi là lời giải hay là nghiệm của hệ thức truy hồi nếu các sốhạng của nó thỏa mãn hệ thức truy hồi này.Ví dụ 2.3.2 Cho ta n u là dãy số thỏa mãn hệ thức truy hồi a n a n1 2a n2 ,với n 2, 3, . . . , và cho a 0 1, a 1 2. Tìm a 2 , a 3 .Lời giải: Từ hệ thức truy hồi ta có a 2 a 1 2a 0 2 2.1 4 vàa 3 a 2 2a 1 4 2.2 8. lVí dụ 2.3.3 Cho hệ thức truy hồi a n 3a n1 2a n2 , n 2, 3, . . . Kiểmtra xem những dãy nào sau đây là nghiệm của hệ thức truy hồi trên.1. a n 2 n , @n P N .2. a n 2n, @n P N .3. a n 2, @n P N .Lời giải:1. Giả sử a n 2 n , với mọi n P N . Khi đó với n ¥ 2 ta có 3a n1 2a n2 3.2 n1 2.2 n2 2 n . Do đó, dãy ta n u với a n 2 n là nghiệm của hệthức truy hồi đã cho.2. Xét dãy a n 2n, với mọi n P N . Khi đó a 0 0, a 1 2, a 2 4. Doa 2 4 3a 1 2a 0 nên dãy ta n u với a n 2n không là nghiệm củahệ thức truy hồi đã cho.3. Giả sử a n 2, với mọi n P N . Khi đó với n ¥ 2 ta có 3a n1 2a n2 2.2 2 2. Do đó, dãy ta n u với a n 2 là một nghiệm của hệ thứctruy hồi đã cho.74 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.3. Hệ thức truy hồiNhững điều kiện đầu đối với dãy số xác định những số hạng trước số hạngđầu tiên mà kể từ đó hệ thức truy hồi có hiệu lực. Trong ví dụ 2.3.2, a 0 1 vàa 1 2 là những điều kiện đầu. Những điều kiện đầu và hệ thức truy hồi xácđịnh duy nhất dãy số, chúng cho ra định nghĩa đệ qui của dãy và bất kì số hạngnào của dãy cũng có thể tìm được nhờ điều kiện đầu và sử dụng hệ thức truy hồivới số lần cần thiết. Cùng một hệ thức truy hồi nhưng điều kiện đầu khác nhaucho ta những dãy số khác nhau.lMô hình hóa bằng hệ thức truy hồiVí dụ 2.3.4 (Lãi suất kép) Giả sử một người gửi 100 triệu vào tài khoản củamình tại một ngân hàng với lãi suất kép 8, 4% mỗi năm. Sau 20 năm anh ta cóbao nhiêu tiền trong tài khoản của mình?Lời giải: Gọi P n là tổng số tiền có trong tài khoản sau n năm. Vì số tiền cótrong tài khoản sau n năm bằng số tiền có sau n 1 năm cộng với lãi suất sinhra vào năm thứ n nên ta thấy dãy tP n u thỏa mãn hệ thức truy hồi sau:P n P n1 0, 084.P n1 1, 084.P n1 .Điều kiện đầu là P 0 100.Dùng phương pháp lặp ta có thể tìm được công thức cho P n . Thật vậy, ta cóP 1 1, 084.P 0 ,P 2 1, 084.P 1 p1, 084q 2 .P 2 ,. . .P n 1, 084.P n1 p1, 084q n .P 0 .Khi thay điều kiện đầu P 0 100 vào ta nhận được công thức:P n p1, 084q n .100.Sử dụng qui nạp toán học có thể khẳng định được tính đúng đắn của côngthức vừa tìm. Công thức đúng với n 0 vì đó chính là điều kiện đầu. Giả sửcông thức đúng đến n, tức là P n p1, 084q n .100. Khi đó từ hệ thức truy hồivà giả thiết qui nạp ta cóP n 1 1, 084.P n 1, 084.p1, 084q n .100 p1, 084q n 1 .100.Điều này chứng tỏ công thức tường minh của P n là đúng.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 75


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiThay n 20 vào công thức P n p1, 084q n .100 cho ta số tiền sau 20năm trong tài khoản làP 20 p1, 084q 20 .100 501, 864 triệu.Năm 1202, nhà toán học Leonardo Fibonacci (1180-1250) đã công bố mộtcông trình nghiên cứu vĩ đại mà sau gọi là cuốn “sách toán pháp” nổi tiếng (còngọi là “sách abac”). Trong cuốn sách này ông đã nêu ra một bài toán thú vị sau:Ví dụ 2.3.5 (Họ nhà thỏ và số Fibonacci) Một cặp thỏ mới sinh (một con đựcvà một con cái) được thả lên một hòn đảo. Giả sử rằng một cặp thỏ chưa sinhsản được trước khi đầy hai tháng tuổi, mỗi tháng chúng đẻ ra một đôi thỏ con.Nếu số thỏ sinh ra không bị tử vong thì sau n tháng tổng số thỏ có trên đảo làbao nhiêu?lHình 2.1: Số đôi thỏ sau n tháng trên đảo.Lời giải: Giả sử f n là số cặp thỏ sau n tháng. Ta sẽ chỉ ra rằng f n vớin 1, 2, 3, . . . là những số của dãy Fibonacci. Số lượng các cặp thỏ có thểtính bằng hệ thức truy hồi. Cuối tháng thứ nhất số các cặp thỏ trên đảo là76 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.3. Hệ thức truy hồif 1 1. Vì cặp thỏ này vẫn chưa đến tuổi sinh sản được nên trong tháng thứhai cũng là f 2 1. Tổng số cặp thỏ sau n tháng bằng tổng số cặp thỏ trên đảoở tháng trước f n1 và số cặp thỏ mới đẻ ra là f n2 , do mỗi cặp thỏ con sinh ratừ cặp thỏ có ít nhất hai tháng tuổi.Vậy dãy tf n u thỏa mãn hệ thức truy hồif n f n1 f n2 ,với n ¥ 3 và những điều kiện đầu f 1 1 và f 2 1.Vì điều kiện đầu và hệ thức truy hồi xác định duy nhất dãy số nên số các cặpthỏ trên đảo sau n tháng được cho bởi số Fibonacci thứ n.lTruyền thuyết của đạo Balamon “Ngày tận thế của thế giới” được chép lạinhư sau: Trong thánh địa Phật giáo ở phía Bắc Ấn Độ có một tấm đồng, trongđó cắm ba cây kim báu. Khi Brahama sáng tạo ra thế giới, Phạn Thiên đã bắn64 xuyến vàng vào cây kim thứ nhất, theo thứ tự từ lớn đến nhỏ, tạo thành hìnhtháp nên được gọi là “tháp Phạn”. Phạn Thiên phán rằng: bất cứ ngày hay đêmđều phải cử tu sĩ canh giữ báu vật và liên tục chuyển 64 xuyến vàng đó sang câykim thứ hai và sử dụng cây kim thứ ba làm trung gian nhưng mỗi lần chỉ đượcchuyển một xuyến vàng và luôn giữ hình tháp Phạn. Ngày tận thế sẽ đến khi cả64 xuyến vàng đều được chuyển sang cây kim thứ hai.Câu chuyện truyền thuyết trên có nội dung như một bài toán có tên là “ThápHà Nội”.Ví dụ 2.3.6 (Tháp Hà Nội) Có ba cái cọc dài bằng nhau. Một cọc đã đượclồng n cái đĩa chồng lên nhau với đường kính giảm dần. Bài toán đòi hỏichuyển cả n cái đĩa sang một cọc khác với những điều kiện sau:1. Chỉ được chuyển mỗi lần một đĩa từ cọc này sang cọc khác.2. Trong mỗi lần chuyển đĩa, không được đặt đĩa có đường kính lớn hơn ởtrên đĩa có đường kính nhỏ hơn.Gọi H n là số lần dịch chuyển cần thiết để giải bài toán Tháp Hà Nội có n đĩa.Hãy lập hệ thức truy hồi đối với dãy tH n u.Lời giải: Giả sử ở cọc thứ nhất có n đĩa khác nhau. Để chuyển n đĩa này sangcọc thứ hai, ta phải thực hiện những công việc sau:1. Cố định chiếc đĩa lớn nhất, dịch chuyển n 1 chiếc đĩa từ cọc thứ nhấtsang cọc thứ ba theo qui tắc ở trên và phải dùng H n1 lần dịch chuyển.2. Chuyển chiếc đĩa lớn nhất này bằng một lần dịch chuyển từ cọc một sangcọc hai.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 77


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiHình 2.2: Minh họa bài toán Tháp Hà Nội với 3 đĩa.3. Cuối cùng, dịch chuyển n 1 chiếc đĩa từ cọc ba sang cọc hai và đặt lêntrên chiếc đĩa lớn nhất. Bước cuối cùng này ta phải dùng H n1 lần dịchchuyển.Từ đó ta có hệ thức truy hồiH n 2H n1 1.Điều kiện đầu H 1 1 vì chỉ cần một lần dịch chuyển một đĩa ở cọc một sangcọc hai theo đúng qui tắc của bài toán.Sử dụng phương pháp lặp ta có thể giải được hệ thức truy hồi trên. Ta có:H n 2H n1 1 2p2H n2 1q 1 2 2 H n2 2 1 2 2 p2H n3 1q 2 1 2 3 H n3 2 2 2 1 . . . 2 n1 H 1 2 n2 . . . 2 1 2 n 1.Phương pháp lặp này cho ta nghiệm của hệ thức truy hồi H n 2H n1 1 vớiđiều kiện đầu H 1 1. Dùng qui nạp toán học ta có thể chứng minh được tínhđúng đắn của công thức trên.l78 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.4. Giải Hệ thức truy hồiMuốn thực hiện được lời phán của Phạn Thiên thì phải mất H 64 lần chuyểnxuyến. Thay n 64 vào hệ thức trên ta đượcH 64 2 64 1 18446744073709551615.Nếu các tu sĩ thay phiên nhau chuyển liên tục, không kể ngày đêm và mỗi lầnchuyển mất 1 giây thì phải mất 580 tỷ năm. Như vậy nhân loại yên tâm, “Ngàytận thế” vẫn còn xa lắm.Ví dụ 2.3.7 Tìm hệ thức truy hồi và điều kiện đầu để tính số các xâu nhị phânđộ dài n và có chứa hai số 0 liên tiếp. Có bao nhiêu xâu như thế có độ dài bằng5?Lời giải: Gọi P n là số xâu nhị phân độ dài n và có chứa hai số 0 liên tiếp. Giảsử một xâu như thế có dạng a 1 a 2 . . . a n1 a n . Với n ¥ 3 ta xét những trườnghợp sau:Nếu a n 1 thì xâu đã cho có dạng a 1 a 2 . . . a n1 1. Số xâu nhị phân độdài n chứa hai số 0 liên tiếp kiểu này bằng số xâu nhị phân a 1 a 2 . . . a n1 độdài n 1 chứa hai số 0 liên tiếp và bằng P n1 xâu.Nếu a n 0 thì xâu đã cho có dạng a 1 a 2 . . . a n1 0. Khi đó nếu a n1 0thì xâu đã cho luôn chứa hai số 0 liên tiếp nên ta có 2 n2 xâu, còn nếu a n1 1thì số xâu nhị phân độ dài n chứa hai số 0 liên tiếp kiểu này bằng số xâu nhịphân a 1 a 2 . . . a n2 độ dài n 2 chứa hai số 0 liên tiếp và bằng P n2 xâu.Như vậy ta có hệ thức truy hồiP n P n1 P n2 2 n2 ,với n ¥ 3. Điều kiện đầu là P 1 0 vì không có xâu nhị phân nào độ dài 1 lạicó hai số 0 liên tiếp, P 2 1 vì có duy nhất xâu 00 độ dài hai thỏa mãn đề bài.Để nhận được P 5 ta sử dụng liên tiếp hệ thức truy hồiP 3 P 2 P 1 2 3,P 4 P 3 P 2 2 2 8,P 5 P 4 P 3 2 3 19.l2.4 Giải Hệ thức truy hồiBộ môn Toán - ĐẠI HỌC THĂNG LONG 79


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiHệ thức truy hồi tuyến tính thuần nhất hệ số hằngĐịnh nghĩa 2.4.1 Một hệ thức truy hồi tuyến tính thuần nhất bậc k với hệ sốhằng số là hệ thức truy hồi có dạng:a n c 1 a n1 c 2 a n2 . . . c k a nk ,trong đó c 1 , c 2 , . . . , c k là những số thực và c k 0.Hệ thức truy hồi trong định nghĩa là tuyến tính vì vế phải chỉ chứa những sốhạng tuyến tính, tức là tích của những số hạng bậc nhất với một hệ số; hệ thứctruy hồi là thuần nhất vì mọi số hạng đều có dạng ca j ; hệ số hằng vì các hệ sốcủa các số hạng của dãy đều là hằng số, không phải là hàm số phụ thuộc vào n.Bậc của hệ thức truy hồi là k vì a n được biểu diễn qua k số hạng trước của dãy.Theo nguyên lí thứ hai của qui nạp toán học thì dãy số thỏa mãn hệ thức truyhồi nêu trong định nghĩa được xác định duy nhất bằng hệ thức truy hồi này vàk điều kiện đầua 0 C 0 , a 1 C 1 , . . . , a k1 C k1 .Ví dụ 2.4.2 Hệ thức truy hồi P n 1, 084.P n1 là hệ thức truy hồi tuyến tínhthuần nhất bậc nhất với hệ số hằng.Hệ thức truy hồi f n f n1 f n2 là hệ thức truy hồi tuyến tính thuần nhấtbậc hai với hệ số hằng.Hệ thức truy hồi a n 2a n1 5a n5 là hệ thức truy hồi tuyến tính thuầnnhất bậc năm với hệ số hằng.Ví dụ 2.4.3 Hệ thức truy hồi a n a n1 2pa n2 q 2 là không tuyến tính.Hệ thức truy hồi a n a n1 a n2 2 n2 là không thuần nhất.Hệ thức truy hồi a n na n1 không có hệ số hằng.Định nghĩa 2.4.4 Cho hệ thức truy hồi a n c 1 a n1 c 2 a n2 . . . c k a nk .Khi đó phương trìnhr k c 1 r k1 c 2 r k2 . . . c k1 r c k 0được gọi là phương trình đặc trưng của hệ thức truy hồi và nghiệm của nó đượcgọi là nghiệm đặc trưng của hệ thức truy hồi.Ví dụ 2.4.5 Hệ thức truy hồi f n f n1 f n2 có phương trình đặc trưng làr 2 r 1 0 và có hai nghiệm đặc trưng là r 1 1 ?5và r 2 1 ? 5.2280 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.4. Giải Hệ thức truy hồiHệ thức truy hồi a n 2a n2 a n4 có phương trình đặc trưng làr 4 2r 2 1 0 và có hai nghiệm đặc trưng bội hai là r 1 1 và r 2 1.Các hệ thức truy hồi tuyến tính thuần nhất được nghiên cứu vì hai lí do. Thứnhất chúng hay gặp khi mô hình hóa các bài toán. Thứ hai chúng có thể giảiđược một cách có hệ thống. Dưới đây ta sẽ đưa ra cách giải cho một số hệ thứctruy hồi tuyến tính thuần nhất hệ số hằng.Giải hệ thức truy hồi tuyến tính thuần nhất hệ số hằngPhương pháp cơ bản để giải hệ thức truy hồi tuyến tính thuần nhất là tìmnghiệm dưới dạng a n r n , trong đó r là hằng số. Nhận thấy rằng a n r n lànghiệm của hệ thức truy hồi a n c 1 a n1 c 2 a n2 . . . c k a nk khi vàchỉ khir n c 1 r n1 c 2 r n2 . . . c k r nk .Sau khi chia cả hai vế cho r nk và chuyển vế ta được phương trình tương đươngr k c 1 r k1 c 2 r k2 . . . c k1 r c k 0.Vậy dãy ta n u với a n r n là nghiệm của hệ thức truy hồi khi và chỉ khi r lànghiệm của phương trình đặc trưng tương ứng.Trước tiên ta sẽ trình bày những kết quả đối với hệ thức truy hồi tuyến tínhthuần nhất bậc hai với hệ số hằng. Sau đó ta sẽ nêu ra những kết quả tương tựcho các hệ thức truy hồi tuyến tính thuần nhất bậc k lớn hơn hai.Giải hệ thức truy hồi tuyến tính thuần nhất bậc hai với hệ số hằngCho hệ thức truy hồi tuyến tính thuần nhất bậc hai với hệ số hằng a n c 1 a n1 c 2 a n2 có điều kiện đầu là a 0 C 0 và a 1 C 1 . Ta sẽ đưa ra côngthức nghiệm cho hệ thức truy hồi dựa trên tính chất nghiệm của phương trìnhđặc trưng.Trường hợp 1: Phương trình đặc trưng có hai nghiệm phân biệt. Khi đócông thức nghiệm được cho qua định lí sau:Định lý 2.4.1 Cho c 1 , c 2 là hai số thực. Giả sử phương trình đặc trưng r 2 c 1 r c 2 0 có hai nghiệm phân biệt r 1 và r 2 . Khi đó dãy ta n u là nghiệm củahệ thức truy hồi a n c 1 a n1 c 2 a n2 nếu và chỉ nếu a n α 1 r n 1α 2 r n 2 ,với n 1, 2, . . ., trong đó α 1 và α 2 là những hằng số.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 81


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiChứng minh: Trước hết ta sẽ chỉ ra rằng: nếu r 1 , r 2 là hai nghiệm của phươngtrình đặc trưng và α 1 , α 2 là những hằng số thì dãy ta n u với a n α 1 r n 1α 2 r n 2là nghiệm của hệ thức truy hồi.Giả sử r 1 , r 2 là hai nghiệm của r 2 c 1 r c 2 0, tức là r1 2 c 1r 1 c 2và r2 2 c 1r 2 c 2 . Khi đó ta cóc 1 a n1c 2 a n2 c 1 pα 1 r n11α 2 r n12q c 2 pα 1 r n21α 2 r n22q α 1 r n21pc 1 r 1 c 2 q α 2 r n22pc 1 r 2 c 2 q α 1 r n21r 2 1α 2 r n22r 2 2 α 1 r n 1α 2 r n 2 a n .Vậy dãy ta n u với a n α 1 r1n α 2 r2 n là nghiệm của hệ thức truy hồi đã cho.Ngược lại, giả sử ta n u là một nghiệm bất kì của hệ thức truy hồi ta sẽ chỉra rằng tồn tại những hằng số α 1 và α 2 sao cho a n α 1 r1 n α 2 r2 n, vớin 1, 2, . . . .Ta chọn α 1 và α 2 là nghiệm của hệ phương trình#α 1 α 2 C 0 ,Giải ra ta được nghiệmα 1 r 1 α 2 r 2 C 1 .α 1 C 1 C 0 r 2r 1 r 2và α 2 C 0r 1 C 1r 1 r 2.Đặt b n α 1 rn 1α 2 rn 2 . Theo chứng minh trên ta có dãy tb nu là một nghiệmcủa hệ thức truy hồi và có cùng điều kiện đầu với dãy ta n u. Vì hệ thức truy hồivà điều kiện đầu xác định duy nhất dãy nên a n b n α 1 rn 1α 2 rn 2. Định líđược chứng minh.lVí dụ 2.4.6 Tìm nghiệm của hệ thức truy hồi a n 3a n1 2a n2 với điềukiện đầu a 0 5 và a 1 8.Lời giải: Phương trình đặc trưng của hệ thức truy hồi có dạng r 2 3r 2 0.Các nghiệm đặc trưng là r 1 1 và r 2 2. Theo định lí 2.4.1 dãy ta n u lànghiệm của hệ thức truy hồi khi và chỉ khia n α 1 .1 n α 2 .2 n ,với α 1 và α 2 là những hằng số. Từ điều kiện đầu ta có#a 0 5 α 1 α 2 ,a 1 8 α 1 2α 2 .82 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.4. Giải Hệ thức truy hồiGiải ra ta được α 1 2 và α 2 3.Vậy nghiệm của hệ thức truy hồi thỏa mãn điều kiện đầu đã cho là dãy ta n u vớia n 2 3.2 n .lVí dụ 2.4.7 Tìm công thức tường minh của các số Fibonacci.Lời giải: Dãy các số Fibonacci thỏa mãn hệ thức truy hồi f n f n1với điều kiện đầu f 0 0 và f 1 1. Các nghiệm đặc trưng là:f n2r 1 1 ?52và r 2 1 ? 5.2Theo định lí 2.4.1 các số Fibonacci được cho bởi công thức sau:f n α 11?5 n 1 ? 5α 222 nvới α 1 và α 2 là những hằng số. Từ điều kiện đầu ta có những hằng số α 1 vàα 2 thỏa mãn hệ phương trình:$&%f 0 0 α 1 α 2 ,?1 5f 1 1 α 12Giải ra ta được α 1 1 ?5và α 2 1 ?5.1 ? 5 α 2 .2Do đó các số Fibonacci được cho bởi công thức tường minh sauf n 1 ?51?5 n 1 1 ? 5 n. ?522Trường hợp 2: Phương trình đặc trưng có nghiệm kép. Khi đó nghiệm củahệ thức truy hồi được xác định qua định lí sau:Định lý 2.4.2 Cho c 1 , c 2 là hai số thực. Giả sử phương trình đặc trưng r 2 c 1 r c 2 0 có nghiệm kép r 0 . Khi đó dãy ta n u là nghiệm của hệ thứctruy hồi a n c 1 a n1 c 2 a n2 nếu và chỉ nếu a n α 1 r0 n α 2 nr0 n, vớin 1, 2, . . ., trong đó α 1 và α 2 là những hằng số.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 83l


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiChứng minh: Đầu tiên ta sẽ chỉ ra rằng: nếu r 0 là nghiệm kép của phương trìnhđặc trưng và α 1 , α 2 là những hằng số thì dãy ta n u với a n α 1 r n 0α 2 nr n 0là nghiệm của hệ thức truy hồi.Giả sử r 0 là nghiệm kép của r 2 c 1 r c 2 0, ta có r0 2 c 1r 0 c 2 ,c 2 14c 2 0 và r 0 c 1. Khi đó2c 1 a n1c 2 a n2 c 1 pα 1 r n10α 2 pn 1qr n10qc 2 pα 1 r n20α 2 pn 2qr n20q α 1 r n20pc 1 r 0 c 2 q α 2 nr n20pc 1 r 0 c 2 q α 2 r n20pc 1 r 0 2c 2 q α 1 r n20r 2 0α 2 nr n20r 2 0 α 2r n20p c2 14c 2 α 1 r n 0α 2 nr n 0 a n .Vậy dãy ta n u với a n α 1 r0n α 2 nr0 n là nghiệm của hệ thức truy hồi đã cho.Ngược lại, giả sử ta n u là một nghiệm bất kì của hệ thức truy hồi ta sẽ chỉra rằng tồn tại những hằng số α 1 và α 2 sao cho a n α 1 r0n α 2 nr0 n, vớin 1, 2, . . . .Ta chọn α 1 và α 2 là nghiệm của hệ phương trình:#α 1 C 0 ,Giải ra ta được nghiệm:α 1 r 0 α 2 r 0 C 1 .α 1 C 0 và α 2 C 1r 0 C 0 .Đặt b n α 1 rn 0α 2 nrn 0. Theo chứng minh điều kiện cần ở trên ta códãy tb n u là một nghiệm của hệ thức truy hồi và có cùng điều kiện đầu vớidãy ta n u. Vì hệ thức truy hồi và điều kiện đầu xác định duy nhất dãy nêna n b n α 1 rn 0α 2 nrn 0. Định lí được chứng minh. lVí dụ 2.4.8 Tìm nghiệm của hệ thức truy hồi a n 4a n1 4a n2 với điềukiện đầu a 0 1 và a 1 4.Lời giải: Ta thấy phương trình đặc trưng r 2 4r 4 0 có nghiệm képr 2. Theo định lí 2.4.2 nghiệm của hệ thức truy hồi có dạnga n α 1 p2q n α 2 np2q n ,4q84 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.4. Giải Hệ thức truy hồivới α 1 và α 2 là những hằng số. Từ hai điều kiện đầu ta suy ra:#a 0 1 α 1 ,a 1 4 α 1 p2qα 2 p2q.Hệ phương trình trên cho ta nghiệm α 1 1 và α 2 3.Vậy nghiệm của hệ thức truy hồi thỏa mãn những điều kiện đầu là:a n p2q n 3n.p2q n .Trường hợp 3: Phương trình đặc trưng không có nghiệm thực. Khi đó∆ : c 2 14c 2 0. Bằng cách đặt ρ ? c 2 và chọn góc α với 0 ¤ α ¤ 2πsao cho cos α c 12 ? và sin α |∆|c 2 2 ? , công thức nghiệm của hệ thứcc 2truy hồi được cho trong định lí sau:Định lý 2.4.3 Cho c 1 , c 2 là hai số thực. Giả sử phương trình đặc trưng r 2 c 1 rc 2 0 không có nghiệm thực. Khi đó dãy ta n u là nghiệm của hệ thức truyhồi a n c 1 a n1 c 2 a n2 nếu và chỉ nếu a n ρ n pα 1 cos nα α 2 sin nαq,với n 1, 2, . . ., trong đó α 1 và α 2 là những hằng số.Ví dụ 2.4.9 Tìm nghiệm của hệ thức truy hồi a n a n1 a n2 với nhữngđiều kiện đầu a 0 1 và a 1 1.Lời giải: Nhận thấy a phương trình đặc trưng r 2 r 1 0 không có nghiệmthực. Xét ρ p1q 1 và chọn góc α với 0 ¤ α ¤ 2π thỏa mãncos α 1 ?32 và sin α 2 , ta được α π . Theo định lí 2.4.3 nghiệm của3hệ thức truy hồi có dạng:a n 1 n pα 1 cos nπ α 2 sin nπ 33 q,với α 1 và α 2 là những hằng số. Dựa vào hai điều kiện đầu ta suy ra:$&%a 0 1 α 1 ,a 1 1 α 1 cos π 3Giải ra ta được nghiệm α 1 1 và α 2 1 ?3.α 2 sin π 3 .Vậy nghiệm của hệ thức truy hồi thỏa mãn hai điều kiện đầu là:a n cos nπ 1? sin nπ 3 3 3 . llBộ môn Toán - ĐẠI HỌC THĂNG LONG 85


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiGiải hệ thức truy hồi tuyến tính thuần nhất bậc k với hệ số hằngTrong mục này ta sẽ đưa ra những công thức nghiệm cho các hệ thức truyhồi tuyến tính thuần nhất bậc k ¡ 2 với hệ số hằng. Do các chứng minh chonhững công thức nghiệm nói trên khá phức tạp nên ta sẽ công nhận mà khôngđi vào chứng minh cụ thể.Tương tự như cách giải hệ thức truy hồi tuyến tính thuần nhất bậc hai với hệsố hằng ta cũng xét các trường hợp sau:Trường hợp 1: Phương trình đặc trưng có k nghiệm thực phân biệt. Địnhlí sau là một mở rộng của định lí 2.4.1 cho ta công thức nghiệm của hệ thức truyhồi bậc k:Định lý 2.4.4 Cho c 1 , c 2 , . . . , c k là những số thực. Giả sử phương trình đặctrưng r k c 1 r k1 . . . c k 0 có k nghiệm phân biệt r 1 , r 2 , . . . , r k . Khiđó dãy ta n u là nghiệm của hệ thức truy hồinếu và chỉ nếua n c 1 a n1 c 2 a n2 . . . c k a nka n α 1 r n 1α 2 r n 2. . . α k r n k ,với n 1, 2, . . ., trong đó α 1 , α 2 , . . . , α k là những hằng số.Ví dụ 2.4.10 Tìm nghiệm của hệ thức truy hồi a n a n1thỏa mãn điều kiện đầu a 0 2 , a 1 9 và a 2 5.4a n2 4a n3Lời giải: Phương trình đặc trưng của hệ thức truy hồi r 3 r 2 4r 4 0 cócác nghiệm đặc trưng là r 1 1, r 2 2, r 3 2. Theo định lí 2.4.4 nghiệmcủa hệ thức truy hồi có dạnga n α 1 1 n α 2 2 n α 3 p2q n ,với α 1 , α 2 và α 3 là những hằng số. Để tìm α 1 , α 2 và α 3 ta sử dụng điều kiệnđầu: $ &%a 0 2 α 1 α 2 α 3 ,a 1 9 α 1 2α 2 2α 3 ,a 2 5 α 1 4α 2 4α 3 .Giải hệ phương trình trên ta nhận được α 1 1, α 2 2, α 3 3 .Vậy nghiệm của hệ thức truy hồi thỏa mãn những điều kiện đầu đã cho làa n 1 2.2 n 3.p2q n .Trường hợp 2: Phương trình đặc trưng có nghiệm bội. Tương tự như địnhlí 2.4.2 ta có định lí sau:l86 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.4. Giải Hệ thức truy hồiĐịnh lý 2.4.5 Cho c 1 , c 2 , . . . , c k là những số thực. Giả sử phương trình đặctrưng r k c 1 r k1 . . . c k 0 có các nghiệm đơn r 1 , . . . , r s và cácnghiệm bội r s 1 , . . . , r t cấp tương ứng là l s 1 , . . . , l t , với 1 ¤ s t k vàs l s 1 . . . l t k. Khi đó dãy ta n u là nghiệm của hệ thức truy hồinếu và chỉ nếua n c 1 a n1 c 2 a n2 . . . c k a nka n α 1 r n 1. . . α s r n spα s 1 α s 2 n . . . α s ls 1n l s 11 qr n s 1. . . pα t α t 1 n . . . α t lt n l t1 qr n tvới n 1, 2, . . ., trong đó α 1 , . . . , α s , . . . , α t là những hằng số.Ví dụ 2.4.11 Tìm nghiệm của hệ thức truy hồi a n 5a n1 8a n2thỏa mãn điều kiện đầu a 0 3 , a 1 2 và a 2 2.4a n3Lời giải: Phương trình đặc trưng r 3 5r 2 8r 4 0 của hệ thức truyhồi có các nghiệm đặc trưng là r 1 1 và r 2 2 bội hai. Theo định lí 2.4.5nghiệm của hệ thức truy hồi có dạnga n α 1 1 n pα 2 α 3 nq2 n ,với α 1 , α 2 và α 3 là những hằng số. Từ những điều kiện đầu ta có$&%a 0 3 α 1 α 2 ,a 1 2 α 1 2α 2 2α 3 ,a 2 2 α 1 4α 2 8α 3 .Giải hệ phương trình trên ta nhận được α 1 2, α 2 1, α 3 1 .Vậy nghiệm của hệ thức truy hồi thỏa mãn những điều kiện đầu đã cho làa n 2 p1 nq2 n .Trường hợp 3: Phương trình đặc trưng có nghiệm không thực. Khi đó đathức đặc trưng có thể viết dưới dạngr k c 1 r k1 . . . c k pr r 1 qpr r 2 q . . . pr r s qpr 2 a 1 r b 1 q . . . pr 2 a t r b t q,trong đó các tam thức bậc hai pr 2 a i r b i q, i 1, t không có nghiệm thựcvà s 2t k. Tương tự như định lí 2.4.3 đặt: ρ i ? b i và chọn góc α ivới 0 ¤ α i ¤ 2π sao cho cos α i a i2 ? và sin α |a2 i 4b i|b i 2 ? , công thứcb inghiệm của hệ thức truy hồi được cho trong định lí sau:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 87l


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiĐịnh lý 2.4.6 Cho c 1 , c 2 , . . . , c k là những số thực. Giả sử phương trình đặctrưng r k c 1 r k1 . . . c k 0 có nghiệm không thực. Khi đó dãy ta n u lànghiệm của hệ thức truy hồi:nếu và chỉ nếua n c 1 a n1 c 2 a n2 . . . c k a nka n α 1 r n 1. . . α s r n kρ n 1 pβ 1 cos nα 1 γ 1 sin nα 1 q. . . ρ n t pβ t cos nα t γ 1 sin nα t q.với n 1, 2, . . ., trong đó α 1 , . . . , α s , β 1 , . . . , β t , γ 1 , . . . , γ t là nhữnghằng số.Ví dụ 2.4.12 Tìm nghiệm của hệ thức truy hồi a n a n3 với điều kiện đầua 0 3, a 1 3 2 và a 2 32 .Lời giải: Nhận thấy phương trình đặc trưng r 3 1 pr 1qpr 2 r 1q cóthừa số r 2 r 1 0 không có nghiệm thực. Xét ρ ? 1 1 và chọn gócα với 0 ¤ α ¤ 2π thỏa mãn cos α 1?32 và sin α 2 , ta được α 2π 3 .Theo định lí 2.4.6 nghiệm của hệ thức truy hồi có dạnga n α 1 1 n1 n pβ 1 cos 2nπ3γ 1 sin 2nπ3 q,với α 1 và β 1 , γ 1 là những hằng số. Dựa vào những điều kiện đầu ta suy ra$'&'%a 0 3 α 1 β 1 ,a 1 3 2 α 1 1 2 β 1a 2 3 2 α 1 1 2 β 1 ?32 γ 1,?32 γ 1.Giải ra ta được nghiệm α 1 1 và β 1 2 và γ 1 ? 3.Vậy nghiệm của hệ thức truy hồi thỏa mãn những điều kiện đầu làa n 12 cos 2nπ3?3 sin2nπ3 . l88 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.5. Hệ thức truy hồi tuyến tính không thuần nhất hệ số hằng2.5 Hệ thức truy hồi tuyến tính không thuần nhất hệ số hằngĐịnh nghĩa 2.5.1 Một hệ thức truy hồi tuyến tính không thuần nhất bậc k vớihệ số hằng số là hệ thức truy hồi có dạnga n c 1 a n1 c 2 a n2 . . . c k a nk F pnq,trong đó c 1 , c 2 , . . . , c k là những số thực và c k 0.Ví dụ 2.5.2 Hệ thức truy hồi a n 2a n2không thuần nhất bậc 2 hệ số hằng.2 n là hệ thức truy hồi tuyến tínhĐịnh lý 2.5.1 Cho hệ thức truy hồia n c 1 a n1 c 2 a n2 . . . c k a nk F pnq.Khi đó nếu tp n u là một nghiệm của hệ thức truy hồi không thuần nhất thì mọinghiệm của nó đều có dạng tp n h n u, trong đó th n u là nghiệm của hệ thức truyhồi tuyến tính thuần nhất tương ứng: a n c 1 a n1 c 2 a n2 . . . c k a nk .Chứng minh: Giả sử tq n u là một nghiệm của hệ thức truy hồi không thuầnnhất. Ta có:vàq n c 1 q n1 c 2 q n2 . . . c k q nk F pnqp n c 1 p n1 c 2 p n2 . . . c k p nk F pnq.Trừ từng vế của hai phương trình trên ta được:q n p n c 1 pq n1 p n1 q c 2 pq n2 p n2 q . . . c k pq nk p nk q.Đặt h n q n p n . Từ đẳng thức trên ta được th n u là nghiệm của hệ thức truyhồi thuần nhất.Vậy q n p n h n và ta có điều phải chứng minh. lTheo định lí 2.5.1 ta thấy muốn tìm nghiệm của hệ thức truy hồi không thuầnnhất ta chỉ cần tìm được một nghiệm bất kì của nó, mà ta gọi là nghiệm riêng,rồi cộng với nghiệm của hệ thức truy hồi thuần nhất tương ứng. Nghiệm riêngcủa hệ thức truy hồi không thuần nhất phụ thuộc vào F pnq. Sau đây ta sẽ đưara một số trường hợp có thể tìm được nghiệm riêng của hệ thức truy hồi khôngthuần nhất phụ thuộc vào dạng của F pnq.1. F pnq là một đa thức theo n: F pnq b 0 n m b 1 n m1 . . . b m .a. Nếu phương trình đặc trưng r k c 1 r k1 . . .c k 0 không nhận r 1 làmBộ môn Toán - ĐẠI HỌC THĂNG LONG 89


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồinghiệm thì ta tìm nghiệm riêng tp n u dưới dạng p n t 0 n m t 1 n m1 . . . t m ,với t 0 , t 1 , . . . , t m là những hằng số được tìm bằng phương pháp hệ số bất định.Ví dụ 2.5.3 Tìm một nghiệm riêng của hệ thức truy hồi sau a n2a n2 n 1. a n1Lời giải: Phương trình đặc trưng r 2 r 2 0 không có nghiệm r 1. Tatìm một nghiệm riêng của hệ thức truy hồi dưới dạng p n bn c. Thay tp n uvào hệ thức truy hồi ta cóHaybn c rbpn 1q cs 2rbpn 2q cs n 1.p2b 1qn p5b 2c 1q 0.Do đẳng thức trên đúng với mọi n nên ta có:" 2b 1 0,5b 2c 1 0.Giải ra ta được b 12 và c 3 . Vậy nghiệm riêng của hệ thức truy hồi đã4cho có dạng p n 12 n 3 4 . lb. Nếu phương trình đặc trưng r k c 1 r k1 . . .c k 0 có nghiệm r 1 bộis thì tìm nghiệm riêng tp n u dưới dạng p n n s pt 0 n m t 1 n m1 . . . t m q,với t 0 , t 1 , . . . , t m là những hằng số được tìm bằng phương pháp hệ số bất định.Ví dụ 2.5.4 Tìm một nghiệm riêng của hệ thức truy hồi sau a n 3a n1 2a n3 1.Lời giải: Do phương trình đặc trưng r 3 3r 2 0 có nghiệm kép r 1 r 2 1 và r 3 2 nên ta tìm một nghiệm riêng của hệ thức truy hồi dưới dạngp n an 2 . Thay tp n u vào hệ thức truy hồi ta cóan 2 3apn 2q 2 2apn 3q 2 1.Rút gọn hai vế ta được 6a 1 0. Vậy a 1 6 .Do đó một nghiệm riêng của hệ thức truy hồi đã cho có dạng p n n26 . l2. F pnq có dạng lũy thừa: F pnq Aβ n .a. Nếu các nghiệm đặc trưng đều khác β thì ta tìm nghiệm riêng dưới dạngp n aβ n .90 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.5. Hệ thức truy hồi tuyến tính không thuần nhất hệ số hằngVí dụ 2.5.5 Tìm một nghiệm riêng của hệ thức truy hồi sau a n a n2 2 n .Lời giải: Do phương trình đặc trưng r 2 1 0 có nghiệm là r 1 1 vàr 2 1 đều khác 2 nên ta tìm một nghiệm riêng của hệ thức truy hồi dưới dạngp n a2 n . Thay tp n u vào hệ thức truy hồi ta cóa2 n a2 n2 2 n .Giải ra ta được a 4 3Vậy một nghiệm riêng của hệ thức truy hồi đã cho có dạng p n 4 3 2n .lb. Nếu β là nghiệm bội s của phương trình đặc trưng thì tìm nghiệm riêng dướidạng p n an s β n .Ví dụ 2.5.6 Tìm một nghiệm riêng của hệ thức truy hồi sau a n 3a n1 3 n .Lời giải: Do phương trình đặc trưng có nghiệm r 3 nên ta tìm một nghiệmriêng của hệ thức truy hồi dưới dạng p n an3 n . Thay tp n u vào hệ thức truyhồi ta đượcan3 n 3apn 1q3 n1 3 n .Giải ra ta được a 1.Vậy một nghiệm riêng của hệ thức truy hồi đã cho có dạng p n n3 n .3. F pnq có dạng: F pnq pb 0 n m . . . b m q Aβ n .Ta tìm nghiệm riêng dưới dạng p n p 1 np 2 n , trong đó p1 nlà nghiệm riêng củahệ thức truy hồia n c 1 a n1 c 2 a n2 . . . c k a nk b 0 n m . . . b m ,và p 2 nlà nghiệm riêng của hệ thức truy hồia n c 1 a n1 c 2 a n2 . . . c k a nk Aβ n .lVí dụ 2.5.7 Tìm một nghiệm riêng của hệ thức truy hồi sau a n 6a n13 n 5n.Lời giải: Ta có p 1 n 3n là một nghiệm riêng của hệ thức truy hồi: a n 6a n13 n và p 2 n n 6 5 là nghiệm riêng của hệ thức truy hồi a n 6a n1 5n. Vậy p n p 1 np 2 n 3n n 6 5là một nghiệm riêng củahệ thức truy hồi a n 6a n1 3 n 5n. lBộ môn Toán - ĐẠI HỌC THĂNG LONG 91


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi2.6 Độ phức tạp của thuật toánMột chương trình máy tính, mặc dù được cài đặt theo một thuật toán đúng,có thể không cho kết quả như mong muốn đối với một bộ dữ liệu nào đó vì hoặclà nó đòi hỏi quá nhiều thời gian, hoặc không có đủ bộ nhớ để lưu giữ dữ liệuvà các biến của chương trình. Vì vậy, để có thể đánh giá khả năng ứng dụngcủa chương trình ta cần phải phân tích hiệu quả của thuật toán. Phân tích thuậttoán là quá trình tìm ra những đánh giá về thời gian tính cũng như dung lượngbộ nhớ cần thiết để thực hiện thuật toán. Độ phức tạp tính toán của một thuậttoán là lượng thời gian và bộ nhớ cần thiết để thực hiện thuật toán. Trong mụcnày ta quan tâm đến việc đánh giá thời gian cần thiết để thực hiện thuật toán (tasẽ gọi là thời gian tính của thuật toán).Rõ ràng, thời gian tính của một thuật toán là hàm của dữ liệu đầu vào. Thôngthường khó có thể xây dựng công thức dưới dạng hiện cho hàm này, vì thế tađặt vấn đề đơn giản hơn. Thay vì việc với dữ liệu đầu vào, ta sẽ làm việc vớimột đặc trưng quan trọng của dữ liệu đầu vào, đó là kích thước của nó.Để tính toán thời gian tính của thuật toán ta sẽ đếm số câu lệnh mà nó phảithực hiện, hoặc trong một số trường hợp có thể đếm cụ thể số phép tính số học,so sánh, gán,... mà thuật toán đòi hỏi thực hiện. Như vậy, từ thông số này ta cóthể tính được thời gian thực sự mà thuật toán đòi hỏi nếu như nó được cài đặttrên một ngôn ngữ lập trình và chạy trên một máy tính cụ thể. Mặt khác, thôngsố này không phụ thuộc vào người lập trình và ngôn ngữ lập trình được chọn đểcài đặt thuật toán cũng như máy tính mà trên đó nó được thực hiện. Vì thế nó làtiêu chuẩn khách quan để đánh giá hiệu quả của thuật toán.Khái niệm cơ bảnMột hàm đối số nguyên dương là hàm thực f : Z ÝÑ R xác định trêntập số nguyên dương. Ký hiệu F là tập các hàm đối số nguyên dương. Trongphần này ta sẽ nghiên cứu một số định nghĩa và tính chất của lớp hàm nói trên.Định nghĩa 2.6.1 Cho một hàm gpnq P F, Ký hiệu Opgpnqq là tập tất cảnhững hàm fpnq P F có tính chất: tồn tại hằng số dương C 1 và số nguyêndương N 1 sao cho với mọi n ¥ N 1 , ta cófpnq ¤ C 1 gpnq.Ta viết fpnq Opgpnqq và nói rằng fpnq là Ô lớn của gpnq.Ký hiệu Ωpgpnqq là tập tất cả những hàm fpnq P F có tính chất: tồn tại hằng92 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánsố dương C 2 và số nguyên dương N 2 sao cho với mọi n ¥ N 2 , ta cóC 2 gpnq ¤ fpnq.Ta viết fpnq Ωpgpnqq và nói rằng fpnq là Ômega của gpnq.Ký hiệu Θpgpnqq là tập tất cả những hàm fpnq P F có tính chất: tồn tại hằngsố dương C 1 , C 2 và số nguyên dương N 0 sao cho với mọi n ¥ N 0 , ta cóC 1 gpnq ¤ fpnq ¤ C 2 gpnq.Ta viết fpnq Θpgpnqq và nói rằng fpnq là Thê ta của gpnq.Định nghĩa trên có thể phát biểu bằng lời như sau:• fpnq Opgpnqq nếu ngoại trừ hằng số và một số hữu hạn ngoại lệ f bịchặn trên bởi g.• fpnq Ωpgpnqq nếu ngoại trừ hằng số và một số hữu hạn ngoại lệ f bịchặn dưới bởi g.• fpnq Θpgpnqq nếu ngoại trừ hằng số và một số hữu hạn ngoại lệ f bịchặn dưới và chặn trên bởi g.Ví dụ 2.6.2 Chứng minh rằng 10n 2 5n 7 Θpn 2 q.Lời giải: Do 10n 2 5n 7 ¤ 10n 2 5n 2 7n 2 22n 2 , với mọi n ¥ 1nên chọn C 1 22 ta được:10n 2 5n 7 Opn 2 q.Do 10n 2 5n 7 ¥ 10n 2 , với mọi n ¥ 1 nên chọn C 2 10 ta được10n 2 5n 7 Ωpn 2 q.Do 10n 2 5n 7 Opn 2 q và 10n 2 5n 7 Ωpn 2 q nên10n 2 5n 7 Θpn 2 q.Ví dụ trên có thể mở rộng lên một đa thức với hệ số bậc cao nhất dương bất kìtrong ví dụ dưới đâyVí dụ 2.6.3 Cho P pnq a k n k a k1 n k1 . . . a 1 n a 0 là đa thức hệsố thực bậc k với a k ¡ 0. Chứng minh rằng P pnq Θpn k q.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 93l


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiLời giải: Trước hết ta chứng tỏ rằng P pnq Opn k q. Ta cóP pnq a k n k a k1 n k1 . . . a 1 n a 0¤ a k n k |a k1 |n k1 . . . |a 1 |n |a 0 |¤ a k n k |a k1 |n k . . . |a 1 |n k |a 0 |n k pa k |a n1 | . . . |a 1 | |a 0 |qn k .Nếu đặt C 1 a k |a n1 | . . . |a 1 | |a 0 | thì P pnq ¤ C 1 n k , với mọin N 1 ¥ 1. Do đó P pnq Opn k q. Bây giờ ta sẽ chứng minh rằngP pnq Ωpn k q.P pnq a k n k a k1 n k1 . . . a 1 n a 0¥ a k n k |a k1 |n k1 . . . |a 1 |n |a 0 | a k a k2 nk 2 nk |a k1 |n k1 . . . |a 1 | |a 0 |¥ a k2 nk a k2 nk p|a k1 |n k1 . . . |a 1 |n k1 |a 0 |n k1 q a k2 nk a k2 n p|a k1| . . . |a 1 | |a 0 |q n k1 .Nếu đặt C 2 a k2 và N 2 tp|a k1 | . . . |a 1 | |a 0 |q a ku thì ta có2P pnq ¥ C 2 n k đúng với mọi n ¥ N 2 . Vậy P pnq Ωpn k q. Do đóP pnq Θpn k q.lVí dụ 2.6.4 Chứng minh rằng logpnq Opnq.Lời giải: Ta sẽ chỉ ra rằng logpnq ¤ n, với mọi n ¥ 1. Thật vậy, ta sẽchứng minh bất đẳng thức bằng qui nạp toán học. Với n 1 bất đẳng thứctrên đúng vì 0 1. Giả sử logpnq ¤ n, với n ¥ 1. Ta chứng minh rằnglogpn 1q ¤ n 1. Ta cólogpn 1q ¤ logp2nq log n log 2 ¤ n 1.Vậy bất đẳng thức đúng đến n 1. Theo nguyên lí qui nạp toán học ta đượclogpnq ¤ n, với mọi n ¥ 1. Từ đó log n Opnq.lVí dụ 2.6.5 Chứng minh rằng log n! Θpn log nq.Lời giải: Ta cólog n! log n logpn 1q . . . log 2 log 1¤ log n log n . . . log n n log n.94 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánDo đó log n! Opn log nq.Mặt khác, đặt m n t u ta có2log n! rlog n . . . logpm 1qs plog 1 log 2 . . . log mq¥ logpm 1q logpm 2q . . . log n¥ logpm 1q logpm 1q . . . logpm 1q pn mq logpm¥ n 2 log n 2 .1qNhận thấy với n ¥ N đủ lớn ta cón2 log n 2 n 2 plog n log 2q ¥ n 2 plog n 1 2 log nq 1 n log n.4Do đó log n! ¥ 1 n log n và log n! Ωpn log nq.4Như vậy log n! Θpn log nq.lVí dụ 2.6.6 Chứng minh rằng với mọi số nguyên dương k ta cóLời giải: Ta có1 k 2 k . . . n k Θpn k 1 q.1 k 2 k . . . n k ¤ n k n k . . . n k nn k n k 1 ,với n ¥ 1. Do đó 1 k 2 k . . . n k Opn k 1 q.Mặt khác, đặt m n t u ta có21 k 2 k . . . n k 1 k 2 k . . . m k pm 1q k . . . n k¥ pm 1q k pm 2q k . . . n k¥ pm 1q k pm 1q k . . . pm 1q k pn mqpm¥ n 2 pn 2 qk nk 12 k 1 .Vậy 1 k 2 k . . . n k Ωpn k 1 q.Do đó 1 k 2 k . . . n k Θpn k 1 q. l1q kBộ môn Toán - ĐẠI HỌC THĂNG LONG 95


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiVí dụ sau chỉ ra rằng thuật toán Euclid sử dụng Oplog bq phép chia để tìmước chung lớn nhất của hai số nguyên dương a và b, trong đó a ¥ b.Ví dụ 2.6.7 (Định lí Lamé) Giả sử a và b là hai số nguyên dương thỏa mãna ¥ b. Khi đó số phép chia dùng trong thuật toán Euclid để tìm ƯCLN(a,b) sẽnhỏ hơn hay bằng năm lần số các chữ số của b trong hệ thập phân.Lời giải: Giả sử a và b là hai số nguyên dương và a ¥ b. Khi dùng thuật toánEuclid để tìm UCLNpa, bq ta nhận được dãy những đẳng thức sau:r 0 r 1 q 1 r 2 , 0 ¤ r 2 r 1 ,r 1 r 2 q 2 r 3 , 0 ¤ r 3 r 2 ,. . .r n2 r n1 q n1 r n , 0 ¤ r n r n1 ,r n1 r n q n ,với a r 0 và b r 1 . Như vậy để tìm r n UCLNpa, bq ta dùng n phépchia. Ta có những thương q 1 , q 2 , . . . , q n1 luôn lớn hơn hay bằng 1 và q n ¥ 2do r n r n1 . Từ những nhận xét trên ta đượcr n ¥ 1 f 2 ,r n1 ¥ 2r n ¥ 2f 2 f 3 ,r n2 ¥ r n1 r n ¥ f 3 f 2 f 4 ,. . .r 2 ¥ r 3 r 4 ¥ f n1 f n2 f n ,b r 1 ¥ r 2 r 3 ¥ f n f n1 f n 1 .Từ đó suy ra nếu n là số phép chia trong thuật toán tìm UCLNpa, bq thìb ¥ f n 1 . Từ ví dụ 2.2.8 ta có f n 1 ¡ α n1 , với n ¡ 2 và α 1 ?5. Do2vậy b ¡ α n1 . Vì log 10 α ∼ 0, 208 ¡ 1 5nên ta có đánh giá sau:log 10 b ¡ pn 1q log 10 α ¡ n 15 .Hay n 1 5 log 10 b. Giả sử b là số nguyên có k chữ số, khi đó b 10 k vàlog 10 b k. Do vậy n 1 5k hay n ¤ 5k. Vìnênk tlog 10 bu 1 ¤ log 10 b 1n ¤ 5k ¤ 5plog 10 b1q Oplog 10 bq.Vậy thuật toán Euclid để tìm UCLNpa, bq với mọi a ¡ b đã sử dụng Oplog bqphép chia.l96 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánMệnh đề 2.6.8 Cho fpnq và gpnq là những hàm đối số nguyên dương. Khi đóta có những tính chất sau:1. Opfpnqq Opcfpnqq, Ωpfpnqq Ωpcfpnqq và Θpfpnqq Θpcfpnqq, với c là hằng số.2. fpnq Θpgpnqq khi và chỉ khi fpnq Opgpnqq và fpnq Ωpgpnqq.3. Nếu fpnq Opgpnqq thì Opfpnqq „ Opgpnqq.4. Nếu fpnq Opgpnqq thì gpnq Ωpfpnqq.5. Opfpnqq Opgpnqq khi và chỉ khi Ωpfpnqq Ωpgpnqq khi và chỉ khiΘpfpnqq Θpgpnqq.Mệnh đề 2.6.9 Nếu f 1 pnq Opg 1 pnqq và f 2 pnq Opg 2 pnqq thì1. f 1 pnq f 2 pnq Opg 1 pnq g 2 pnqq.2. f 1 pnq f 2 pnq Opmaxtg 1 pnq g 2 pnquq.3. f 1 pnqf 2 pnq Opg 1 pnqg 2 pnqq.Chứng minh: Giả sử với mọi n ¥ N 1 ta có f 1 pnq ¤ C 1 g 1 pnq và với mọin ¥ N 2 ta có f 2 pnq ¤ C 2 g 2 pnq.1. Đặt N 0 maxtN 1 , N 2 u và C 0 maxtC 1 , C 2 u. Khi đó với mọin ¥ N 0 ta cóf 1 pnq f 2 pnq ¤ C 1 g 1 pnq C 2 g 2 pnq ¤ C 0 pg 1 pnq g 2 pnqq.2. Đặt N 0 maxtN 1 , N 2 u và C 0 C 1 C 2 . Khi đó với mọi n ¥ N 0ta cóf 1 pnq f 2 pnq ¤ C 1 g 1 pnq C 2 g 2 pnq¤ pC 0 C 1 q maxtg 1 pnq, g 2 pnqu C 0 maxtg 1 pnq, g 2 pnqu.3. Đặt N 0 maxtN 1 , N 2 u và C 0 C 1 C 2 . Khi đó với mọi n ¥ N 0 tacóf 1 pnqf 2 pnq ¤ C 1 g 1 pnqC 2 g 2 pnq C 0 g 1 pnqg 2 pnq.lMệnh đề 2.6.10 Θ là một quan hệ tương đương trên F, nghĩa là với mọi hàmfpnq, gpnq thuộc F, ta có những tính chất sau:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 97


1. Θ phản xạ, tức là fpnq Θpfpnqq.Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi2. Θ đối xứng, tức là từ fpnq Θpgpnqq suy ra gpnq Θpfpnqq.3. Θ bắc cầu, tức là từ fpnq Θpgpnqq và gpnq Θphpnqq suy rafpnq Θphpnqq.Vì Θ xác định một quan hệ tương đương trên tập F nên ta có thể định nghĩathứ bậc trên tập đó.Định nghĩa 2.6.11 Hai hàm fpnq và gpnq được gọi là có cùng thứ bậc nếufpnq Θpgpnqq.Từ tính chất của Θ ta có thể phát biểu theo thứ tự sau:1. fpnq có cùng thứ bậc với chính nó.2. Nếu fpnq có cùng thứ bậc với gpnq thì gpnq cũng có cùng thứ bậc vớifpnq.3. Nếu fpnq có cùng thứ bậc với gpnq và gpnq có cùng thứ bậc với hpnq thìfpnq có cùng thứ bậc với hpnq.Từ tính chất của Θ ta cũng suy ra fpnq và gpnq cùng bậc khi và chỉ khiΘpfpnqq Θpgpnqq. Như vậy, Θpfpnqq có thể kí hiệu bằng Θpgpnqq, vớimọi hàm gpnq Θpfpnqq. Khi mô tả thứ bậc của hàm fpnq ta thường chọntập hợp Θpfpnqq đơn giản nhất. Ví dụΘ p7n 5 nq 1 3 log n Θ 3n 5 3 2n log n Θ n 5 53 Θ n 3 15n 1 2 Θ n5 n 2 .n 10 3 log nVì n 5 3 có dạng đơn giản nhất trong lớp hàm tương ứng này nên ta chọn lớpΘpn 5 3q, khi đó ta nói fpnq Θpn 5 3q có bậc n 5 3.Thứ bậc trong tập các hàm sốTừ định nghĩa của O ta có thể chỉ ra rằng n 2 Opnq bằng phản chứng.Như vậy, n và n 2 nằm ở những lớp khác nhau. Do n Opn 2 q ta suy raOpnq „ Opn 2 q và ta nói rằng n có thứ bậc nhỏ hơn n 2 . Một cách tổng quát tađịnh nghĩa:98 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánĐịnh nghĩa 2.6.12 Cho hai hàm fpnq và gpnq, ta nói rằng fpnq có thứ bậcnhỏ hơn gpnq nếu Opfpnqq thực sự chứa trong Opgpnqq, nghĩa là Opfpnqq €Opgpnqq.Trong phân tích thuật toán người ta hay dùng những hàm sau:1, log n, ? n, n, n log n, n 2 , n 3 , 2 n , n2 n , n!.Những hàm này tạo ra một dây xích thứ bậc tăng như sau:Op1q € Oplog nq € Op ? nq € Opnq € Opn log nq€ Opn 2 q € Opn 3 q € Op2 n q € Opn2 n q € Opn!q.Hai hàm thuộc hai thứ bậc khác nhau không thể so sánh được. Ta có thểchỉ ra những thứ bậc trên thực sự khác nhau bởi một nhận xét: Những thứbậc của hai hàm fpnq và gpnq không so sánh được nếu fpnq Opgpnqq vàgpnq Opfpnqq.Bảng sau cho ta những thuật ngữ thường dùng cho độ phức tạp của một thuậttoán của các lớp hàm trên.Những thuật ngữ thường dùng cho độ phức tạp của một thuật toánĐộ phức tạpThuật ngữOp1qĐộ phức tạp hằng sốOplog nqĐộ phức tạp lôgarítOpnqĐộ phức tạp tuyến tínhOpn 2 qĐộ phức tạp bậc haiOpn 3 qĐộ phức tạp bậc baOpn m qĐộ phức tạp đa thứcOpC n q, C ¡ 1Độ phức tạp hàm mũOpn!qĐộ phức tạp giai thừaĐịnh lí cơ bản cho phân tích thuật toánPhân tích thuật toán là đi tìm hàm thời gian thực hiện của thuật toán vàthường rút ra phương trình hồi qui cho những hàm hồi qui này. Một định lí cơbản cho việc tìm hàm hồi qui loại này là:Định lý 2.6.1 Nếu n là lũy thừa của c thì nghiệm của phương trình hồi quiT pnq $&%d, nếu n ¤ 1,aT p n q bn, nếu n ¡ 1.cBộ môn Toán - ĐẠI HỌC THĂNG LONG 99


có công thức sauT pnq $'&'%Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiOpnq, nếu a c,Opn log nq, nếu a c,Opn log c a1 q, nếu a ¡ c.Chứng minh: Do n là lũy thừa của c nên có số nguyên dương i sao cho n c i .Ta cóT pnq aT p n c q bn a a n c 2 bn a 2 n abnbnc 2 c a 2 aT p n bnc 3q c 2 a 3 T p n a 2 bnc 3q . . . a i T p n c iqTừ i log c n ta được công thứcc 2¸bn i1j0T pnq a log c n nT pc q log c nSử dụng những tính chất của lôgarit ta cóDo đóabncabncp a c qj .c¸bnbnbnlog c n1j0bnp a c qj .a log c n pc log c a q log c n pc log c n q log c a n log c a .T pnq dn log c abn¸log c n1j0p a c qj .Ta xét ba trường hợp cho tổng vế phải của bất đẳng thức trên:Trường hợp 1: Nếu a c ta cóDo đó¸log c n1j0p a c qjcc a .T pnq dn log c abcnc a Opnq,100 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánvì thừa số thứ nhất có a c nên không ảnh hưởng đến sự đánh giá trên.Trường hợp 2: Nếu a c ta cóT pnq dn log c abnlog¸c n1j01 j Opn log nq.Trường hợp 3: Nếu a ¡ c ta cóT pnq dn log c a dn log c abn¸log c n1j0p a c qj dn log c abn nlog c a1 1ac 1 Opn log c a1q.bn pa c qlog c n 1ac 1lTừ định lí trên ta suy ra những trường hợp sau đây:• Nếu T pnq 2T p n 3 q• Nếu T pnq 2T p n 2 qdn thì T pnq Opnq.dn thì T pnq Opn log nq.• Nếu T pnq 4T p n 2 q dn thì T pnq Opn2 q.Bài tập IIII.1. Trong một trường đại học, có 512 sinh viên theo học môn Tiếng Anh,342 sinh viên theo học môn Tiếng Pháp và có 168 sinh viên theo học cả haimôn. Hỏi có bao nhiêu sinh viên học môn Tiếng Anh hoặc môn Tiếng Pháp?II.2. Hãy tìm số phần tử của A 1 Y A 2 Y A 3 nếu mỗi tập có 100 phần tử vàthỏa mãn:a) Các tập hợp đôi một rời nhau.b) Có 50 phần tử chung cho mỗi cặp tập hợp và không có phần tử nào chungcho cả ba tập hợp.c) Có 30 phần tử chung cho mỗi cặp tập hợp và có 10 phần tử chung cho cả batập hợp.II.3. Hãy tìm số phần tử của A 1 Y A 2 Y A 3 nếu A 1 có 100 phần tử, A 2 có1000 phần tử và A 3 có 10000 phần tử và thỏa mãn:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 101


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồia) A 1 „ A 2 „ A 3 .b) Các tập hợp đôi một rời nhau.c) Có 10 phần tử chung cho mỗi cặp tập hợp và 5 phần tử chung cho cả ba tậphợp.II.4. Sau một cuộc phỏng vấn 270 sinh viên ở Đại học Thăng <strong>Long</strong>, người tanhận thấy có 78 sinh viên có một ổ USB 128MB, 54 sinh viên có một ổ USB256MB, 48 sinh viên có một ổ USB 512MB. Trong số những sinh viên kể trên,có 38 sinh viên có hai ổ USB 128MB và USB 256MB, 25 sinh viên có haiổ USB 128MB và USB 512MB, 12 sinh viên có hai ổ USB 256MB và USB512MB. Không có sinh viên nào có cả ba ổ USB. Vậy trong số 270 sinh viênđã được phỏng vấn, có bao nhiêu sinh viên không có USB?II.5. Có bao nhiêu số nguyên dương nhỏ hơn 200 là:a) Lũy thừa bậc 2 hoặc cao hơn của một số nguyên dương.b) Lũy thừa bậc 2 hoặc cao hơn của một số nguyên dương hoặc của một sốnguyên tố.c) Không chia hết cho bình phương của một số nguyên lớn hơn 1.d) Không chia hết cho lập phương của một số nguyên lớn hơn 1.e) Không chia hết cho ít nhất ba số nguyên tố.II.6. Có bao nhiêu hoán vị của 26 chữ cái trong bảng chữ cái tiếng Anh khôngchứa một trong ba xâu: rat, mouse, mice?II.7. Có bao nhiêu hoán vị của 10 chữ số hoặc bắt đầu bằng ba chữ số 123hoặc chứa hai chữ số 45 ở vị trí thứ năm và thứ sáu hoặc kết thúc bằng ba chữsố 789?II.8. Có bao nhiêu số hạng trong công thức tính số phần tử của hợp của 10 tậphợp theo nguyên lí bù trừ?II.9. Hãy viết công thức chi tiết tính số phần tử của hợp của sáu tập hợp theonguyên lí bù trừ.II.10. Phương trình x 1 x 2 x 3 15 với 2 x 1 6, 6 x 2 10 và0 x 3 5 có bao nhiêu nghiệm nguyên không âm?102 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánII.11. Hãy tìm fp1q, fp2q, fp3q, fp4q, fp5q nếu fpnq được định nghĩa bằngđệ qui với điều kiện đầu fp0q 3, và với n 0, 1, 2, . . . thìa) fpn 1q 2fpnq.b) fpn 1q 3fpnq 5.c) fpn 1q rfpnqs 2 2fpnq 2.d) fpn 1q 3 f pnq{3 .II.12. Hãy tìm fp1q, fp2q, fp3q, fp4q, fp5q nếu fpnq được định nghĩa bằngđệ qui với điều kiện đầu fp0q 1, fp1q 2 và với n 1, 2, . . . thìa) fpn 1q fpnq 3fpn 1q.b) fpn 1q rfpnqs 2 fpn 1q.c) fpn 1q 3rfpnqs 2 4rfpn 1qs 2 .d) fpn 1q fpn 1q.fpnqII.13. Hãy cho định nghĩa đệ qui của dãy ta n u, n 1, 2, . . . nếua) a n 6n.b) a n 10 n .c) a n 2n 1.d) a n 1 p1q n .e) a n npn 1q.f) a n 5.II.14. Cho F là hàm sao cho F pnq là tổng của n số nguyên dương đầu tiên.Hãy đưa ra định nghĩa đệ qui của F pnq.II.15. Cho S m pnq là tổng của số nguyên m và số nguyên không âm n. Hãyđưa ra định nghĩa đệ qui của S m pnq.II.16. Cho f k là số Fibonacci thứ k. Với n nguyên dương, hãy chứng minhnhững tính chất sau:a) f 2 1f 2 2f 2 3. . . f 2 n f nf n 1 .b) f 1 f 2 . . . f n f n 2 1.c) f 1 f 3 . . . f 2n1 f 2n .Bộ môn Toán - ĐẠI HỌC THĂNG LONG 103


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồid) f n 1 f n1 f 2 n p1qn .e) f 0 f 1 f 1 f 2 . . . f 2n1 f 2n f 2 2n .f) f 0 f 1 f 2 . . . f 2n1 f 2n f 2n1 1.II.17. Cho a 1 , a 2 , . . . , a n và b 1 , b 2 , . . . , b n là những số thực. Hãy chứngminh những tính chất sau của hàm max và hàm min:a) maxta 1 , a 2 , . . . , a n u minta 1 , a 2 , . . . , a n u.b) maxta 1 b 1 , a 2 b 2 , . . . , a n b n u ¤ maxta 1 , a 2 , . . . , a n umaxtb 1 , b 2 , . . . , b n u.c) minta 1 b 1 , a 2 b 2 , . . . , a n b n u ¥ minta 1 , a 2 , . . . , a n umintb 1 , b 2 , . . . , b n u.II.18. Hãy cho định nghĩa đệ qui củaa) Tập các số nguyên dương là bội của 5.b) Tập các lũy thừa nguyên dương của 3.c) Tập các số nguyên dương chẵn.d) Tập các số nguyên dương đồng dư với 2 theo modun 3.e) Tập các số nguyên dương không chia hết cho 5.f) Tập các đa thức với hệ số nguyên dương.II.19. Hãy định nghĩa một biểu thức đúng qui tắc của các tập hợp, các biến biểudiễn tập hợp và các toán tử tLấy phần bù, X, Y, zu.II.20. Đảo của một xâu là một xâu gồm những kí tự của xâu ban đầu nhưng vớithứ tự ngược lại. Ta kí hiệu xâu đảo của xâu w là w R . Hãy đưa ra định nghĩaxâu đảo bằng đệ qui. (Hướng dẫn: Trước tiên định nghĩa đảo của xâu rỗng. Sauđó viết xâu w độ dài n 1 dưới dạng xy, với x là xâu độ dài n và biểu diễnxâu đảo w qua x R và y).II.21. Hãy nêu định nghĩa bằng đệ qui tập các xâu nhị phân có số bit 0 bằng sốbit 1.II.22. Hãy nêu định nghĩa bằng đệ qui tập các xâu nhị phân có số bit 0 nhiềuhơn số bit 1.104 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánII.23. Tìm năm số hạng đầu tiên được xác định bởi mỗi hệ thức truy hồi vànhững điều kiện đầu sau đây:a) a n 6a n1 , a 0 2.b) a n a 2 n1 , a 1 2.c) a n a n1 3a n2 , a 0 1, a 1 2.d) a n na n1 n 2 a n2 , a 0 1, a 1 2.e) a n a n1 a n2 , a 0 1, a 1 2, a 2 0.II.24. Chỉ ra rằng những dãy ta n u sau là nghiệm của hệ thức truy hồi a n 3a n1 4a n2 :a) a n 0.b) a n 1.c) a n p4q n .d) a n 2p4q n 3.II.25. Hãy kiểm tra xem dãy ta n u nào sau đây là nghiệm của hệ thức truy hồia n 8a n1 16a n2 :a) a n 0.b) a n 1.c) a n 2 n .d) a n 4 n .e) a n n4 n .f) a n 24 n 3n4 n .g) a n p4q n .h) a n n 2 4 n .II.26. Với mỗi dãy sau đây hãy tìm một hệ thức truy hồi mà dãy này thỏa mãn(câu trả lời là không duy nhất):a) a n 3.b) a n 2 n .c) a n 2n 3.d) a n 5 n .e) a n n 2 .f) a n n 2 n.g) a n n p1q n .h) a n n!.II.27. Dùng phương pháp lặp hãy tìm nghiệm của mỗi hệ thức truy hồi vớinhững điều kiện đầu sau đây:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 105


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồia) a n 3a n1 , a 0 2.b) a n a n1 2, a 0 1.c) a n a n1 n, a 0 1.d) a n a n1 2n 3, a 0 4.e) a n 2a n1 , a 0 1.f) a n 1 3 a n1 1, a 0 2.g) a n na n1 , a 0 5.h) a n 2na n1 , a 0 1.II.28. Một người gửi 10000 đô la vào tài khoản của mình tại một ngân hàngvới lãi suất kép 10% một năm.a) Hãy thiết lập hệ thức truy hồi cho tổng số tiền có trong tài khoản vào cuốinăm thứ n.b) Tìm công thức tường minh cho tổng số tiền có trong tài khoản vào cuối nămthứ n.c) Sau 20 năm tổng số tiền có trong tài khoản là bao nhiêu?II.29. Một nhân viên bắt đầu làm việc tại một công ty từ năm 2001, với mứclương khởi điểm là 6000 đô-la một năm. Hàng năm anh ta nhận được thêm500 đô-la và 5% lương của năm trước.a) Hãy thiết lập hệ thức truy hồi tính lương của nhân viên đó ở năm thứ n kể từsau năm 2001.b) Hãy tìm công thức tường minh tính lương của nhân viên này ở năm thứ n kểtừ sau năm 2001.c) Lương năm 2007 của anh ta là bao nhiêu?II.30. Giả sử dân số thế giới năm 1995 là 7 tỷ người và tốc độ tăng dân sốhằng năm là 3%.a) Hãy lập hệ thức truy hồi cho dân số thế giới n năm sau năm 1995.b) Tìm công thức tường minh cho dân số thế giới n năm sau năm 1995.106 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánc) Năm 2010 dân số thế giới là bao nhiêu?II.31. Một nhà máy sản xuất ô tô thể thao theo đơn đặt hàng với tốc độ ngàycàng tăng. Tháng đầu chỉ sản xuất một chiếc, tháng thứ hai làm được hai chiếcvà cứ như vậy tháng thứ n sản xuất được n chiếc.a) Hãy lập công thức truy hồi tính số ô tô sản xuất được trong n tháng đầu tiêncủa nhà máy.b) Hãy tìm công thức tường minh tính số ô tô sản xuất được trong n tháng đầutiên của nhà máy.c) Bao nhiêu ô tô được sản xuất trong năm đầu tiên?II.32. Một nhóm mười người bắt đầu trò chơi “Viết thư dây chuyền” như sau:Đầu tiên mỗi người gửi thư cho bốn người; mỗi người nhận được thư lại gửi thưcho bốn người khác.a) Hãy lập công thức truy hồi tính biểu thị số thư gửi đi ở bước thứ n của “dâychuyền thư” này, nếu không có ai nhận được hơn một lá thư.b) Hãy tìm những điều kiện đầu.c) Có bao nhiêu lá thư được gửi đi ở bước thứ mười.II.33. Một máy bán hàng tự động chỉ nhận những đồng xu 1 nghìn, 2 nghìn và5 nghìn.a) Hãy tìm hệ thức truy hồi tính số cách đặt n nghìn vào trong máy bán hàng,biết rằng thứ tự những đồng xu được đặt vào máy là quan trọng.b) Hãy tìm điều kiện đầu.c) Bao nhiêu cách đặt 10 nghìn vào trong máy để mua được một bộ tem?II.34.a) Hãy tìm hệ thức truy hồi cho số cách phủ toàn bộ bàn cờ 2 n bằng nhữngquân đôminô 1 2.b) Hãy tìm điều kiện đầu.c) Có bao nhiêu cách phủ bàn cờ 2 17 bằng những quân đôminô 1 2?Bộ môn Toán - ĐẠI HỌC THĂNG LONG 107


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiII.35.a) Hãy tìm hệ thức truy hồi cho số xâu nhị phân độ dài n không chứa hai số 0liên tiếp.b) Tìm điều kiện đầu.c) Có bao nhiêu xâu như vậy có độ dài là bảy?II.36.a) Hãy tìm hệ thức truy hồi cho số xâu nhị phân độ dài n chứa ba số 0 liên tiếp.b) Tìm điều kiện đầu.c) Có bao nhiêu xâu nhị phân độ dài là bảy thỏa mãn yêu cầu đề bài?II.37.a) Hãy tìm hệ thức truy hồi cho số xâu nhị phân độ dài n chứa xâu 01.b) Tìm điều kiện đầu.c) Có bao nhiêu xâu nhị phân độ dài bảy chứa dãy 01?II.38. Trong những hệ thức truy hồi sau đây hệ thức nào là tuyến tính thuầnnhất với hệ số hằng số? Bậc của những hệ thức đó bằng bao nhiêu?a) a n a n2 .b) a n 2na n1 a n2 .c) a n a n1 2.d) a n a 2 n1a n2 .e) a n 3.f) a n 3a n1 4a n2 5a n3 .g) a n a n1n .h) a n 4a n2 a n5 a n6 .II.39. Giải những hệ thức truy hồi cùng những điều kiện đầu sau:a) a n 2a n1 , với n ¥ 1, a 0 3.b) a n 4a n2 , với n ¥ 2, a 0 0, a 1 4.c) a n a n24 , với n ¥ 2, a 0 1, a 1 0.d) a n 5a n1 6a n2 , với n ¥ 2, a 0 1, a 1 3.108 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toáne) a n 6a n1 9a n2 , với n ¥ 2, a 0 6, a 1 8.f) a n 4a n1 4a n2 , với n ¥ 2, a 0 2, a 1 3.g) a n 7a n1 10a n2 , với n ¥ 2, a 0 2, a 1 1.g) a n 2a n1 a n2 , với n ¥ 2, a 0 1, a 1 2.II.40. Có thể truyền được bao nhiêu thông báo khác nhau trong n µs khi sửdụng ba tín hiệu nếu truyền tín hiệu đầu mất 1 µs, hai tín hiệu sau mỗi tín hiệucần 2 µs và mỗi tín hiệu trong thông báo được truyền liên tiếp nhau?II.41. Với những tấm lát 1 2 và 2 2 có thể lát một chiếc bảng 2 n bằngbao nhiêu cách khác nhau?II.42. Giả sử số tôm hùm bị đánh bắt trong một năm bằng trung bình cộng sốbị đánh bắt trong hai năm trước đó.a) Hãy tìm hệ thức truy hồi cho tL n u, trong đó L n là số tôm bị đánh bắt trongnăm thứ n.b) Hãy tìm L n nếu năm đầu có 100000 tôm hùm bị đánh bắt, năm thứ hai có300000 tôm hùm bị đánh bắt.II.43. Một người gửi 100000 USD vào quĩ đầu tư vào ngày đầu của một năm.Ngày cuối cùng của năm, người đó hưởng hai khoản tiền lãi. Khoản lãi đầu là20% tổng số tiền có trong tài khoản cả năm. Khoản thứ hai là 45% tổng số tiềncó trong tài khoản trong năm trước đó.a) Hãy tìm hệ thức truy hồi cho tP n u, trong đó P n là tổng số tiền trong tàikhoản vào cuối năm thứ n, nếu người đó không rút tiền ra lần nào.b) Tính số tiền có trong tài khoản sau n năm, nếu người đó không rút tiền ralần nào.II.44. Giả sử rằng mỗi cặp thỏ trên đảo khi được một tháng tuổi đẻ được 2 cặpthỏ con và từ hai tháng tuổi, mỗi tháng đẻ được 6 cặp thỏ con. Giả sử trong thờigian thí nghiệm không có con nào bị chết hoặc rời khỏi đảo.a) Hãy tìm hệ thức truy hồi cho số cặp thỏ trên đảo sau n tháng kể từ khi thảmột cặp thỏ mới sinh lên đảo.b) Bằng cách giải hệ thức truy hồi trong câu trên, hãy tìm số cặp thỏ trên đảosau n tháng kể từ khi thả một cặp thỏ mới sinh lên đảo.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 109


Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồiII.45. Giả sử rằng trong một quần thể vi trùng, sau mỗi giờ sẽ sinh ra hai vitrùng mới và mỗi vi trùng chỉ sống được hai giờ. Đầu tiên quần thể có 100 vitrùng.a) Hãy tìm hệ thức truy hồi biểu diễn số vi trùng còn tồn tại sau n giờ.b) Tìm nghiệm của hệ thức truy hồi này.c) Khi nào quần thể có hơn 1000000 vi trùng.II.46. Tìm nghiệm của những hệ thức truy hồi sau:a) a n 2a n1 a n2 2a n3 với n ¥ 3, a 0 3, a 1 6, a 2 0.b) a n 7a n2 6a n3 với n ¥ 3, a 0 9, a 1 10, a 2 32.c) a n 5a n2 4a n4 với n ¥ 4, a 0 3, a 1 2, a 2 6, a 3 8.d) a n 3a n1 3a n2 a n3 với n ¥ 3, a 0 2, a 1 2, a 2 4.e) a n 4a n1 5a n2 2a n3 với n ¥ 3, a 0 0, a 1 1, a 2 2.II.47. Tìm nghiệm của những hệ thức truy hồi sau:a) a n 7a n1 10a n2 n với n ¥ 2, a 0 2, a 1 1.b) a n 3a n1 2a n2 5 với n ¥ 2, a 0 1, a 1 3.c) a n 3a n1 2 n với n ¥ 1, a 0 1.d) a n 4a n2 2 n với n ¥ 2, a 0 2, a 1 3.II.48. Chứng minh:a) pn 1q 2 Opn 2 q.b) rlog ns Opnq.c) 3ntlog nu Opn 2 q.II.49. Những đẳng thức sau đây có đúng không:a) ? n Oplog nq.b) ? n log n Opnq.110 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


2.6. Độ phức tạp của thuật toánc) 1 n Oplog nq.d) 3n 2 ? n Opn 2 q.e) 2 n 1 Op 3nn q.II.50. Giải hệ thức truy hồi với T p1q 1 và với mọi n là lũy thừa của 2(n ¥ 2), 2T p n q 6n 1.2II.51. Giải hệ thức truy hồi với T p1q 1 và với mọi n là lũy thừa của 2(n ¥ 2), 2T p n 2 q n2 n.II.52. Hãy xác định độ phức tạp (theo thời gian) của tất cả các thuật toán đượcnêu trong cuốn sách này.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 111


Chương 3Đại số BooleCó một sự tương tự giữa các mệnh đề, phép tuyển, phép hội, phép phủđịnh, giá trị chân lí sai (F ), giá trị chân lí đúng (T ) và các tập hợp cùngvới phép toán hợp, phép giao, phép lấy phần bù, tập rỗng, tập vũ trụ. Trongchương này, chúng ta sẽ tìm hiểu khái niệm mang tính khái quát hơn, có nhiềuứng dụng trong việc thiết kế các mạch tổ hợp logic. Đó là Đại số boole. Cuốichương, chúng ta sẽ tiếp cận với vài phương pháp tối ưu hóa mạch tổ hợp logic,đặc biệt là Bảng Karnaugh và Thuật toán Quine - McCluskey.3.1 Đại số booleĐịnh nghĩa trừu tượng của đại số booleNhư chúng ta đã nói ở trên, giữa lí thuyết logic mệnh đề và lí thuyết tập hợpcó một sự tương tự nhau. Các kết quả của logic mệnh đề có thể được chuyểnthành các kết quả tương ứng của tập hợp và ngược lại. Vì vậy, sẽ rất có ích nếuchúng ta có một khái niệm trừu tượng, đại số boole, đại diện cho cả “cấu trúc”logic mệnh đề, cả “cấu trúc” tập hợp, và cả những “cấu trúc” tương tự khác.Một khi đã chứng minh được rằng một cấu trúc đặc biệt nào đó là một đại sốboole, thì khi đó mọi kết quả đã được thiết lập cho đại số boole tổng quát sẽđược áp dụng cho cấu trúc đặc biệt đó.Định nghĩa 3.1.1 Cho tập B thỏa mãn các điều kiện sau:A1. Có hai “phép toán hai ngôi” “ ”, “.”: với mỗi cặp x, y P B có duy nhấtx y P B và duy nhất x.y P B.A2. Có phần tử 0 P B sao cho x 0 0 x x và x.0 0.x 0 vớimọi x P B.


3.1. Đại số booleA3. Có phần tử 1 P B sao cho x 1 1 x 1 và x.1 1.x x vớimọi x P B.A4. Với mỗi x P B, có phần tử ¯x P B sao cho x ¯x ¯x x 1 vàx.¯x ¯x.x 0 (chúng ta sẽ thấy ở bên dưới ¯x là duy nhất đối với mỗix P B và do vậy ta coi “¯” là phép toán một ngôi - phép toán lấy phầnbù, ¯x được gọi là phần bù của x).A5. px yq z x py zq và px.yq.z x.py.zq với mọi x, y, z P B(luật kết hợp).A6. x y y x và x.y y.x với mọi x, y P B (luật giao hoán).A7. x py.zq px yq.px zq và x.py zq px.yq px.zq với mọix, y, z P B (luật phân phối).A8. Số phần tử của B ít nhất là 2.Các phép toán “ ”, “.”, và “¯” được gọi là các phép toán boole. Khi đó tậpB cùng với các phép toán “ ”, “.”, và “¯” được gọi là Đại số boole.Ví dụ 3.1.2 Tập B t0, 1u với ba phép toán bit AND, OR, NOT (tươngứng chính là các phép toán “.”, “ ”, “¯” trong định nghĩa 3.1.1) và hai giá trị0 và 1 lập thành một đại số boole. Các bạn có thể dễ dàng kiểm tra điều này.Ví dụ 3.1.3 Tập B các mệnh đề logic với ba phép toán logic ^, _, (tươngứng chính là các phép toán “.”, “ ”, “¯” trong định nghĩa 3.1.1) và giá trịchân lí sai F , giá trị chân lí đúng T (tương ứng với phần tử 0 và 1) cũng lậpthành một đại số boole.Ví dụ 3.1.4 Họ các tập con của tập S cho trước với ba phép toán tập hợp X,Y, phép lấy phần bù (tương ứng chính là các phép toán “.”, “ ”, “¯” trongđịnh nghĩa 3.1.1) và tập rỗng H, tập S (tương ứng với hai giá trị 0 và 1) cũnglập thành một đại số boole.Từ định nghĩa của đại số boole, ta có thể chứng minh những tính chất sau gọi lànhững hằng đẳng thức boole (với x, y, z P B):Bộ môn Toán - ĐẠI HỌC THĂNG LONG 113


Chương 3. Đại số BooleTính chất Tên gọi0 là duy nhất, 1 là duy nhất. Tính duy nhất của 0 và 1Với mỗi x P B, ¯x là duy nhất,tức là nếu a x x a 1 và Tính duy nhất của phần bùa.x x.a 0 thì a ¯x.¯x x. Luật phần bù képx x x,x.x x.Luật lũy đẳngx 0 x,x.1 x.Luật đồng nhấtx 1 1,x.0 0.Luật nuốtx ¯x 1,x.¯x 0.Luật bài trungx px.yq x,x.px yq x.Luật hấp thụx y y x,x.y y.x.Luật giao hoánpx yq z x py zq,px.yq.z x.py.zq.Luật kết hợpx py.zq px yq.px zq,x.py zq px.yq px.zq.Luật phân phốix y ¯x.ȳ,x.y ¯x ȳ.Luật De MorganViệc chứng minh các tính chất trên được dành cho các bạn như những bài tậpdễ. Chẳng hạn:Ví dụ 3.1.5 Chứng minh tính duy nhất của 0 và 1.Lời giải: Giả sử có hai phần tử α, β trong B đóng vai trò của 0. Khi đóα α β β. Cũng vậy, giả sử có hai phần tử γ, δ trong B đóng vai tròcủa 1. Khi đó γ γ.δ δ.lVí dụ 3.1.6 Chứng minh tính duy nhất của phần bù.114 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.1. Đại số booleLời giải: Cho phần tử x P B. Giả sử có a x x a 1 và a.x x.a 0.Ta có:a a.1 (Tính chất của 1) a.px ¯xq (Tính chất của 1) a.x 0a.¯x (Luật phân phối)a.¯x (Giả thiết trên) x.¯x a.¯x (Tính chất của 0) pxaq.¯x (Luật phân phối) 1.¯x (Giả thiết trên) ¯x (Tính chất của 1).lVí dụ 3.1.7 Chứng minh luật De Morgan.Lời giải: Với x, y P B, ta có:vàp¯x.ȳq.px yq ¯x.ȳ.x ¯x.ȳ.y (Luật phân phối) ¯x.x.ȳ 0.ȳ¯x.ȳ.y (Luật giao hoán)¯x.0 (Luật bài trung) 0 (Tính chất của 0),p¯x.ȳq px yq p¯x px yqq.pȳ px yqq (Luật phân phối) pp¯x xq yq.ppȳ yq xq (Luật giao hoán và kết hợp) p1 yq.p1 xq (Luật bài trung) 1 (Tính chất của 1).Vậy, theo tính duy nhất của phần bù, ta có ¯x.ȳ x y. Ta cũng chứng minh¯x ȳ x.y bằng cách tương tự. lCác đại số boole trong những ví dụ 3.1.2, 3.1.3, 3.1.4 đều thỏa mãn các hằngđẳng thức boole.Biểu thức boole và hàm booleĐịnh nghĩa 3.1.8 Cho B t0, 1u. Biến x được gọi là một biến boole nếu nóchỉ nhận các giá trị trong B. Một hàm f : B n Ñ B được gọi là hàm boolen biến.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 115


Chương 3. Đại số BooleCác hàm boole thường được cho dưới dạng bảng nhưng cũng có thể được chodưới dạng biểu thức các biến boole và các phép toán boole. Các biểu thức boolevới các biến x 1 , x 2 , . . . , x n được định nghĩa một cách đệ qui như sau:Định nghĩa 3.1.9 0, 1, x 1 , x 2 , . . . , x n là các biểu thức boole. Nếu E 1 và E 2là các biểu thức boole thì E 1 , E 2 , E 1 .E 2 , E 1 E 2 , pE 1 q, pE 2 q cũng là các biểuthức boole.Mỗi biểu thức boole biểu diễn một hàm boole. Các giá trị của hàm này nhậnđược bằng cách thay 0 và 1 cho các biến trong biểu thức đó.Ví dụ 3.1.10 Hàm boole F px, y, zq x.ysau:¯z có giá trị được cho trong bảngx y z x.y ¯z F px, y, zq x.y ¯z1 1 1 1 0 11 1 0 1 1 11 0 1 0 0 01 0 0 0 1 10 1 1 0 0 00 1 0 0 1 10 0 1 0 0 00 0 0 0 1 1Ngược lại, hàm cho trong bảng trên được biểu diễn bởi nhiều biểu thức boolekhác nhau: F 1 px, y, zq x.y ¯z, hoặc F 2 px, y, zq x.y.z x.y.¯zx.ȳ.¯z ¯x.y.¯z ¯x.ȳ.¯z. . .Định nghĩa 3.1.11 Hai hàm n biến F và G được gọi là bằng nhau nếuF px 1 , x 2 , . . . , x n q Gpx 1 , x 2 , . . . , x n q với mọi x 1 , x 2 , . . . , x n P B.Hai biểu thức boole khác nhau cùng biểu diễn một hàm boole được gọi là tươngđương với nhau.Trong ví dụ 3.1.10, hai hàm F 1 và F 2 bằng nhau còn hai biểu thức x.yx.y.z x.y.¯z x.ȳ.¯z ¯x.y.¯z ¯x.ȳ.¯z tương đương với nhau.¯z vàĐịnh nghĩa 3.1.12 Cho hàm boole F . Phần bù của hàm boole F là hàm ¯Fthỏa mãn ¯F px 1 , x 2 , . . . , x n q F px 1 , x 2 , . . . , x n q. Tổng boole F G vàtích boole F.G là các hàm thỏa mãn:pF Gqpx 1 , x 2 , . . . , x n q F px 1 , x 2 , . . . , x n q Gpx 1 , x 2 , . . . , x n q,pF.Gqpx 1 , x 2 , . . . , x n q F px 1 , x 2 , . . . , x n q.Gpx 1 , x 2 , . . . , x n q.116 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.2. Biểu diễn các hàm BooleMỗi hàm boole n biến tương ứng với một bảng có n 1 cột (tương ứng với giátrị của các biến x 1 , x 2 , . . . , x n và giá trị hàm) và 2 n dòng (tương ứng với cáckhả năng có thể có của giá trị các biến x 1 , x 2 , . . . , x n ). Hai hàm boole khácnhau khi và chỉ khi chúng có hai cột giá trị khác nhau. Cột giá trị của một hàmboole n biến có thể coi như một xâu nhị phân độ dài 2 n . Vậy có tất cả 2 2n hàmboole n biến khác nhau.Tính đối ngẫuCác hằng đẳng thức boole xuất hiện theo từng cặp (trừ luật phần bù kép).Hai hằng đẳng thức boole trong mỗi cặp dẫn dắt chúng ta tới khái niệm đối ngẫucủa một biểu thức boole.Định nghĩa 3.1.13 Đối ngẫu của một biểu thức boole là một biểu thức boolenhận được bằng cách đổi chỗ các tổng boole và tích boole cho nhau, đổi chỗcác phần tử 0 và phần tử 1 cho nhau.Ví dụ 3.1.14 Đối ngẫu của biểu thức boole x.p0p1.pȳ zqq.pȳ.zqq là biểu thức xĐịnh nghĩa 3.1.15 Đối ngẫu của một hàm boole được biểu diễn bởi một biểuthức boole là một hàm boole được biểu diễn bởi đối ngẫu của biểu thức booleban đầu. Hàm đối ngẫu của hàm boole F được kí hiệu là F d .Nguyên lí 3.1.16 (Nguyên lí đối ngẫu) Một hằng đẳng thức giữa các hàm đượcbiểu diễn bởi các biểu thức boole vẫn còn đúng nếu ta lấy đối ngẫu hai vế củanó.Ví dụ 3.1.17 Trong đại số boole, tính chất sau luôn đúng:x.py px.zqq px.yq px.zq.Do vậy, theo nguyên lí đối ngẫu, tính chất sau cũng đúng:x py.px zqq px yq.px zq.Hai tính chất nói trên đi thành một cặp đối ngẫu được gọi là tính chất modular.3.2 Biểu diễn các hàm BooleTrong mục này chúng ta sẽ xem xét hai bài toán quan trọng liên quan đếnhàm boole. Bài toán thứ nhất tìm biểu thức boole biểu diễn một hàm boole đượcBộ môn Toán - ĐẠI HỌC THĂNG LONG 117


Chương 3. Đại số Boolecho trước bởi một bảng. Chúng ta sẽ chứng minh rằng mọi hàm boole đều cóthể được biểu diễn bởi tổng boole của những tích boole của các biến boole vàphần bù của chúng. Do vậy, mọi hàm boole đều có thể biểu diễn bởi biểu thứcboole thông qua ba toán tử: tổng boole, tích boole và phần bù. Bài toán thứhai xem xét việc thu gọn tập các toán tử biểu diễn hàm boole. Chúng ta sẽ điđến kết quả khẳng định mọi hàm boole đều có thể được biểu diễn bằng cách chỉdùng một toán tử. Cả hai bài toán trên đều có tầm quan trọng thực tiễn trongviệc thiết kế các “mạch logic”.Khai triển tổng các tíchVí dụ 3.2.1 Tìm ít nhất một biểu thức boole biểu diễn mỗi hàm trong hai hàmF px, y, zq, Gpx, y, zq được cho bởi bảng sau:x y z F px, y, zq Gpx, y, zq1 1 1 0 01 1 0 0 01 0 1 1 11 0 0 0 00 1 1 0 00 1 0 0 00 0 1 0 10 0 0 0 0Lời giải: Xét hàm F px, y, zq. Cần tìm ít nhất một biểu thức boole nhận giátrị 1 khi x z 1 và y 0 và có giá trị 0 trong mọi trường hợp còn lại đểbiểu diễn hàm F px, y, zq. Ta lấy tích boole của x, ȳ, z. Tích này, nhận giátrị 1 khi và chỉ khi x ȳ z 1. Vậy có thể lấy x.ȳ.z để biểu diễn hàmF px, y, zq.Đối với hàm Gpx, y, zq, hàm này giống hàm trước ở chỗ nó cũng nhận giá trị1 khi x z 1 và y 0 nhưng ngoài ra, nó còn nhận thêm một giá trị 1nữa khi x y 0 và z 1. Ta cũng làm giống trên bằng cách xây dựng cáctích boole: x.ȳ.z và ¯x.ȳ.z rồi lấy tổng boole của chúng. Dễ kiểm tra lại rằngx.ȳ.z ¯x.ȳ.z là một biểu thức boole biểu diễn hàm boole Gpx, y, zq. lĐối với các hàm boole cho bởi các bảng giá trị khác, chúng ta cũng sẽ làm tươngtự như trên. Phương pháp này dẫn chúng ta tới một số khái niệm được địnhnghĩa dưới đây:Định nghĩa 3.2.2 Một biến boole hoặc phần bù của nó được gọi là một tín hiệu.Tích boole y 1 .y 2 . . . . .y n trong đó y i x i hoặc y i ¯x i với x 1 , x 2 , . . . , x n118 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.2. Biểu diễn các hàm Boolelà các biến boole được gọi là một hội sơ cấp n biến. Vậy một hội sơ cấp là tíchboole của các tín hiệu.Một hội sơ cấp nhận và chỉ nhận giá trị 1 ứng với đúng một bộ giá trị của cácbiến của nó. Cụ thể, hội sơ cấp y 1 .y 2 . . . . .y n 1 khi và chỉ khi y i 1với mọi i 1, n. Điều này xảy ra nếu và chỉ nếu x i 1 khi y i x i vàx i 0 khi y i ¯x i . Ngược lại, với một bộ giá trị cho trước của các biến boolex 1 , x 2 , . . . , x n , ta có thể thành lập được đúng một hội sơ cấp n biến nhận vàchỉ nhận giá trị 1 ứng với bộ giá trị đã cho. Đó chính là tích boole y 1 .y 2 . . . . .y ntrong đó y i x i nếu x i 1 và y i ¯x i nếu x i 0.Nếu một hàm boole n biến được cho dưới dạng bảng, ta xét các dòng trongbảng mà hàm đã cho nhận giá trị 1. Bằng cách lấy tổng boole các hội sơ cấp nbiến nhận giá trị 1 tương ứng với các bộ giá trị của các biến boole ở các dòng tađang xét (các dòng mà hàm nhận giá trị 1), ta nhận được biểu thức boole biểudiễn hàm boole đã cho. Biểu thức boole biểu diễn hàm được thành lập như vậyđược gọi là dạng khai triển tổng các tích hay dạng tuyển chuẩn tắc của hàmboole đã cho.Ví dụ 3.2.3 Tìm khai triển tổng các tích của hàm F px, y, zq pxyq.¯z.Lời giải: Bước đầu tiên là lập bảng giá trị của hàm F px, y, zq:x y z F px, y, zq1 1 1 01 1 0 11 0 1 01 0 0 10 1 1 00 1 0 10 0 1 00 0 0 0Tiếp theo, ta lập hội sơ cấp ba biến nhận giá trị 1 ứng với ba dòng mà hàmF px, y, zq nhận giá trị 1. Đó là các hội sơ cấp x.y.¯z, x.ȳ.¯z và ¯x.y.¯z. Vậy tacó F px, y, zq x.y.¯z x.ȳ.¯z ¯x.y.¯z. lBằng cách lấy đối ngẫu, ta cũng có thể xây dựng biểu thức boole biểu diễn hàmboole dưới dạng hội chuẩn tắc hoặc dạng khai triển tích các tổng.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 119


Chương 3. Đại số BooleTính đầy đủNhư vậy, ta đã biết, mỗi hàm boole đều có thể được biểu diễn thành tổngboole những hội sơ cấp. Điều này chứng tỏ rằng mỗi hàm boole đều có thể đượcbiểu diễn thông qua ba phép toán boole: “.”, “ ”, “¯”. Vì tất cả các hàm booleđều có thể biểu diễn thông qua ba phép toán đó nên ta nói rằng tập hợp t., , ¯ulà một hệ đầy đủ. Một vấn đề được đặt ra là tìm những hệ đầy đủ nhỏ hơn.Bằng cách sử dụng luật De Morgan, mọi biểu thức có liên quan chẳng hạnđến tích boole đều được chuyển qua các phép lấy phần bù và tổng boole. Vậyt , ¯u là một hệ đầy đủ. Tương tự, t., ¯u cũng là một hệ đầy đủ. Đó là ví dụvề hệ đầy đủ chỉ có hai toán tử.Phép toán NAND hay “|” (x|y x.y) và phép toán NOR hay “Ó”(x Ó y x y), bản thân mỗi phép toán đều có thể lập thành hệ đầy đủ.Chẳng hạn, vì t., ¯u là một hệ đầy đủ nên để chứng minh t|u là hệ đầy đủ, ta chỉcần chứng tỏ rằng cả hai phép toán “.” và “¯” đều có thể được biểu diễn bằngcách chỉ dùng phép toán “|”. Thật vậy, dễ chứng minh:¯x x|x,x.y px|yq|px|yq.Tương tự với chứng minh tÓu là hệ đầy đủ.3.3 Các cổng logicĐại số boole được dùng để mô hình hóa các mạch điện tử. Mỗi đầu vàovà mỗi đầu ra của một mạch điện tử có thể được xem như một phần tử của tậpt0, 1u. Mỗi mạch có thể được thiết kế bằng cách dùng các luật đã nêu của đạisố boole. Các phần tử cơ bản của các mạch được gọi là các cổng. Mỗi mộtloại cổng thực hiện một phép toán boole. Dùng các cổng này và các luật trongđại số boole, chúng ta sẽ thiết kế các mạch thực hiện các nhiệm vụ khác nhau.Các mạch mà chúng ta sẽ xem xét, sẽ cho đầu ra chỉ phụ thuộc vào đầu vào chứkhông phụ thuộc vào trạng thái hiện thời của mạch (đầu ra là hàm boole của đầuvào). Nói một cách khác, các mạch này không có khả năng nhớ. Những mạchnhư vậy được gọi là mạch tổ hợp.Chúng ta có sáu loại cổng logic cơ bản. Các cổng này được minh họa tronghình 3.1:120 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.3. Các cổng logicHình 3.1: Các loại cổng logic cơ bản: a) Bộ đảo; b) Cổng OR; c) Cổng AND; d) Cổng XOR;e) Cổng NOR; f) Cổng NAND.• Bộ đảo: thực hiện phép toán lấy phần bù. Nó cho tín hiệu đầu ra có giá trịlà phần bù của giá trị tín hiệu đầu vào.• Cổng OR: thực hiện phép toán lấy tổng boole. Nó cho tín hiệu đầu ra cógiá trị là tổng boole của hai giá trị của hai tín hiệu đầu vào.• Cổng AND: thực hiện phép toán lấy tích boole. Nó cho tín hiệu đầu ra cógiá trị là tích boole của hai giá trị của hai tín hiệu đầu vào.• Cổng XOR: thực hiện phép toán lấy tổng boole loại trừ “`”. Nếu haigiá trị của hai tín hiệu đầu vào lần lượt là x và y thì tín hiệu đầu ra là¯x.y x.ȳ.• Cổng NOR: thực hiện phép toán NOR hay “Ó”. Nếu hai giá trị của haitín hiệu đầu vào lần lượt là x và y thì tín hiệu đầu ra là x y.• Cổng NAND: thực hiện phép toán NAND hay “|”. Nếu hai giá trị củahai tín hiệu đầu vào lần lượt là x và y thì tín hiệu đầu ra là x.y.Tuy là sáu loại cổng khác nhau nhưng thực ra ba loại cổng XOR, NAND,NOR thường được coi là các cổng phức hợp dựa trên bộ đảo, cổng OR vàcổng AND.Tổ hợp các cổngCác mạch tổ hợp có thể được xây dựng bằng cách dùng tổ hợp các bộ đảo,cổng OR và cổng AND. Khi lập tổ hợp các mạch, một số cổng có thể cóchung đầu vào. Đầu ra từ một cổng có thể được dùng như đầu vào của một hoặcnhiều cổng khác.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 121


Chương 3. Đại số BooleVí dụ 3.3.1 Xây dựng mạch tổ hợp nhận đầu vào là x và y còn đầu ra là:a) px.yq p¯x.yq.b) px y zq.¯x.ȳ.¯z.Hình 3.2: Tổ hợp các cổng được mạch nhận đầu vào là x, y, cho đầu ra là px.yq p¯x.yq.Hình 3.3: Tổ hợp các cổng được mạch nhận đầu vào là x, y, z cho đầu ra làpx y zq.¯x.ȳ.¯z.Lời giải:a) Mạch được thiết kế theo yêu cầu được minh họa trong hình 3.2.b) Mạch được thiết kế theo yêu cầu được minh họa trong hình 3.3.lVí dụ 3.3.2 Một ủy ban gồm ba thành viên phải quyết định các vấn đề của mộttổ chức. Mỗi một thành viên bỏ phiếu tán thành hoặc không cho mỗi một đềnghị được đưa ra. Một đề nghị sẽ được thông qua nếu nó nhận được ít nhất haiphiếu tán thành. Hãy thiết kế một mạch cho phép xác định được một đề nghị cóđược thông qua hay không.Lời giải: Cho x 1 nếu thành viên thứ nhất bỏ phiếu tán thành và x 0nếu thành viên đó không tán thành. Tương tự với các biến y và z tương ứng ý122 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchkiến của các thành viên thứ hai và thứ ba. Khi đó mạch cần được thiết kế saocho nó tạo đầu ra bằng 1 từ các đầu vào x, y, z khi có hai hoặc nhiều hơn cácbiến x, y, z có giá trị là 1. Một biểu diễn của hàm boole có giá trị đầu ra đó làx.y x.z y.z. Mạch thực hiện hàm này được cho trên hình 3.4. lHình 3.4: Mạch bỏ phiếu theo đa số.3.4 Cực tiểu hóa các mạchHiệu quả của một mạch tổ hợp phụ thuộc vào số các cổng và sự bố trí cáccổng đó. Quá trình thiết kế một mạch tổ hợp được bắt đầu bằng một bảng chỉrõ các giá trị đầu ra đối với mỗi một tổ hợp các giá trị đầu vào. Chúng ta luôncó thể sử dụng khai triển tổng các tích của mạch để tìm tập các cổng logic thựchiện mạch đó. Tuy nhiên, khai triển tổng các tích có thể chứa các tích nhiều hơnmức cần thiết. Những hội sơ cấp cùng số biến trong khai triển tổng các tích chỉkhác nhau ở một biến sao cho trong hội sơ cấp này xuất hiện biến đó còn hộisơ cấp kia xuất hiện phần bù của nó, đều có thể được tổ hợp lại với nhau rồi ápdụng luật phân phối và luật bài trung.Chẳng hạn, xét mạch có đầu ra bằng 1 nếu và chỉ nếu x y z 1 hoặcx z 1, y 0. Khai triển tổng các tích của mạch này là x.y.z x.ȳ.z.Hai hội sơ cấp trong tổng này chỉ khác nhau ở tín hiệu thứ hai (y và ȳ). Chúngcó thể được tổ hợp lại như sau:x.y.z x.ȳ.z py ȳq.x.z 1.x.z x.z.Do vậy, x.z là biểu thức với ít phép toán hơn biểu diễn mạch đã cho. Hai thểhiện khác nhau của cùng mạch đó được cho trên hình 3.5.Ví dụ trên chứng tỏ rằng sự tổ hợp các hội sơ cấp trong khai triển tổng cáctích sẽ dẫn đến một biểu thức đơn giản hơn đối với cùng một mạch. Chúng taBộ môn Toán - ĐẠI HỌC THĂNG LONG 123


Chương 3. Đại số BooleHình 3.5: Hai mạch nhận đầu vào là x, y, z cho cùng đầu ra.sẽ xem xét vài phương pháp đơn giản hóa các khai triển tổng các tích. Mục đíchcủa những phương pháp này là tạo tổng boole của các tích boole chứa một sốnhỏ nhất tích các tín hiệu sao cho các tích này lại chứa một số ít nhất cáctín hiệu trong số tất cả những tổng các tích cùng biểu diễn mạch đã cho.Phương pháp biến đổi đại sốPhương pháp này dựa vào các luật, các hằng đẳng thức boole để tối tiểu hóacác biến và các phép toán trên biểu thức boole. Phương pháp này không có mộtcách thức chung cho tất cả các biểu thức boole. Nói chung, cách thức tối tiểuhóa sẽ phụ thuộc vào từng biểu thức boole cụ thể.Ví dụ 3.4.1 Tối tiểu hóa hàm boole fpx, yq ¯x.y x.y x.ȳ.Lời giải: Ta cófpx, yq ¯x.y x.y x.y x.ȳ p¯x xq.y x.py ȳq 1.y x.1 x y.lVí dụ 3.4.2 Tối tiểu hóa hàm boole fpx, yq x.ȳ ¯x.ȳ ¯x.y.124 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchLời giải: Ta có:fpx, yq x.ȳ ¯x.ȳ ¯x.y px.ȳ ¯x.ȳq p¯x.ȳ ¯x.yq ppx ¯xq.ȳq p¯x.pȳ yqq 1.ȳ ¯x.1 ȳ ¯x.Dạng tối tiểu của fpx, yq là ȳ ¯x. lPhương pháp bảng KarnaughĐể làm giảm số các hội thành phần trong một biểu thức boole biểu diễnmột mạch, ta cần phải tìm những hội thành phần có thể tổ hợp được với nhau.Phương pháp bảng Karnaugh hay sơ đồ Karnaugh là phương pháp trực quan,do Maurice Karnaugh đưa ra vào năm 1953, được dùng để tìm các hội thànhphần tổ hợp được đối với các hàm boole có số biến tương đối nhỏ. Các bảngKarnaugh cho chúng ta một phương pháp trực quan để rút gọn các khai triểntổng các tích nhưng lại không phù hợp với việc lập trình tự động thực hiện côngviệc này.Bảng Karnaugh để tối tiểu hóa hàm boole hai biếnBảng Karnaugh để tối tiểu hóa hàm boole hai biến bao gồm bốn ô vuông,trong đó hình vuông biểu diễn hội sơ cấp có mặt trong dạng tuyển chuẩn tắc củahàm được đánh số 1:y ȳx x.y x.ȳ¯x ¯x.y ¯x.ȳCác ô vuông được gọi là kề nhau nếu các hội sơ cấp trong các ô đó chỉ khácnhau một tín hiệu (tức là tín hiệu có mặt trong hội sơ cấp này là x thì trong hộisơ cấp kia là ¯x, các biến khác giữ nguyên). Để rút gọn, ta dựa vào các ô có chứasố 1 kề nhau để rút gọn lại thành hội sơ cấp chỉ gồm một biến. Nếu tất cả bốn ôđều có số 1 thì có thể rút gọn bốn hội sơ cấp thành một giá trị 1.Ví dụ 3.4.3 Cho fpx, yq x.yhóa hàm boole trên.¯x.y. Hãy dùng bảng Karnaugh để tối tiểuLời giải: Bảng Karnaugh của hàm fpx, yq x.y¯x.y là:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 125


yx 1¯x 1ȳChương 3. Đại số BooleVì hai ô chứa số 1 kề nhau nên hai hội sơ cấp tương ứng là x.y và ¯x.y có thểtổ hợp được với nhau. Vậy ta có fpx, yq y.lVí dụ 3.4.4 Cho fpx, yq x.ȳ ¯x.y ¯x.ȳ. Hãy dùng bảng Karnaugh đểtối tiểu hóa hàm boole trên.Lời giải: Bảng Karnaugh của hàm fpx, yq x.ȳ ¯x.y ¯x.ȳ là:y ȳx 1¯x 1 1Vì ba ô chứa số 1 kề nhau nên tổ hợp các hội sơ cấp lại (theo chiều dọc được ȳ,theo chiều ngang được ¯x), ta có fpx, yq ¯x ȳ. lTrong trường hợp chỉ có hai ô chứa số một lại không kề nhau, hai hội sơ cấptương ứng không thể tổ hợp lại với nhau được và do vậy kết quả tối tiểu hóađành phải giữ nguyên cả hai hội sơ cấp. Ví dụ chẳng hạn ¯x.y x.ȳ không thểtổ hợp cho ta kết quả gọn hơn.Bảng Karnaugh để tối tiểu hóa hàm boole ba biếnBảng Karnaugh cho hàm boole ba biến là hình chữ nhật được chia làm támô (tương ứng với tám hội sơ cấp có thể có của ba biến) có dạng sau:x¯xy.z y.¯z ȳ.¯z ȳ.zHội sơ cấp nào có mặt trong dạng tuyển chuẩn tắc của hàm boole đã cho thì ôtương ứng với nó sẽ chứa số 1. Các bảng dưới đây sẽ thể hiện ví dụ đại diện chocác khối gồm một số chẵn các ô kề nhau trong bảng Karnaugh dành cho hàmboole ba biến (chú ý rằng bảng Karnaugh hoán vị vòng tròn tức là cột đầu củabảng cũng có thể coi là cột kế tiếp của cột cuối cùng) mà ta cần nhận dạng để tổhợp:y.z y.¯z ȳ.¯z ȳ.zx 1¯x 1ȳ.¯z x.ȳ.¯z ¯x.ȳ.¯z.126 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchy.z y.¯z ȳ.¯z ȳ.zx¯x 1 1¯x.z ¯x.y.z¯x.ȳ.z.y.z y.¯z ȳ.¯z ȳ.zx 1 1¯x 1 1¯z x.y.¯z x.ȳ.¯z ¯x.y.¯z ¯x.ȳ.¯z.y.z y.¯z ȳ.¯z ȳ.zx¯x 1 1 1 1¯x ¯x.y.z ¯x.y.¯z ¯x.ȳ.¯z ¯x.ȳ.z.y.z y.¯z ȳ.¯z ȳ.zx 1 1 1 1¯x 1 1 1 11 x.y.z x.y.¯z x.ȳ.¯z x.ȳ.z ¯x.y.z ¯x.y.¯z ¯x.ȳ.¯z ¯x.ȳ.z.Mục tiêu của chúng ta là phải nhận dạng các khối (gồm một số chẵn các ôchứa số 1 có chung biên giới với nhau có dạng trong các bảng nêu trên) cóthể lớn nhất trong bảng Karnaugh và phủ tất cả các ô chứa số 1 bằng mộtsố nhỏ nhất các khối mà trước hết là khối lớn nhất. Chú ý rằng không phảichỉ có một cách để làm được điều này.Ví dụ 3.4.5 Cho fpx, y, zq x.y.¯z x.ȳ.¯z ¯x.y.z ¯x.ȳ.¯z. Hãy tối tiểuhóa hàm boole trên bằng bảng Karnaugh.Lời giải: Bảng Karnaugh của hàm đã cho:y.z y.¯z ȳ.¯z ȳ.zx 1 1¯x 1 1Tổ hợp các ô mang giá trị 1 kề nhau theo hàng ngang thứ nhất ta được x.¯z. Tổhợp các ô mang giá trị 1 kề nhau theo hàng dọc ta được ȳ.¯z. Vậy khai triển tốitiểu hóa của hàm boole fpx, y, zq là x.¯z ȳ.¯z ¯x.y.z. lBộ môn Toán - ĐẠI HỌC THĂNG LONG 127


Chương 3. Đại số BooleVí dụ 3.4.6 Cho fpx, y, zq x.ȳ.z x.ȳ.¯z ¯x.y.z ¯x.ȳ.z ¯x.ȳ.¯z. Hãytối tiểu hóa hàm boole trên bằng bảng Karnaugh.Lời giải: Bảng Karnaugh của hàm đã cho:y.z y.¯z ȳ.¯z ȳ.zx 1 1¯x 1 1 1Tổ hợp khối bốn ô mang giá trị 1 liền nhau ta được ȳ. Tổ hợp hai ô mang giá trị1 kề nhau trên hàng ngang thứ hai (bảng Karnaugh hoán vị vòng tròn) ta được¯x.ȳ.z ¯x.y.z ¯x.z. Vậy khai triển tối tiểu hóa của hàm boole fpx, y, zqlà ¯x.z ȳ. lVí dụ 3.4.7 Cho fpx, y, zq x.y.z x.y.¯z x.ȳ.z x.ȳ.¯z ¯x.y.z¯x.ȳ.z ¯x.ȳ.¯z. Hãy tối tiểu hóa hàm boole trên bằng bảng Karnaugh.Lời giải: Bảng Karnaugh của hàm đã cho:y.z y.¯z ȳ.¯z ȳ.zx 1 1 1 1¯x 1 1 1Tổ hợp khối bốn ô cuối mang giá trị 1 liền nhau ta được ȳ. Tổ hợp bốn ô manggiá trị 1 kề nhau trên hàng ngang thứ nhất ta được x. Tổ hợp bốn ô mang giá trị1 trên cột đầu và cột cuối (nhớ rằng bảng Karnaugh hoán vị vòng tròn) ta đượcz. Ba khối vừa xét đã phủ hết tất cả các ô chứa số 1 trong bảng. Vậy khai triểntối tiểu hóa của hàm boole fpx, y, zq là x ȳ z. lBảng Karnaugh để tối tiểu hóa hàm boole bốn biếnTương tự như các bảng Karnaugh cho các hàm boole hai biến, ba biến, tacũng xây dựng được bảng Karnaugh cho hàm boole bốn biến. Đó là một hìnhvuông được chia thành 16 ô. Các ô này biểu diễn 16 hội sơ cấp có thể:y.z y.¯z ȳ.¯z ȳ.zw.x w.x.y.z w.x.y.¯z w.x.ȳ.¯z w.x.ȳ.zw.¯x w.¯x.y.z w.¯x.y.¯z w.¯x.ȳ.¯z w.¯x.ȳ.z¯w.¯x ¯w.¯x.y.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.¯z ¯w.¯x.ȳ.z¯w.x ¯w.x.y.z ¯w.x.y.¯z ¯w.x.ȳ.¯z ¯w.x.ȳ.z128 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchVà cũng như trên, các khối mà chúng ta cần nhận dạng sẽ gồm 2, 4, 8 hoặc 16ô chứa số 1 biểu diễn các hội sơ cấp mà ta có thể tổ hợp lại. Chẳng hạn như cáckhối trong một số trường hợp sau:y.z y.¯z ȳ.¯z ȳ.zw.xw.¯x 1 1¯w.¯x¯w.xw.¯x.z w.¯x.y.zw.¯x.ȳ.z.y.z y.¯z ȳ.¯z ȳ.zw.xw.¯x¯w.¯x 1 1 1 1¯w.x¯w.¯x ¯w.¯x.y.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.¯z ¯w.¯x.ȳ.z.y.z y.¯z ȳ.¯z ȳ.zw.x 1 1w.¯x¯w.¯x¯w.x 1 1x.z w.x.y.z w.x.ȳ.z ¯w.x.y.z ¯w.x.ȳ.z.y.z y.¯z ȳ.¯z ȳ.zw.x 1 1w.¯x 1 1¯w.¯x 1 1¯w.x 1 1¯z w.x.y.¯z w.x.ȳ.¯z w.¯x.y.¯z w.¯x.ȳ.¯z¯w.¯x.y.¯z ¯w.¯x.ȳ.¯z ¯w.x.y.¯z ¯w.x.ȳ.¯z.Mục tiêu mà chúng ta cần phải nhận dạng cũng giống như trường hợp hai, babiến là các khối lớn nhất có thể có chứa các số 1 trong bảng và phủ tất cả các số1 bằng cách dùng một số ít nhất các khối, mà trước hết là các khối lớn nhất.Ví dụ 3.4.8 Dùng các bảng Karnaugh để rút gọn các dạng tuyển chuẩn tắc sau:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 129


Chương 3. Đại số Boolea) w.x.y.z w.x.y.¯z w.x.ȳ.¯z w.¯x.y.z w.¯x.ȳ.z w.¯x.ȳ.¯z¯w.x.ȳ.z ¯w.¯x.y.z ¯w.¯x.y.¯z.b) w.x.ȳ.¯z w.¯x.y.z w.¯x.y.¯z w.¯x.ȳ.¯z ¯w.x.ȳ.¯z ¯w.¯x.y.¯z¯w.¯x.ȳ.¯z.c) w.x.y.¯z w.x.ȳ.¯z w.¯x.y.z w.¯x.y.¯z w.¯x.ȳ.¯z ¯w.x.y.z¯w.x.y.¯z ¯w.x.ȳ.¯z ¯w.x.ȳ.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.¯z.Lời giải:a) Bảng Karnaugh:y.z y.¯z ȳ.¯z ȳ.zw.x 1 1 1w.¯x 1 1 1¯w.¯x 1 1¯w.x 1Tổng cộng có tất cả 5 khối được nhận dạng: tổ hợp hai ô ở dòng một, cộtmột và dòng hai, cột một ta được w.y.z; tổ hợp hai ô ở dòng một, cột haivà dòng một, cột ba được w.x.¯z; tổ hợp hai ô ở dòng hai, cột ba và dònghai, cột bốn được w.¯x.ȳ; tổ hợp hai ô ở dòng ba, cột một và dòng ba, cộthai được ¯w.¯x.y; cuối cùng là ô ở dòng bốn, cột bốn ¯w.x.ȳ.z. Vậy tốitiểu thu được là: w.y.z w.x.¯z w.¯x.ȳ ¯w.¯x.y ¯w.x.ȳ.z.b) Bảng Karnaugh:y.z y.¯z ȳ.¯z ȳ.zw.x 1w.¯x 1 1 1¯w.¯x 1 1¯w.x 1Tổng cộng có tất cả 3 khối được nhận dạng: tổ hợp hai ô ở dòng hai,cột một và dòng hai, cột hai ta được w.¯x.y; tổ hợp hai ô ở cột haiđược ¯x.y.¯z; tổ hợp bốn ô ở cột ba được ȳ.¯z. Vậy tối tiểu thu được là:w.¯x.y ¯x.y.¯z ȳ.¯z.c) Bảng Karnaugh:130 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchy.z y.¯z ȳ.¯z ȳ.zw.x 1 1w.¯x 1 1 1¯w.¯x 1 1¯w.x 1 1 1 1Tổng cộng có tất cả 3 khối được nhận dạng: tổ hợp hai ô ở dòng hai, cộtmột và dòng hai, cột hai ta được w.¯x.y; tổ hợp tám ô ở cột hai và cột bađược ¯z; tổ hợp bốn ô ở dòng bốn được ¯w.x. Vậy tối tiểu thu được là:w.¯x.y ¯z ¯w.x.lPhương pháp Quine - McCluskeyChúng ta đã thấy rằng các bảng Karnaugh có thể được dùng để tạo biểu thứctối tiểu của các hàm boole (chẳng hạn dạng tuyển chuẩn tắc). Tuy nhiên cácbảng Karnaugh sẽ rất khó dùng khi số biến lớn hơn bốn. Hơn nữa, việc dùngbảng Karnaugh lại dựa trên việc rà soát trực quan để nhận dạng các hội sơ cấpcần được tổ hợp lại. Vì những nguyên nhân đó, cần có một thuật toán tối tiểudạng tuyển chuẩn tắc có thể được cài đặt một cách dễ dàng. Phương pháp Quine- McCluskey là một thuật toán như vậy. Nó có thể được dùng cho hàm boolevới số biến bất kì. Phương pháp này được W.V.Quine và E.J.McCluskey conphát triển vào những năm 1950. Về cơ bản, phương pháp Quine - McCluskeycó hai phần. Phần đầu là tìm những hội sơ cấp là ứng viên để đưa vào khai triểntối tiểu như một tổng các tích boole. Phần thứ hai là xác định xem trong số cácứng viên đó, ứng viên nào thực sự cần.Dưới đây chúng ta sẽ xét một ví dụ để minh họa phương pháp này.Ví dụ 3.4.9 Sử dụng phương pháp Quine - McCluskey để tìm biểu thức tối tiểutương đương với:x.y.z x.ȳ.z ¯x.y.z ¯x.ȳ.z ¯x.ȳ.¯z.Lời giải: Biểu diễn các hội sơ cấp trong khai triển trên bằng những xâu bit độdài ba. Giả sử rằng các hội sơ cấp đã cho được viết dưới dạng tích các tín hiệuxuất hiện theo thứ tự x, y, z. Bit đầu tiên bằng 1 nếu tín hiệu đầu trong hội sơcấp là x và bằng 0 nếu tín hiệu đầu là ¯x. Bit thứ hai bằng 1 nếu tín hiệu thứ haitrong hội sơ cấp là y và bằng 0 nếu tín hiệu thứ hai là ȳ. Tương tự, bit thứ babằng 1 nếu tín hiệu thứ ba trong hội sơ cấp là z và bằng 0 nếu tín hiệu thứ ba làBộ môn Toán - ĐẠI HỌC THĂNG LONG 131


Chương 3. Đại số Boole¯z. Sau đó chúng ta sẽ nhóm các hội sơ cấp theo số các bit 1 trong các xâu bittương ứng:Hội sơ cấp Xâu bit Số các bit 1x.y.z 111 3x.ȳ.z 101 2¯x.y.z 011 2¯x.ȳ.z 001 1¯x.ȳ.¯z 000 0Các hội sơ cấp chỉ khác nhau đúng một tín hiệu có thể được tổ hợp lại để tạonhững tích boole mới (tương đương). Do vậy, hai tích boole có thể được tổ hợpnếu xâu bit tương ứng biểu diễn chúng sẽ chỉ khác nhau một bit tại cùng vị trí.Khi hai tích boole (chứa ba tín hiệu) tổ hợp lại với nhau thành một tích boolemới thì tích mới này sẽ chỉ chứa hai tín hiệu và tích này được biểu bằng một xâucó dấu gạch ngang nằm vào vị trí tín hiệu thiếu. Chẳng hạn x.ȳ.z và ¯x.ȳ.zđược biểu diễn bằng các xâu bit 101 và 001 có thể được tổ hợp lại thành ȳ.zđược biểu diễn bằng xâu 01. Cứ tổ hợp như vậy cho đến khi không còn làmđược nữa, ta có bảng các bước tiến hành như sau:Bước 1 Bước 2Tích Tích Tích1: x.y.z (111) p1, 2q: x.z (1 1) p1, 2, 3, 4q: z ( 1)2: x.ȳ.z (101) p1, 3q: y.z (11)3: ¯x.y.z (011) p2, 4q: ȳ.z (01)4: ¯x.ȳ.z (001) p3, 4q: ¯x.z (0 1)5: ¯x.ȳ.¯z (000) p4, 5q: ¯x.ȳ (00)Trong bảng trên ta cũng chỉ ra những tích đã được dùng để tạo ra những tíchcó số tín hiệu nhỏ hơn nhưng không nhất thiết có mặt trong biểu thức tối tiểu.Bước tiếp theo là nhận dạng tập cực tiểu các tích cần thiết để biểu diễn hàmboole. Chúng ta sẽ xem xét tất cả các tích còn lại sau cùng (chưa được sử dụngđể tổ hợp). Trong ví dụ này, những tích như thế là z và ¯x.ȳ. Chúng ta sẽ lậpbảng tiếp theo, các dòng tương ứng với các tích cần xem xét và các cột tươngứng với các hội sơ cấp ban đầu. Chúng ta sẽ đánh dấu nhân () ở ô mà tươngứng với cột là hội sơ cấp đã được dùng để tạo ra tích tương ứng với dòng đó.Trong trường hợp này ta nói tích ứng viên đã phủ hội sơ cấp gốc. Chúng ta cầnphải lấy tổng của ít tích ứng viên nhất mà vẫn phủ được toàn bộ các hội sơ cấpban đầu.132 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchx.y.z x.ȳ.z ¯x.y.z ¯x.ȳ.z ¯x.ȳ.¯zz ¯x.ȳ Từ bảng trên ta thấy cả z và ¯x.ȳ đều là cần thiết. Vậy kết quả cuối cùng làz ¯x.ȳ. lTừ ví dụ trên, ta có trình tự sau để tối tiểu một dạng tuyển chuẩn tắc:1. Biểu diễn mỗi hội sơ cấp chứa n tín hiệu bằng một xâu bit độ dài n với bit 1ở vị trí thứ i nếu tín hiệu x i xuất hiện và bit 0 ở vị trí thứ i nếu tín hiệu x ixuất hiện.2. Nhóm các xâu bit theo số các bit 1 trong chúng để có thể dễ dàng trong việctổ hợp các tích.3. Xác định tất cả các tích chứa n 1 tín hiệu có thể tạo thành bằng cách lấytổng boole những tích có thể tổ hợp. Những tích có thể tổ hợp là nhữngtích được biểu diễn bằng những xâu bit chỉ khác nhau đúng một vị trí. Biểudiễn những tích chứa n 1 tín hiệu này bằng các xâu chứa 1 ở vị trí thứi nếu x i xuất hiện trong tích, 0 ở vị trí thứ i nếu x i xuất hiện trong tíchvà dấu gạch ngang nếu không có tín hiệu nào liên quan đến x i xuất hiệntrong tích.4. Tiếp tục xác định tất cả các tích chứa n 2 tín hiệu có thể được tạo thànhbằng cách tổ hợp những tích chứa n 1 biến đã tìm được ở bước trước.Những tích có chứa n 1 tín hiệu có thể tổ hợp được nếu những xâu biểudiễn chúng có dấu gạch ngang ở cùng vị trí và khác nhau chỉ ở đúng mộtvị trí.5. Tiếp tục tổ hợp các tích boole thành các tích có số biến ít hơn. Quá trình nàykhông thể kéo dài mãi vì số tín hiệu trong một tích boole chúng ta xét làhữu hạn.6. Tìm tất cả các tích boole xuất hiện nhưng không được dùng để tập tích boolevới số tín hiệu nhỏ hơn.7. Tìm tập nhỏ nhất các tích boole trong tập các tích boole tìm được ở bướctrước sao cho tổng các tích này biểu diễn hàm boole đã cho ban đầu. Điềunày làm được bằng cách lập bảng chỉ rõ các hội sơ cấp nào đã được phủbởi các tích nào. Mỗi hội sơ cấp phải được phủ bởi ít nhất một tích (tronglập trình, ta sử dụng quay lui để cài đặt).Bộ môn Toán - ĐẠI HỌC THĂNG LONG 133


Chương 3. Đại số BooleVí dụ 3.4.10 Dùng phương pháp Quine - McCluskey để tối tiểu dạng tuyểnchuẩn tắc sau:w.x.y.¯z w.¯x.y.z w.¯x.y.¯z ¯w.x.y.z ¯w.x.ȳ.z ¯w.¯x.y.z ¯w.¯x.ȳ.z.Lời giải: Biểu diễn các hội sơ cấp bằng các xâu bit, ta có bảng sau:Tích Xâu bit Số các bit 1w.x.y.¯z 1110 3w.¯x.y.z 1011 3¯w.x.y.z 0111 3w.¯x.y.¯z 1010 2¯w.x.ȳ.z 0101 2¯w.¯x.y.z 0011 2¯w.¯x.ȳ.z. 0001 1Tổ hợp các tích ban đầu, qua các bước ta có bảng sau:Bước 1 Bước 2Tích Tích Tích1: w.x.y.¯z (1110) p1, 4q: w.y.¯z (1 10) p3, 5, 6, 7q: ¯w.z (0 1)2: w.¯x.y.z (1011) p2, 4q: w.¯x.y (101)3: ¯w.x.y.z (0111) p2, 6q: ¯x.y.z (011)4: w.¯x.y.¯z (1010) p3, 5q: ¯w.x.z (01 1)5: ¯w.x.ȳ.z (0101) p3, 6q: ¯w.y.z (0 11)6: ¯w.¯x.y.z (0011) p5, 7q: ¯w.ȳ.z (0 01)7: ¯w.¯x.ȳ.z (0001) p6, 7q: ¯w.¯x.z (00 1)Tập các tích boole không được dùng tiếp để tạo ra tích có ít tín hiệu hơn là:¯w.z, w.y.¯z, w.¯x.y, ¯x.y.z. Ta lại lập bảng sau để xét xem các hội sơ cấp banđầu bị phủ bởi tập các tích nào trong số những tích trên:w.x.y.¯z w.¯x.y.z ¯w.x.y.z w.¯x.y.¯z ¯w.x.ȳ.z ¯w.¯x.y.z ¯w.¯x.ȳ.z¯w.z w.y.¯z w.¯x.y ¯x.y.z Từ bảng trên ta thấy bắt buộc phải có ít nhất hai tích ¯w.z và w.y.¯z vì các tíchnày là những tích duy nhất phủ ¯w.x.y.z và w.x.y.¯z tương ứng. Một khi đãcó hai tích nói trên thì chỉ cần thêm một trong hai tích còn lại là được. Vậy kếtquả là ¯w.z w.y.¯z w.¯x.y hoặc ¯w.z w.y.¯z ¯x.y.z. lBài tập IIIIII.1. Tìm giá trị của những biểu thức sau:134 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạcha) 1.¯0.b) 1 ¯1.c) ¯0.0.d) 1 0.III.2. Tìm giá trị (nếu có) của biến boole x thỏa mãn những phương trình sau:a) x.1 0.b) x x 0.c) x.1 x.d) x.¯x 1.III.3. Tìm giá trị của biến boole x và y thỏa mãn phương trình x.y x y.III.4. Có bao nhiêu hàm boole 7 biến khác nhau?III.5. Chứng minh rằng F px, y, zq x.y x.z y.z có giá trị 1 nếu và chỉnếu ít nhất hai trong số các biến x, y, z có giá trị 1.III.6. Chứng minh rằng x.ȳ y.¯z ¯x.z ¯x.y ȳ.z x.¯z với x, y, z làcác biến boole.III.7. Tìm đối ngẫu của những biểu thức sau:a) x y.b) ¯x.ȳ.c) x.y.z ¯x.ȳ.¯z.d) x.¯z x.0 ¯x.1.III.8. Cho F là hàm boole được biểu diễn bởi một biểu thức boole với các biếnx 1 , x 2 , . . . , x n . Chứng minh rằng:F d px 1 , x 2 , . . . , x n q F px 1 , x 2 , . . . , x n q.III.9. Chứng minh rằng nếu F và G là các hàm boole được biểu diễn bởi cácbiểu thức boole n biến và F G thì F d G d với F d và G d là các hàm booleđược biểu diễn bởi đối ngẫu của các biểu thức boole biểu diễn các hàm F và Gtương ứng.III.10. Có bao nhiêu hàm boole F px, y, zq khác nhau sao cho F p¯x, ȳ, ¯zq F px, y, zq đối với mọi giá trị của các biến boole x, y, z?III.11. Có bao nhiêu hàm boole F px, y, zq khác nhau sao cho F p¯x, y, zq F px, ȳ, zq F px, y, ¯zq đối với mọi giá trị của các biến boole x, y, z?III.12. Chứng minh rằng trong một đại số boole, mọi phần tử x đều có đúngmột phần bù ¯x sao cho x ¯x 1 và x.¯x 0.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 135


Chương 3. Đại số BooleIII.13. Chứng minh rằng trong một đại số boole, phần bù của phần tử 0 là phầntử 1 và ngược lại.III.14. Tìm tích boole của x hoặc ¯x, y hoặc ȳ, z hoặc ¯z, biết rằng tích đó cógiá trị 1 nếu và chỉ nếu:a) x y 0, z 1.b) x 0, y 1, z 0.c) x 0, y z 1.d) x y z 0.III.15. Tìm dạng tuyển chuẩn tắc của các hàm boole sau:a) F px, yq ¯x y.b) F px, yq x.ȳ.c) F px, yq 1.d) F px, yq ȳ.e) F px, y, zq x y z.f) F px, y, zq px zq.y.g) F px, y, zq x.ȳ.III.16. Tìm dạng tuyển chuẩn tắc của hàm boole F px, y, zq biết rằng F 1nếu và chỉ nếu:a) x 0.b) x.y 0.c) x y 0.d) x.y.z 0.III.17. Tìm dạng tuyển chuẩn tắc của hàm boole F px, y, z, wq biết rằngF 1 nếu và chỉ nếu một số lẻ những giá trị trong những giá trị x, y, z, wbằng 1.III.18. Tìm dạng tuyển chuẩn tắc của hàm boole F px 1 , x 2 , x 3 , x 4 , x 5 q biếtrằng F 1 nếu và chỉ nếu ba hoặc nhiều hơn những giá trị trong những giá trịx 1 , x 2 , x 3 , x 4 , x 5 có giá trị 1.III.19. Tìm tổng boole chứa x hoặc ¯x, y hoặc ȳ, z hoặc ¯z có giá trị 0 nếu vàchỉ nếu:a) x y 1, z 0.b) x y z 0.c) x z 0, y 1.136 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchIII.20. Tìm tích boole các tổng boole của các tín hiệu, biết rằng tích đó có giátrị 0 nếu và chỉ nếu x y 1 và z 0 hoặc x z 0 và y 1 hoặcx y z 0.III.21. Chứng minh rằng tổng y 1 y 2 . . . y n trong đó y i x i hoặcy i x i có giá trị 0 đối với chỉ một tổ hợp giá trị của các biến, cụ thể là khix i 0 nếu y i x i và x i 1 nếu y i x i . Tổng boole này được gọi là mộttuyển sơ cấp.III.22. Chứng minh rằng một hàm boole luôn có thể được biểu diễn dưới dạngtích boole của các tuyển sơ cấp. Biểu diễn này được gọi là khai triển tích cáctổng hay dạng hội chuẩn tắc của hàm đó.III.23. Tìm dạng hội chuẩn tắc của các hàm boole sau:a) F px, yq ¯x y.b) F px, yq x.ȳ.c) F px, yq 1.d) F px, yq ȳ.e) F px, y, zq x y z.f) F px, y, zq px zq.y.g) F px, y, zq x.ȳ.III.24. Biểu diễn các hàm boole sau bằng cách chỉ dùng toán tử tích boole vàtoán tử lấy phần bù:a) x y z.b) x ȳ.p¯x zq.c) x ȳ.d) ¯x.px ȳ ¯zq.III.25. Biểu diễn các hàm boole sau bằng cách chỉ dùng toán tử tổng boole vàtoán tử lấy phần bù:a) x y z.b) x ȳ.p¯x zq.c) x ȳ.d) ¯x.px ȳ ¯zq.III.26. Chứng minh rằng:a) ¯x x|x.b) x.y px|yq|px|yq.c) x y px|xq|py|yq.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 137


Chương 3. Đại số BooleIII.27. Chứng minh rằng:a) ¯x x Ó x.b) x.y px Ó xq Ó py Ó yq.c) x y px Ó yq Ó px Ó yq.III.28. Biểu diễn các hàm boole sau bằng cách chỉ dùng toán tử “|”:a) x y z.b) x ȳ.p¯x zq.c) x ȳ.d) ¯x.px ȳ ¯zq.III.29. Biểu diễn các hàm boole sau bằng cách chỉ dùng toán tử “Ó”:a) x y z.b) x ȳ.p¯x zq.c) x ȳ.d) ¯x.px ȳ ¯zq.III.30. Chứng minh rằng tập các phép toán t, .u không phải là một hệ đầy đủ.III.31. Hãy kiểm tra những tập sau xem có phải là hệ đầy đủ không:a) t , `u. b) t¯, `u. c) t., `u.III.32. Hãy tìm đầu ra của mạch:III.33. Hãy tìm đầu ra của mạch:138 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchIII.34. Hãy tìm đầu ra của mạch:III.35. Hãy tìm đầu ra của mạch:III.36. Hãy tìm đầu ra của mạch:III.37. Dựng các mạch gồm các bộ đảo, các cổng AND và OR để tạo cácđầu ra sau:Bộ môn Toán - ĐẠI HỌC THĂNG LONG 139


Chương 3. Đại số Boolea) ¯x y.b) px yq.x.c) x.y.z ¯x.ȳ.¯z.d) p¯x zq.py ¯zq.III.38. Hãy thiết kế một mạch thực hiện sự bỏ phiếu theo đa số cho năm thànhviên.III.39. Hãy dùng các cổng NAND xây dựng các mạch với các đầu ra nhưsau:a) ¯x.b) x y.c) x.y.d) x ` y.III.40. Hãy dùng các cổng NOR xây dựng các mạch với các đầu ra như sau:a) ¯x.b) x y.c) x.y.d) x ` y.III.41. Vẽ bảng Karnaugh đối với một hàm hai biến và ghi số 1 vào ô biểu diễn¯x.y. Các hội sơ cấp nào được biểu diễn bởi các ô kề với ô nói trên?III.42. Tìm khai triển dạng tuyển chuẩn tắc được biểu diễn bởi các bảngKarnaugh sau:a)y ȳx 1¯x 1 1c)y ȳx 1 1¯x 1 1b)y ȳx 1 1¯xIII.43. Vẽ các bảng Karnaugh của những khai triển tổng các tích hai biến sauvà tìm khai triển tối tiểu của chúng:a) x.ȳ.b) x.y ¯x.ȳ.c) x.y x.ȳ ¯x.y ¯x.ȳ.d) ¯x.y ¯x.ȳ.e) x.y x.ȳ.140 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchIII.44. Vẽ bảng Karnaugh đối với một hàm ba biến và ghi số 1 vào ô biểu diễn¯x.y.¯z. Các hội sơ cấp nào được biểu diễn bởi các ô kề với ô nói trên?III.45. Dùng bảng Karnaugh tìm khai triển tối tiểu của các biểu thức boole sau:a) x.y.z ¯x.y.z.b) x.y.¯z x.ȳ.¯z ¯x.y.¯z ¯x.ȳ.¯z.c) ¯x.y.z.rpx ¯zq pȳ ¯zqs.III.46. Vẽ các bảng Karnaugh của những khai triển tổng các tích boole ba biếnsau:a) x.ȳ.¯z.b) ¯x.y.z ¯x.ȳ.¯z.c) x.y.z x.y.¯z ¯x.y.¯z ¯x.ȳ.z.III.47. Dùng bảng Karnaugh tìm khai triển tối tiểu của các hàm boole ba biếnsau:a) ¯x.y.z ¯x.ȳ.z.b) x.y.z x.y.¯z ¯x.y.z ¯x.y.¯z.c) x.y.¯z x.ȳ.z x.ȳ.¯z ¯x.y.z ¯x.ȳ.z.d) x.y.z x.ȳ.z x.ȳ.¯z ¯x.y.z ¯x.y.¯z ¯x.ȳ.¯z.III.48. Vẽ bảng Karnaugh đối với một hàm bốn biến và ghi số 1 vào ô biểudiễn ¯w.x.y.¯z. Các hội sơ cấp nào được biểu diễn bởi các ô kề với ô nói trên?III.49. Dùng bảng Karnaugh tìm khai triển tối tiểu của các hàm boole bốn biếnsau:a) w.x.y.z w.x.ȳ.z w.x.ȳ.¯z w.¯x.y.¯z w.¯x.ȳ.z.b) w.x.y.¯z w.x.ȳ.z w.¯x.y.z ¯w.x.ȳ.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.z.c) w.x.y.z w.x.y.¯z w.x.ȳ.z w.¯x.ȳ.z w.¯x.ȳ.¯z ¯w.x.ȳ.z¯w.¯x.y.¯z ¯w.¯x.ȳ.z.d) w.x.y.z w.x.y.¯z w.x.ȳ.z w.¯x.y.z w.¯x.y.¯z ¯w.x.y.z¯w.¯x.y.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.z.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 141


Chương 3. Đại số BooleIII.50. Giả sử một ủy ban có năm thành viên, nhưng Dân và Minh luôn bỏphiếu ngược với Phong. Hãy thiết kế một mạch thực hiện việc bỏ phiếu theo đasố của ủy ban đó, có dùng đến quan hệ nói trên giữa các lá phiếu.III.51. Dùng phương pháp Quine - McCluskey tìm khai triển tối tiểu của cáchàm boole ba biến sau:a) ¯x.y.z ¯x.ȳ.z.b) x.y.z x.y.¯z ¯x.y.z ¯x.y.¯z.c) x.y.¯z x.ȳ.z x.ȳ.¯z ¯x.y.z ¯x.ȳ.z.d) x.y.z x.ȳ.z x.ȳ.¯z ¯x.y.z ¯x.y.¯z ¯x.ȳ.¯z.III.52. Dùng phương pháp Quine - McCluskey tìm khai triển tối tiểu của cáchàm boole bốn biến sau:a) w.x.y.z w.x.y.¯z w.x.ȳ.¯z w.¯x.y.z w.¯x.ȳ.z w.¯x.ȳ.¯z¯w.x.ȳ.z ¯w.¯x.y.z ¯w.¯x.y.¯z.b) w.x.ȳ.¯z w.¯x.y.z w.¯x.y.¯z w.¯x.ȳ.¯z ¯w.x.ȳ.¯z ¯w.¯x.y.¯z¯w.¯x.ȳ.¯z.c) w.x.y.¯z w.x.ȳ.¯z w.¯x.y.z w.¯x.y.¯z w.¯x.ȳ.¯z ¯w.x.y.z¯w.x.y.¯z ¯w.x.ȳ.¯z ¯w.x.ȳ.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.¯z.III.53. Dùng phương pháp Quine - McCluskey tìm khai triển tối tiểu của cáchàm boole bốn biến sau:a) w.x.y.z w.x.ȳ.z w.x.ȳ.¯z w.¯x.y.¯z w.¯x.ȳ.z.b) w.x.y.¯z w.x.ȳ.z w.¯x.y.z ¯w.x.ȳ.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.z.c) w.x.y.z w.x.y.¯z w.x.ȳ.z w.¯x.ȳ.z w.¯x.ȳ.¯z ¯w.x.ȳ.z¯w.¯x.y.¯z ¯w.¯x.ȳ.z.d) w.x.y.z w.x.y.¯z w.x.ȳ.z w.¯x.y.z w.¯x.y.¯z ¯w.x.y.z¯w.¯x.y.z ¯w.¯x.y.¯z ¯w.¯x.ȳ.z.III.54. Hãy giải thích làm thế nào có thể dùng các bản đồ Karnaugh để rút gọnkhai triển tích boole các tổng boole ba biến. (Gợi ý: Đánh dấu các ô tương ứngvới các tuyển sơ cấp trong khai triển và tổ hợp các khối của các tuyển sơ cấp.)142 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


3.4. Cực tiểu hóa các mạchIII.55. Dùng phương pháp ở bài tập trên, hãy rút gọn khai triển tích các tổngpx y zq.px y ¯zq.px ȳ zq.px ȳ ¯zq.p¯x y zq.III.56. Dùng các cổng OR, AND và các bộ đảo để dựng một mạch cho đầura bằng 1 nếu chữ số thập phân được mã hóa nhị phân chia hết cho 3 và bằng 0trong các trường hợp còn lại.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 143


Tài liệu tham khảo[1] Kenneth H. Rosen, Toán rời rạc ứng dụng trong Tin học, NXB Khoa họcvà kỹ thuật, Hà Nội, 1998.[2] Nguyễn Tô Thành, Nguyễn Đức Nghĩa, Toán rời rạc, NXB Đại học QuốcGia Hà Nội, 2001.[3] Hà Huy Khoái, Nhập môn Số học Thuật toán, NXB Khoa học, Hà Nội,1997.[4] Phạm Huy Điển, Hà Huy Khoái, Mã hóa Thông tin - Cơ sở Toán học vàỨng dụng, Bộ sách Toán cao cấp - Viện Toán học, NXB Đại học QuốcGia Hà Nội, 2004.[5] Nguyễn Hữu Hoan, Số học phổ thông, NXB Đại học và Trung học chuyênnghiệp, Hà Nội, 1986.[6] Nguyễn Hữu Việt Hưng, Đại số đại cương, NXB Giáo Dục, 1998.[7] Nguyễn Hữu Điển, Một số vấn đề về Thuật toán, NXB Giáo Dục, 2006.


Chỉ mụcSymbolsđại số boole . . . . . . . . . . . . . . . . . . . . 113đại số boole t0, 1u . . . . . . . . . . . . . . 113đại số boole logic mệnh đề . . . . . . . 113đại số boole tập hợp . . . . . . . . . . . . . 113đặc số của trường . . . . . . . . . . . . . . . . 48định lí Euler . . . . . . . . . . . . . . . . . . . . . 36định lí Fermat nhỏ. . . . . . . . . . . . . . . .36định lí Trung Hoa về phần dư . . . . . 43định lí biểu diễn đa thức ước chung lớnnhất . . . . . . . . . . . . . . . . . . . . . . 52định lí cơ bản của số học . . . . . . . . . . 16định lí cơ bản cho phân tích thuật toán99định lí khai triển theo hệ cơ số . . . . . 37định nghĩa đệ qui của dãy . . . . . . . . . 74định nghĩa hàm bằng đệ qui . . . . . . . 67định nghĩa tập hợp bằng đệ qui . . . . 71đối ngẫu của biểu thức boole . . . . . 117đồng dư . . . . . . . . . . . . . . . . . . . . . . . . . 30đồng dư thức . . . . . . . . . . . . . . . . . . . . 30độ phức tạp của thuật toán . . . . . . . . 92đa thức ước . . . . . . . . . . . . . . . . . . . . . .51đa thức ước chung. . . . . . . . . . . . . . . .51đa thức ước chung lớn nhất. . . . . . . .51đa thức bất khả qui . . . . . . . . . . . . . . . 51đa thức bội . . . . . . . . . . . . . . . . . . . . . . 51đa thức dư . . . . . . . . . . . . . . . . . . . . . . . 50đa thức nguyên tố cùng nhau . . . . . . 51đa thức thương. . . . . . . . . . . . . . . . . . .50đa thức với hệ số trên trường . . . . . . 50điều kiện đầu . . . . . . . . . . . . . . . . . . . . 74ước chung . . . . . . . . . . . . . . . . . . . . . . . 18ước chung lớn nhất . . . . . . . . . . . . . . . 18ước nguyên tố . . . . . . . . . . . . . . . . . . . 17ước số . . . . . . . . . . . . . . . . . . . . . . . . . . 13Bbài toán Hàn Tín điểm binh . . . . . . . 43bài toán tháp Hà Nội . . . . . . . . . . . . . 77bảng Karnaugh cho hàm boole bốn biến128bảng Karnaugh cho hàm boole ba biến126bảng Karnaugh cho hàm boole hai biến125bậc của đa thức . . . . . . . . . . . . . . . . . . 50bộ đảo . . . . . . . . . . . . . . . . . . . . . . . . . 120bội chung . . . . . . . . . . . . . . . . . . . . . . . 25bội chung nhỏ nhất . . . . . . . . . . . . . . . 25bội số . . . . . . . . . . . . . . . . . . . . . . . . . . . 13biến boole . . . . . . . . . . . . . . . . . . . . . . 115biểu diễn ước chung lớn nhất . . . . . . 20biểu diễn hàm boole . . . . . . . . . . . . . 117biểu thức boole . . . . . . . . . . . . . . . . . 116Ccách tìm ước chung lớn nhất . . . . . . 22cách tìm bội chung nhỏ nhất. . . . . . .27công thức tường minh của số Fibonacci83cấp của phần tử trong trường hữu hạn49145


Chỉ mụccấu hình tổ hợp . . . . . . . . . . . . . . . . . . . 6cổng AND . . . . . . . . . . . . . . . . . . . . . 121cổng logic . . . . . . . . . . . . . . . . . . . . . . 120cổng NAND . . . . . . . . . . . . . . . . . . . . 121cổng NOR . . . . . . . . . . . . . . . . . . . . . 121cổng OR . . . . . . . . . . . . . . . . . . . . . . . 121cổng XOR . . . . . . . . . . . . . . . . . . . . . 121cực tiểu hóa các mạch . . . . . . . . . . . 123chia hết . . . . . . . . . . . . . . . . . . . . . . . . . 13chia hết cho . . . . . . . . . . . . . . . . . . . . . 13chia hết cho đa thức . . . . . . . . . . . . . . 51Ddãy số Fibonacci . . . . . . . . . . . . . . . . . 70dạng hội chuẩn tắc . . . . . . . . . . . . . . 119dạng khai triển tích các tổng . . . . . 119dạng khai triển tổng các tích . . . . . 119dạng tuyển chuẩn tắc . . . . . . . . . . . . 119Ggiải hệ thức truy hồi . . . . . . . . . . . . . . 79Hhàm đối ngẫu của một hàm boole . 117hàm băm . . . . . . . . . . . . . . . . . . . . . . . . 39hàm boole n biến . . . . . . . . . . . . . . . 115hàm boole được cho dưới dạng bảng116hàm boole được cho dưới dạng biểuthức boole . . . . . . . . . . . . . . . 116hằng đẳng thức boole . . . . . . . . . . . .113hệ đầy đủ . . . . . . . . . . . . . . . . . . . . . . 120hệ mã mật Caesar . . . . . . . . . . . . . . . . 41hệ thức truy hồi . . . . . . . . . . . . . . . . . . 74hệ thức truy hồi tuyến tính không thuầnnhất hệ số hằng . . . . . . . . . . . . 89hệ thức truy hồi tuyến tính thuần nhấthệ số hằng số . . . . . . . . . . . . . . 79hội sơ cấp n biến . . . . . . . . . . . . . . . 119hợp số . . . . . . . . . . . . . . . . . . . . . . . . . . 16hai biểu thức boole tương đương vớinhau . . . . . . . . . . . . . . . . . . . . 116hai hàm boole bằng nhau . . . . . . . . 116Kkhông chia hết cho . . . . . . . . . . . . . . . 13khai triểnbát phân . . . . . . . . . . . . . . . . . . . . . 37Cantor . . . . . . . . . . . . . . . . . . . . . . . 11nhị phân . . . . . . . . . . . . . . . . . . . . . 37thập lục phân . . . . . . . . . . . . . . . . . 37theo hệ cơ số . . . . . . . . . . . . . . . . . 36khai triển tổng các tích . . . . . . . . . . 118khai triển thành tích các đa thức bất khảqui . . . . . . . . . . . . . . . . . . . . . . . 51Llớp các số nguyên đồng dư theo modulom . . . . . . . . . . . . . . . . . . . . . . . . 33lời giải của hệ thức truy hồi . . . . . . . 74liệt kê hoán vị. . . . . . . . . . . . . . . . . . . . .7liệt kê tập con. . . . . . . . . . . . . . . . . . . .10liệt kê tổ hợp . . . . . . . . . . . . . . . . . . . . 10liệt kê xâu nhị phân. . . . . . . . . . . . . . . .9luật đồng nhất . . . . . . . . . . . . . . . . . . 114luật bài trung . . . . . . . . . . . . . . . . . . . 114luật De Morgan . . . . . . . . . . . . . . . . . 114luật giao hoán . . . . . . . . . . . . . . 113, 114luật hấp thụ. . . . . . . . . . . . . . . . . . . . .114luật kết hợp . . . . . . . . . . . . . . . . 113, 114luật lũy đẳng . . . . . . . . . . . . . . . . . . . 114luật nuốt . . . . . . . . . . . . . . . . . . . . . . . 114luật phân phối . . . . . . . . . . . . . . 113, 114luật phần bù kép . . . . . . . . . . . . . . . . 114Mmô hình hóa bằng hệ thức truy hồi . 75mạch bỏ phiếu theo đa số . . . . . . . . 122mạch logic . . . . . . . . . . . . . . . . . . . . . 120mạch tổ hợp . . . . . . . . . . . . . . . . . . . . 120146 Bộ môn Toán - ĐẠI HỌC THĂNG LONG


Chỉ mụcNnghiệm đặc trưng . . . . . . . . . . . . . . . . 80nghiệm của hệ thức truy hồi . . . . . . . 74nghiệm riêng . . . . . . . . . . . . . . . . . . . . 89nguyên lí đối ngẫu . . . . . . . . . . . . . . 117nguyên lí bù trừ . . . . . . . . . . . . . . . . . . 66nguyên tố cùng nhau . . . . . . . . . . . . . 18từng đôi một. . . . . . . . . . . . . . . . . .19nhân tính của phi hàm Euler . . . . . . . 35Pphép tính số học theo modulo m. . .33phép toán boole . . . . . . . . . . . . . . . . . 113phép toán hai ngôi . . . . . . . . . . . . . . 112phép toán lấy phần bù . . . . . . . . . . . 113phép toán một ngôi. . . . . . . . . . . . . .113phép toán NAND . . . . . . . . . . . . . . . 120phép toán NOR . . . . . . . . . . . . . . . . . 120phương pháp lặp . . . . . . . . . . . . . . . . . 78phương pháp sinh . . . . . . . . . . . . . . . . . 7phương trình đặc trưng . . . . . . . . . . . 80phương trình đồng dư tuyến tính . . . 41phần bù . . . . . . . . . . . . . . . . . . . . . . . . 113phần tử nghịch đảo theo modulo m 34phần tử nguyên thủy . . . . . . . . . . . . . . 49phi hàm Euler . . . . . . . . . . . . . . . . . . . 34Ssàng Erastothenes . . . . . . . . . . . . . . . . 17số bị chia . . . . . . . . . . . . . . . . . . . . . . . . 15số chia . . . . . . . . . . . . . . . . . . . . . . . . . . 15số dư . . . . . . . . . . . . . . . . . . . . . . . . . . . 15số giả ngẫu nhiên . . . . . . . . . . . . . . . . 40số lượng các hàm boole n biến . . . 117số nguyên . . . . . . . . . . . . . . . . . . . . . . . 12số nguyên tố . . . . . . . . . . . . . . . . . . . . . 16số tự nhiên . . . . . . . . . . . . . . . . . . . . . . 12Ttích boole phủ hội sơ cấp . . . . . . . . 132tín hiệu . . . . . . . . . . . . . . . . . . . . . . . . 118tính chất của đồng dư thức . . . . . . . . 30tính chất của ước chung lớn nhất. . .21tính chất của bội chung nhỏ nhất . . . 26tính chất của trường . . . . . . . . . . . . . . 45tính chất chia hết . . . . . . . . . . . . . . . . . 14tính chất modular . . . . . . . . . . . . . . . 117tính duy nhất của 0 và 1 . . . . . . . . . 114tính duy nhất của phần bù . . . . . . . . 114tính vô hạn của tập các số nguyên tố17tối tiểu bằng bảng Karnaugh . . . . . 125tối tiểu bằng biến đổi đại số . . . . . . 124tối tiểu bằng phương pháp Quine - Mc-Cluskey . . . . . . . . . . . . . . . . . 131tối tiểu hóa các mạch . . . . . . . . . . . . 123tổ hợp các cổng . . . . . . . . . . . . . . . . . 121thương số . . . . . . . . . . . . . . . . . . . . . . . 15thứ bậc trong tập các hàm số . . . . . . 98thứ tự từ điển . . . . . . . . . . . . . . . . . . . . . 7thuật toán . . . . . . . . . . . . . . . . . . . . . . . . 1đầu ra . . . . . . . . . . . . . . . . . . . . . . . . . 4đầu vào . . . . . . . . . . . . . . . . . . . . . . . 4các đặc trưng . . . . . . . . . . . . . . . . . . 3dạng giả mã . . . . . . . . . . . . . . . . . . . 2Euclid . . . . . . . . . . . . . . . . . . . . . . . 22Euclid mở rộng . . . . . . . . . . . . . . . 23khai triển theo cơ số b . . . . . . . . . 37kiểm tra tính nguyên tố . . . . . . . . 18quay lui . . . . . . . . . . . . . . . . . . . . . . 11sàng Erastothenes . . . . . . . . . . . . . 17sinh cấu hình tổ hợp . . . . . . . . . . . . 7sinh hoán vị kế tiếp. . . . . . . . . . . . .8sinh hoán vị theo Cantor . . . . . . . 12sinh kế tiếp . . . . . . . . . . . . . . . . . . . . 7sinh tổ hợp kế tiếp . . . . . . . . . . . . 10sinh xâu nhị phân kế tiếp. . . . . . . .9tìm kiếm nhị phân . . . . . . . . . . . . . . 5tìm kiếm tuần tự . . . . . . . . . . . . . . . 5tìm kiếm tuyến tính . . . . . . . . . . . . 5tìm phân tích tiêu chuẩn . . . . . . . 18Bộ môn Toán - ĐẠI HỌC THĂNG LONG 147


Chỉ mụctìm số lớn nhất trong dãy. . . . . . . .2tính đúng đắn . . . . . . . . . . . . . . . . . . 4tính dừng. . . . . . . . . . . . . . . . . . . . . .3tính phổ dụng . . . . . . . . . . . . . . . . . . 4tính xác định . . . . . . . . . . . . . . . . . . 4thuật toán tìm kiếm. . . . . . . . . . . . .4thuật toán chia . . . . . . . . . . . . . . . . . . . 14tiên đề của trường . . . . . . . . . . . . . . . . 44trường . . . . . . . . . . . . . . . . . . . . . . . . . . 44trường các số nguyên modulo p . . . 47trường hữu hạn . . . . . . . . . . . . . . . . . . 48trường số hữu tỉ Q . . . . . . . . . . . . . . . 45trường số thực R . . . . . . . . . . . . . . . . 45148 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!