toÁn 2

151
Bài giảng Toán 2 Bộ môn Toán - ĐẠI HỌC THĂNG LONG Học kì I, năm học 2007 - 2008

Upload: mittpee

Post on 01-Jul-2015

370 views

Category:

Documents


22 download

TRANSCRIPT

Bài giảngToán 2

Bộ môn Toán - ĐẠI HỌC THĂNG LONG

Học kì I, năm học 2007 - 2008

Mục lục

Trang

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức 11.1 Khái niệm Thuật toán theo nghĩa trực giác . . . . . . . . . . . . 1

1.1.1 Khái niệm Thuật toán . . . . . . . . . . . . . . . . . . . 11.1.2 Các đặc trưng của Thuật toán . . . . . . . . . . . . . . 31.1.3 Một số ví dụ về thuật toán . . . . . . . . . . . . . . . . 4

1.2 Số nguyên và phép chia . . . . . . . . . . . . . . . . . . . . . . 121.2.1 Tính chia hết . . . . . . . . . . . . . . . . . . . . . . . 131.2.2 Số nguyên tố và Định lí cơ bản của số học . . . . . . . . 161.2.3 Ước số chung lớn nhất và Bội số chung nhỏ nhất . . . . 181.2.4 Số học đồng dư . . . . . . . . . . . . . . . . . . . . . . 301.2.5 Biểu diễn số tự nhiên theo các hệ cơ số khác nhau . . . . 361.2.6 Một số ứng dụng . . . . . . . . . . . . . . . . . . . . . 39

1.3 Đa thức và Trường hữu hạn . . . . . . . . . . . . . . . . . . . . 441.3.1 Trường và Trường hữu hạn . . . . . . . . . . . . . . . . 441.3.2 Đa thức trên một trường . . . . . . . . . . . . . . . . . 50

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi 652.1 Nguyên lí bù trừ . . . . . . . . . . . . . . . . . . . . . . . . . . 652.2 Định nghĩa bằng đệ qui . . . . . . . . . . . . . . . . . . . . . . 67

2.2.1 Định nghĩa hàm bằng đệ qui . . . . . . . . . . . . . . . 682.2.2 Định nghĩa tập hợp bằng đệ qui . . . . . . . . . . . . . 71

2.3 Hệ thức truy hồi . . . . . . . . . . . . . . . . . . . . . . . . . . 742.3.1 Mô hình hóa bằng hệ thức truy hồi . . . . . . . . . . . . 75

2.4 Giải Hệ thức truy hồi . . . . . . . . . . . . . . . . . . . . . . . 792.4.1 Hệ thức truy hồi tuyến tính thuần nhất hệ số hằng . . . . 80

i

Mục lục

2.4.2 Giải hệ thức truy hồi tuyến tính thuần nhất hệ số hằng . 812.5 Hệ thức truy hồi tuyến tính không thuần nhất hệ số hằng . . . . 892.6 Độ phức tạp của thuật toán . . . . . . . . . . . . . . . . . . . . 92

2.6.1 Khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . 922.6.2 Thứ bậc trong tập các hàm số . . . . . . . . . . . . . . 982.6.3 Định lí cơ bản cho phân tích thuật toán . . . . . . . . . 99

Chương 3. Đại số Boole 1123.1 Đại số boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.1.1 Định nghĩa trừu tượng của đại số boole . . . . . . . . . 1123.1.2 Biểu thức boole và hàm boole . . . . . . . . . . . . . . 1153.1.3 Tính đối ngẫu . . . . . . . . . . . . . . . . . . . . . . . 117

3.2 Biểu diễn các hàm Boole . . . . . . . . . . . . . . . . . . . . . 1173.2.1 Khai triển tổng các tích . . . . . . . . . . . . . . . . . . 1183.2.2 Tính đầy đủ . . . . . . . . . . . . . . . . . . . . . . . . 120

3.3 Các cổng logic . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.3.1 Tổ hợp các cổng . . . . . . . . . . . . . . . . . . . . . 121

3.4 Cực tiểu hóa các mạch . . . . . . . . . . . . . . . . . . . . . . 1233.4.1 Phương pháp biến đổi đại số . . . . . . . . . . . . . . . 1243.4.2 Phương pháp bảng Karnaugh . . . . . . . . . . . . . . . 1253.4.3 Phương pháp Quine - McCluskey . . . . . . . . . . . . 131

Tài liệu tham khảo 144

Chỉ mục 145

ii 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ức

Mục đích chính của chúng ta ở chương này là tìm hiểu khái niệm thuậttoán theo nghĩa trực giác và một số đặc trưng. Sau đó, chúng ta sẽ lần

lượt xem xét một số thuật toán trên nền những khái niệm cơ bản như số nguyên,phép chia, số học đồng dư, trường hữu hạn, đa thức, . . . .

1.1 Khái niệm Thuật toán theo nghĩa trực giác

Khái niệm Thuật toán

Khái niệm 1.1.1 Thuật toán là một hệ thống chặt chẽ và rõ ràng những quitắc nhằm xác định một dãy thao tác trên những đối tượng, sao cho sau một sốhữu hạn bước thực hiện dãy thao tác đó, ta đạt được mục tiêu định trước.

Nhận xét 1.1.2 Từ khái niệm thuật toán ở trên, ta chú ý rằng nếu cho trước mộtthuật toán thì hệ thống những qui tắc của nó, mang cho bất cứ đối tượng nào(người / máy) thực hiện, trong cùng một điều kiện cho trước, ta cũng phải thuđược kết quả như nhau dù cho đối tượng thực hiện thuật toán có thể không hiểugì về bản chất cũng như ý nghĩa của vấn đề.

Ví dụ 1.1.3 Mô tả thuật toán tìm phần tử lớn nhất trong một dãy hữu hạna1, a2, . . . , an cho trước.

Khi gặp bài toán này, cách giải quyết thông thường nhất mà chúng ta hay làmvới n cụ thể là duyệt lần lượt n số trong dãy đã cho, so sánh để chỉ ra số lớnnhất. Nhưng khi cần chỉ ra các bước thực hiện về mặt nguyên tắc để giải quyếtbài toán này, chúng ta cần hình thức hóa chúng dưới dạng ngôn ngữ thông

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

thường sao cho các bước của chúng ta đã chỉ ra có thể áp dụng cho mọi dãy nsố a1, a2, . . . , an bất kì.Các bước thực hiện được mô tả như sau:

B1 Giá trị cực đại tạm thời sẽ nhận giá trị đầu tiên (a1) của dãy. Phần tử đangduyệt cũng chính là a1. Ta hiểu rằng giá trị cực đại tạm thời là giá trị lớnnhất trong những giá trị kể từ đầu dãy đến phần tử đang xét.

B2 Xét phần tử có thứ tự kế tiếp thứ tự của phần tử đang xét ở bước trước (nếubước trước đang xét phần tử ak thì ta sẽ xét phần tử ak1). So sánh phầntử này với giá trị cực đại tạm thời. Giá trị cực đại tạm thời sẽ giữ nguyêngiá trị nếu nó không nhỏ thua phần tử đang xét. Trái lại, nó sẽ nhận giá trịcủa phần tử đang xét.

B3 Lặp lại bước B2 chừng nào phần tử đang xét không phải phần tử cuối cùngtrong dãy.

B4 Kết thúc và ta có giá trị lớn nhất cần tìm chính là giá trị cực đại tạm thờicuối cùng.

Sử dụng ngôn ngữ thông thường để mô tả thuật toán như trên rất thuận tiệntrong việc suy nghĩ, trao đổi thuật toán giữa người với người. Cách thức này đãtồn tại hàng ngàn năm cùng với những thuật toán cổ xưa nhất của loài người.Nhưng cùng với sự ra đời của máy tính điện tử, nội dung của các thuật toán dầnđược thể hiện thông qua giả mã một dạng ngôn ngữ hình thức hơn (có thể rắcrối khó hiểu hơn với con người, nhưng thuận tiện hơn khi làm việc với máy tínhđiện tử).

Dưới đây là mô tả giả mã của thuật toán trên:

Thuật toán 1 Thuật toán tìm phần tử lớn nhất trong một dãy hữu hạn a1, a2, . . . , an.

Đầu vào: Dãy hữu hạn a1, a2, . . . , an.Đầu ra: Giá trị lớn nhất M maxta1, a2, . . . , anu.1: max : a1.2: Duyệt tất cả k sao cho 2 ¤ k ¤ n Thực hiện3: Nếu max ak thì4: max : ak.5: Kết thúc Nếu6: Kết thúc Duyệt7: M : max.

Trong dạng giả mã trên, ở dòng đánh số 1, ta thấy kí hiệu “:=”. Đây là kíhiệu để chỉ giá trị đứng sau nó được gán cho “biến” đứng trước nó. Dòng số 2và dòng số 6 để chỉ phép duyệt hay một vòng lặp, duyệt các phần tử trong dãy:

2 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ác

ak 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án

Trong 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ãya1, a2, . . . , an.

Tính phổ dụng

Thuậ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 a1, a2, . . . , an

cho dù n và bản thân các giá trị a1, a2, . . . , an có thay đổi.

Đầu vào và Đầu ra

Mộ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án

Những thuật toán tìm kiếm

Nhữ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ác

Bà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 a1, a2, . . . , an 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 ai trong bảng liệt kê nếu ai 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 a1. Nếux a1 thì kết quả trả về là vị trí 1. Khi x a1 thì ta so sánh x với a2. Nếux a2 thì kết quả trả về là vị trí 2. Khi x a2 thì ta so sánh x với a3. Tiếptục quá trình này bằng cách so sánh x với từng số hạng ai 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 a1, a2, . . . , an.Đầ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 ai 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 a1, a2, . . . , an. 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ồmn 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ểm

giữa” (phần tử ở vị trí t1 n

2u) của bảng liệt kê. Nếu x bằng phần tử này thì

vị 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ức

Ví dụ 1.1.5 Tìm số 19 trong bảng liệt kê

1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 15, 16, 18, 19, 21, 23.

Lời giải:

B1 Ta so sánh 19 với “điểm giữa” của dãy đã cho: a8 10. Vì 19 ¡ a8 10nên ta chỉ quan tâm đến dãy con thứ hai: 12, 13, 15, 16, 18, 19, 21, 23.

B2 Ta so sánh 19 với “điểm giữa” của dãy con chỉ ra ở B1: a12 16. Vì19 ¡ a12 16 nên ta chỉ quan tâm đến dãy con: 18, 19, 21, 23.

B3 Ta so sánh 19 với “điểm giữa” của dãy con chỉ ra ở B2: a14 19. Vì19 a14 19 nên vị trí xuất hiện của 19 là 14.

l

Giả mã của thuật toán tìm kiếm nhị phân được trình bày trong thuật toán 3.

Thuật toán 3 Tìm kiếm nhị phân.

Đầu vào: Số x, dãy n số phân biệt tăng dần a1, a2, . . . , an.Đầ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, j : n.2: Trong khi i j Thực hiện

3: m : ti j

2u.

4: Nếu x ¡ am thì5: i : m 1.6: không thì7: j : m.8: Kết thúc Nếu9: Kết thúc Trong khi10: Nếu x ai thì11: vitri : i.12: không thì13: vitri : 0.14: Kết thúc Nếu15: Kết quả trả về là vitri.

Thuật toán sinh cấu hình tổ hợp

Như chúng ta đã biết, trong quá trình giải bài toán đếm, thông thường chúngta sẽ sử dụng một số công cụ để đếm các “cấu hình tổ hợp” (hoán vị, chỉnh hợp,tổ hợp, . . . ) thỏa mãn yêu cầu đầu bài. Thế nhưng có nhiều loại bài toán mà đểgiải nó, chỉ áp dụng các công cụ đếm thôi chưa đủ. Chúng ta còn cần phải có

6 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ác

khả năng liệt kê các cấu hình tổ hợp theo thứ tự mà chúng ta mong muốn để rồiqua đó, ta xây dựng được lời giải của bài toán đặt ra. Trong phần này, chúngta sẽ tìm hiểu một số thuật toán liệt kê cấu hình tổ hợp theo thứ tự mong muốndựa trên phương pháp sinh.

Phương pháp sinh có thể áp dụng để giải bài toán liệt kê cấu hình tổ hợp nếunhư hai điều kiện sau được thực hiện:

a) Có thể xác định được một thứ tự trên tập các cấu hình tổ hợp cần liệt kê. Từđó có thể xác định được cấu hình đầu tiên và cấu hình cuối cùng trong thứtự đã xác định.

b) Xây dựng được thuật toán từ cấu hình chưa phải là cuối cùng đang có, đưara cấu hình kế tiếp nó.

Ta sẽ gọi thuật toán nói trong điều kiện b) là thuật toán sinh kế tiếp. Rõ ràng làthứ tự trong điều kiện a) cần được lựa chọn sao cho có thể xây dựng được thuậttoán sinh kế tiếp. Giả thiết rằng hai điều kiện nêu trên đã được thực hiện, khi đóthuật toán sinh để giải bài toán liệt kê cấu hình tổ hợp đặt ra được mô tả bằngthuật toán 4 (trong đó Sinh kế tiếp là thuật toán con sinh cấu hình kế tiếp).

Thuật toán 4 Sinh cấu hình tổ hợp.

1: Xây dựng cấu hình đầu tiên.2: Trong khi Cấu hình hiện tại chưa phải là cấu hình cuối cùng Thực hiện3: Kết xuất cấu hình hiện tại.4: Sinh kế tiếp.5: Kết thúc Trong khi

Trong nội dung tiếp ngay đây, ta sẽ xem xét một số ví dụ sinh cấu hình tổhợp. Tất cả đều có cùng dạng thuật toán chính như thuật toán 4. Ta sẽ chỉ tìmvà nêu ra những thuật toán sinh kế tiếp tương ứng.

Định nghĩa 1.1.6 Bộ số a1, a2, . . . , ak pai P tx1, x2, x3, . . . , xnuq đượcgọi là đi trước (nhỏ hơn) bộ số b1, b2, . . . , bk pbi P tx1, x2, x3, . . . , xnuqtheo thứ tự từ điển nếu có số m p1 ¤ m ¤ kq để a1 b1, a2 b2, . . . ,am1 bm1, am bm.

Ví dụ 1.1.7 Liệt kê tất cả các hoán vị của tập t1, 2, 3, . . . , nu theo thứ tự từđiển.

Lời giải: Ta đi xây dựng thuật toán sinh hoán vị kế tiếp theo thứ tự từ điển.Hoán vị đầu tiên của ta là 1, 2, . . . , n. Hoán vị cuối cùng làn, pn1q, . . . , 1.Giả sử ta đã có hoán vị cho trước a1, a2, . . . , an (không phải là hoán vị cuối

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 7

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

cù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ãnaj aj1. 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 ak là số nhỏ nhấtcòn lớn hơn aj trong các số ở bên phải aj . Trong ví dụ minh họa với hoán vị3, 6, 2, 5, 4, 1 thì ak 4 với k 5. Ta có khẳng định:

• Hoán vị có dạng a1, a2, . . . , aj1, ak, bj1, . . . , bn (trong đóbj1, . . . , bn là hoán vị nào đó của aj, aj1, . . . , ak1, ak1, . . . , an)là những hoán vị đi sau hoán vị a1, a2, . . . , an. 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à aj ak.

• Không có hoán vị nào của tập t1, 2, . . . , nu đi trước hoán vị dạnga1, a2, . . . , aj1, ak, bj1, . . . , bn nói trên mà lại đi sau hoán vịa1, a2, . . . , an. Lí do giải thích điều này là cách chọn ak (số nhỏ nhấtcòn lớn hơn aj trong các số ở bên phải aj).

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ạnga1, a2, . . . , aj1, ak, bj1, . . . , bn (trong đó bj1, . . . , bn là hoán vị nàođó của aj, aj1, . . . , ak1, ak1, . . . , an). Ta có aj1 ¡ aj2 ¡ . . . ¡ak1 ¡ aj do aj1 ¡ aj2 ¡ . . . ¡ ak1 ¡ ak ¡ aj . Ta cũng cóaj ¡ ak1 ¡ . . . ¡ an vì ak ¡ ak1 ¡ . . . ¡ an và ak là số nhỏ nhất lớnhơn aj . Vậy

an an1 . . . ak1 aj ak1 . . . aj1.

Nói cách khác, hoán vị

a1, a2, . . . , aj1, ak, an, an1, . . . , ak1, aj, ak1, . . . , aj1

là 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.

l

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ịa1, a2, . . . , an:

B1 Tìm từ phải qua trái (của hoán vị đang có a1, a2, . . . , an) chỉ số j đầu tiênsao cho aj aj1.

B2 Tìm ak là số nhỏ nhất còn lớn hơn aj trong số các số ở bên phải aj .

B3 Đổi chỗ aj với ak.

B4 Lật ngược đoạn từ aj1 đến an.

8 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ác

Thuật toán 5 Sinh hoán vị kế tiếp.

Đầu vào: Hoán vị hiện tại a1, a2, . . . , an 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 aj ¡ aj1 Thực hiện3: j : j 1.4: Kết thúc Trong khi5: k : n.6: Trong khi aj ¡ ak Thực hiện7: k : k 1.8: Kết thúc Trong khi9: Đổi chỗ aj và ak.10: s : j 1, r : n.11: Trong khi r ¡ s Thực hiện12: Đổi chỗ ar và as.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à a1, a2, . . . , an.

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.

Lời giải: Xâu nhị phân đầu tiên là 00 . . . 0looomooonn bit

. Xâu nhị phân cuối cùng sẽ là

11 . . . 1looomooonn bit

. Giả sử b1, b2, . . . , bn là xâu nhị phân hiện tại (không phải xâu nhị

phâ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ãnbi 0.

B2 Gán lại bi 1 và bj 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ử ta1, a2, . . . , anu.Phần tử ai 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. l

Thuậ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ức

Thuật toán 6 Sinh xâu nhị phân kế tiếp.

Đầu vào: Xâu nhị phân hiện tại b1b2 . . . bn 11 . . . 1looomooonn

.

Đầu ra: Xâu nhị phân liền sau theo thứ tự từ điển.1: i : n.2: Trong khi bi 1 Thực hiện3: bi : 0, i : i 1.4: Kết thúc Trong khi5: bi : 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à b1b2 . . . bn.

Ví 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 conm phần tử củaA có thể biểu diễn bởi một dãy có thứ tự các phần tửa1, a2, . . . , am (ai P A) thỏa mãn 1 ¤ a1 a2 . . . am ¤ n. Ta chọnthứ tự từ điển là thứ tự để sinh tập con kế tiếp của tập con ta1, a2, . . . , amubiểu diễn bởi dãy a1, a2, . . . , am (ai P A) thỏa mãn 1 ¤ a1 a2 . . . am ¤ 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 ai của dãy a1, a2, . . . , am thỏa mãnai n m i.

B2 Thay aj bởi ai j i 1 với j i 1, m và ai bởi ai 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ấya4 6 644,a3 5 643,a2 2 6 4 2. Vậy i 2. Ta thay a2 bởi 2 1 3, a3 bởi2 3 2 1 4 và a4 bởi 2 4 2 1 5. Vậy tập con kế tiếp làt1, 3, 4, 5u. l

Thuậ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ững

10 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ác

Thuật toán 7 Sinh tập con m phần tử của tập t1, 2, . . . , nu kế tiếp theo thứ tự từ điển.Đầu vào: Tập con hiện tại ta1, a2 . . . amu tn m 1, n m 2, . . . nu thỏa mãn

1 ¤ a1 a2 . . . am ¤ n.Đầu ra: Tập con gồm m phần tử liền sau theo thứ tự từ điển.1: i : m.2: Trong khi ai n m i Thực hiện3: i : i 1.4: Kết thúc Trong khi5: ai : ai 1.6: Duyệt tất cả j sao cho i 1 ¤ j ¤ m Thực hiện7: aj : ai j i.8: Kết thúc Duyệt9: Tập con m phần tử mới sinh liền sau tập con m phần tử đã cho theo thứ tự từ điển làta1, a2, . . . , amu.

bài toán liệt kê tổ hợp đơn giản. Để giải những bài toán liệt kê phức tạp, ngườita thường dùng thuật toán có tính phổ dụng cao hơn. Đó là thuật toán quay lui.

Khai triển Cantor của một số nguyên

Mệnh đề 1.1.10 Mọi số nguyên không âm nhỏ hơn n! đều có thể biểu diễn duynhất dưới dạng:

a1.1! a2.2! . . . an1.pn 1q!trong đó ai là các số nguyên không âm không vượt quá i với i 1, n 1.Biểu diễn nói trên được gọi là khai triển Cantor và các số a1, a2, . . . , an1

được gọi là các Cantor của các số nguyên này.

Ta không quan tâm đến chứng minh của mệnh đề trên mặc dù nó rất đơn giản.Chúng ta sẽ chỉ xem xét các khía cạnh ứng dụng của khai triển Cantor và các sốCantor của một số nguyên nhỏ hơn n! cho trước.

Cho hoán vị p1, p2, . . . , pn của tập t1, 2, . . . , nu. Đặt ai (với i 1, n 1) là số các số nguyên nhỏ hơn i 1 mà đứng sau i 1 trong hoán vịđã cho. Ta có ai ¤ i với mọi i 1, n 1. Vậy mỗi hoán vị p1, p2, . . . , pn

của tập t1, 2, . . . , nu tương ứng với duy nhất bộ số a1, a2, . . . , an1 hay sốnguyên 0 ¤ a1.1! a2.2! . . . an1.pn 1q! ¤ n! 1.

Ví dụ 1.1.11 Hoán vị 1, 2, 3, 4, 5 của tập t1, 2, 3, 4, 5u cho ta a1 0 (khôngcó số nào nhỏ hơn 2 mà đứng sau 2), a2 0 (không có số nào nhỏ hơn 3 màđứng sau 3), a3 0 (không có số nào nhỏ hơn 4 mà đứng sau 4), a4 0(không có số nào nhỏ hơn 5 mà đứng sau 5). Vậy hoán vị 1, 2, 3, 4, 5 tươngứng với số 0.

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 11

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

Hoán vị 2, 5, 1, 3, 4 của tập t1, 2, 3, 4, 5u cho ta a1 1 (có số 1 nhỏ hơn2mà đứng sau 2), a2 0 (không có số nào nhỏ hơn 3mà đứng sau 3), a3 0(không có số nào nhỏ hơn 4 mà đứng sau 4), a4 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 a1 1 (có số 1 nhỏ hơn2 mà đứng sau 2), a2 2 (có hai số nhỏ hơn 3 mà đứng sau 3), a3 3 (có basố nhỏ hơn 4 mà đứng sau 4), a4 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ốa1, a2, . . . , an1. Đặt n vào vị trí còn trống thứ n an1 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 n

còn có an1 vị trí trống. Điều đó có nghĩa là an1 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 an2. 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 chia

Tậ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ững

12 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Thuậ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ị p1, p2, . . . , pn 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: pj : 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 ank.)7: c : t

x

pn 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 ph 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 ph 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: ph : 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 ph 0 Thực hiện26: h : h 1.27: Kết thúc Trong khi28: ph : 1.29: p1, p2, . . . , pn 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ông

Bộ 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ức

chia 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 Chon 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 k

với 0 kd ¤ n hay 0 k ¤ n

d. Vậy có t

n

du số nguyên dương không vượt

quá n chia hết cho d. l

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 ai với mọi i 1, n thì c a1x1 a2x2 . . . anxn vớixi 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ức

a bq r và 0 ¤ r |b|.

14 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Chứ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 q1, r1 và q2, r2 thỏa mãn hệthức:

a bq1 r1, 0 ¤ r1 |b|;và

a bq2 r2, 0 ¤ r2 |b|.Từ những ràng buộc trên, ta có bpq1 q2q r2 r1 và |r2 r1| |b|.Do |b| ¡ 0, và |b|.|q1 q2| |b| nên ta có |q1 q2| 1. Mặt khác,|q1 q2| là số tự nhiên nên từ |q1 q2| 1 suy ra |q1 q2| 0 hayq1 q2 và do đó r1 r2.

Đị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 r

thỏ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. Chia15 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ức

Số nguyên tố và Định lí cơ bản của số học

Trong 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 p1 sao cho 1 p1 p. Từ đó p1 a và 1 p1 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 p1, p2, . . . , pk

là 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à pi 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α1

1 pα2

2 . . . pαk

k .

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 chia

Ví dụ 1.2.11 1960 23.5.72.

Đị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à p1, p2, . . . , pn.Xét số tự nhiên a p1p2 . . . pn1. 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ì pi a @1 ¤ i ¤ nnên p là số nguyên tố khác với n số nguyên tố p1, p2, . . . , pn kể trên. Mâuthuẫn này dẫn tới điều phải chứng minh. l

Mặt khác, nếu ta đánh số các số nguyên tố theo thứ tự tăng dần p1 2, p2 3,p3 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 (pn). 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 p2 ¤ pq a hay p ¤ ?

a là điều cầnphải chứng minh. l

Từ 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ố. l

Thuậ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ức

Thuậ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: bk : k.3: Kết thúc Duyệt4: Xóa b0, b1.5: m : 0, p1 : 2.6: Trong khi pm1 ¤ t

?Au Thực hiện

7: Đánh dấu pm1 trong bảng bk (0 ¤ k ¤ A).8: Xóa tất cả bội của pm1 (trừ pm1) trong bảng bk (0 ¤ k ¤ A).9: m : m 1.10: pm1 :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 trong

bảng bk (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 p1, p2, . . . , pn với pn ¤

?A pn1 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êna1, a2, . . . , an nếu nó là ước đồng thời của mỗi số đó.

Định nghĩa 1.2.17 Số lớn nhấtd trong tất cả các ước chung củaa1, a2, . . . , an

(không đồng thời bằng không) được gọi là ước chung lớn nhất củaa1, a2, . . . , an. Kí hiệu d UCLNpa1, a2, . . . , anq.

18 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Thuậ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ện

12: 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 a1, a2, . . . , an thì ta nóia1, a2, . . . , an là nguyên tố cùng nhau. Còn nếu 1 là ước chung lớn nhấtcủa mọi cặp ai, aj với i j, i, j 1, 2, . . . , n thì ta nói a1, a2, . . . , an 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êna1, a2, . . . , an bao giờ cũng có ước chung ít nhất là số 1.

• Số0 là bội củamọi số nguyên khác không nên nếu những sốa1, a2, . . . , an

đề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 a1, a2, . . . , an 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ừ a1, a2, . . . , an những số 0. Do đó ta có thểgiả thiết ai 0 với i 1, 2, . . . , n.

Định lý 1.2.3 Giả sử c là một ước chung của a1, a2, . . . , an. Khi đóc chia hết UCLNpa1, a2, . . . , anq. Ngược lại, nếu c là ước củaUCLNpa1, a2, . . . , anq thì c là ước chung của a1, a2, . . . , an.

Chứng minh: Xét tập hợp

M ta1x1 a2x2 . . . anxn | xi 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ức

Thuậ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 p1, p2, . . . , pk 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 pi 0 Thực hiện4: n : n div pi, α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¡0

pαii .

Ta có M Z và M chứa ít nhất một số nguyên dương. Thật vậy, lấy

x1 "

1 nếu a1 ¡ 0,

1 nếu a1 0,

và x2 x3 . . . xn 0 thì a1x1 a2x2 . . . anxn |a1| ¡ 0,|a1| 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 a1u1 a2u2 . . . anun, ui P Z , i 1, 2, . . . , n vàd ¤ x, @x P M, x ¡ 0.

Ta sẽ chứng minh d UCLNpa1, a2, . . . , anq. Trước hết ta có d x, @x a1x1 a2x2 . . . anxn 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 a1px1 u1qq a2px2 u2qq . . . anpxn unqqlà 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ì ak a1.0 . . . ak1.0 1.ak ak1.0 . . . an.0 P M nên d ak, k 1, 2, . . . , n.

Mặt khác, nếu c là ước chung của a1, a2, . . . , an thì c là ước củad a1u1 a2u2 . . . anun. 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 a1, a2, . . . , an. Vậyd UCLNpa1, a2, . . . , anq.

Và ta cũng có luôn: c là ước chung của a1, a2, . . . , an khi và chỉ khi nó làước của d UCLNpa1, a2, . . . , anq. l

Hệ quả 1.2.21 Nếu d UCLNpa1, a2, . . . , anq thì tồn tại những số nguyênu1, u2, . . . , un sao cho d a1u1 a2u2 . . . anun.

20 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Hệ quả 1.2.22 Điều kiện cần và đủ để UCLNpa1, a2, . . . , anq 1 là tồn tạinhững số nguyên u1, u2, . . . , un sao cho 1 a1u1 a2u2 . . . anun.

Hệ quả 1.2.23 Với mọi số nguyên dương k ta có

UCLNpk.a1, k.a2, . . . , k.anq k. UCLNpa1, a2, . . . , anq.

Hệ quả 1.2.24 Nếu c là ước chung của a1, a2, . . . , an thì ta có

UCLNpa1

c,a2

c, . . . ,

an

cq UCLNpa1, a2, . . . , anq

c.

Hệ quả 1.2.25 Cần và đủ để một ước chung dương d của a1, a2, . . . , an làUCLNpa1, a2, . . . , anq là

a1

d,a2

d, . . . ,

an

dnguyên tố cùng nhau.

Một số tính chất của ước số chung lớn nhất

Tính chất 1.2.26 Nếu UCLNpa, bq 1 và b ac thì b c.

Chứngminh: VìUCLNpa, bq 1 suy ra tồn tạix, y P Z sao choaxby 1. Từ đó ac.x bc.y c. Do b ac nên b acx bcy tức là b c. l

Tí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. l

Tí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. l

Tí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ức

Chứ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à c

cũ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. l

Cách tìm ước số chung lớn nhất

Trướ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 bq0 r1 0 r1 b;

b r1q1 r2 0 r2 r1;

r1 r2q2 r3 0 r3 r2;

. . .

rn2 rn1qn1 rn 0 rn rn1;

rn1 rnqn.

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, r1, r2, . . . 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, r1q . . . UCLNprn1, rnq. Vì rn1 rnqn nên UCLNpa, bq UCLNprn1, rnq rn. 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. l

22 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Thuậ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ật

toá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.x b.y.1: 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.

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ức

B4 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. l

Chứ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ãnahiện tại x.aban đầu y.bban đầu. Những giá trị u, v tại mỗi bước luôn thỏamãn bhiện tại u.aban đầu v.bban đầu. Và tương tự, những giá trị s, t tại mỗibước luôn thỏa mãn rhiện tại s.aban đầu t.bban đầ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 n

số nguyên dương a1, a2, . . . , an. Ta đặt d UCLNpa1, a2, . . . , anq,d2 UCLNpa1, a2q, d3 UCLNpd2, a3q, . . . , dn UCLNpdn1, anqthì khi đó ta có d dn.

Thật vậy, ta dễ thấy rằng mọi ước chung của a1, a2, . . . , an đều là ướcchung của d2, a3, . . . , an và ngược lại nên ta có

UCLNpa1, a2, . . . , anq UCLNpd2, a3, . . . , anq.Lặp lại lí luận này nhiều lần, ta sẽ có

d UCLNpd2, a3, . . . , anq UCLNpd3, a4, . . . , anq . . . UCLNpdn1, anq dn

nghĩa là d dn.

Ví 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.

l

24 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Nếu ta biết dạng phân tích tiêu chuẩn của những số a1, a2, . . . , an thì tacũng có qui tắc để tính ước chung lớn nhất của a1, a2, . . . , an như sau:

Định lý 1.2.4 Cho a1, a2, . . . , an là những số tự nhiên lớn hơn 1. Ước chunglớn nhất củaa1, a2, . . . , an 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ố a1, a2, . . . , an, 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ố a1, a2, . . . , an đã cho.

Chứng minh: Gọi p1, p2, . . . , pk là các ước nguyên tố phân biệt của ít nhấtmột trong những số a1, a2, . . . , an. Tức là ta có thể viết:

ai pαi1

1 pαi2

2 . . . pαik

k

trong đó αij ¥ 0 với i 1, n, j 1, k (αij ¡ 0 nếu như pj là ước của ai

và αij 0 trong trường hợp trái lại). Đặt

d pµ1

1 pµ2

2 . . . pµk

k với µj mintα1j, α2j, . . . , αnju, j 1, k.

Khi đó d sẽ là ước chung lớn nhất của a1, a2, . . . , an.Thật vậy, từ giả thiết về µj , ta có µj ¤ αij, @i 1, n vậy d là ước

chung của a1, a2, . . . , an. Mặt khác, giả sử δ là một ước chung nào đócủa a1, a2, . . . , an thì δ phải có dạng δ pβ1

1 pβ2

2 . . . pβk

k 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. l

Ví dụ 1.2.33 Với ba số 1960 23.5.72, 2352 24.3.72, 4004 22.7.11.13 thì ta có UCLNp1960, 2352, 4004q 22.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 a1, a2, . . . , an 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 a1, a2, . . . , an được gọi là bội chung nhỏ nhất củaa1, a2, . . . , an. Kí hiệu m BCNNpa1, a2, . . . , anq.

Nhận xét 1.2.36 Khi ta nói đến bội chung của những số a1, a2, . . . , an thìđương nhiên ta đã giả thiết các số đó đã khác không.

Định lý 1.2.5 Nếu m BCNNpa1, a2, . . . , anq thì mọi bội chung củaa1, a2, . . . , an đề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ức

Chứng minh: Giả sử µ là một bội chung của a1, a2, . . . , an và giả sử µ mqr, 0 ¤ r m, với q, r P Z . Bởi vì ai µ, ai m với mọi i 1, nnênai r µmq. Vậy r là bội chung củaa1, a2, . . . , an và 0 ¤ r m,kết hợp với m BCNNpa1, a2, . . . , anq ta có r 0 hay µ là bội của m.

l

Một số tính chất của bội số chung nhỏ nhất

Tính chất 1.2.37 Điều kiện cần và đủ để một bội chung dươngm của những sốa1, a2, . . . , an là bội chung nhỏ nhất của chúng là

m

a1,m

a2, . . . ,

m

an

nguyên

tố cùng nhau.

Chứng minh:

a) Điều kiện cần: Nếu m BCNNpa1, a2, . . . , anq ta sẽ chứng minhnhững số

m

a1,m

a2, . . . ,

m

an

nguyên tố cùng nhau. Thật vậy, nếu không như

vậy thìm

a1,m

a2, . . . ,

m

an

có một ước chung d 1 nào đó. Khi đóm

dlà

bội chung của a1, a2, . . . , an và 0 |md| m trái với giả thiết m là

bội chung nhỏ nhất của các số a1, a2, . . . , an đã cho.

b) Điều kiện đủ: Nếum

a1,m

a2, . . . ,

m

an

nguyên tố cùng nhau, ta sẽ chứng

minh m BCNNpa1, a2, . . . , anq. Thật vậy, nếu không như thế, tagọi m1 BCNNpa1, a2, . . . , anq và theo định lí 1.2.5, sẽ có số nguyênd ¡ 1 để m dm1. Từ đó ta có:

UCLNpma1

,m

a2, . . . ,

m

an

q UCLNpdm1

a1,dm1

a2, . . . ,

dm1

an

q

d UCLNpm1

a1,m1

a2, . . . ,

m1

an

q.

Vậy d là ước củaUCLNpma1

,m

a2, . . . ,

m

an

q nghĩa là m

a1,m

a2, . . . ,

m

an

í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.

l

Tính chất 1.2.38 Với k là một số nguyên dương, ta có:

BCNNpka1, ka2, . . . , kanq k BCNNpa1, a2, . . . , anq.

26 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Chứng minh: Ta dễ thấy k lần bội chung của a1, a2, . . . , an luôn chia hếtcho kai với mọi i 1, n. Vậy k lần bội chung của a1, a2, . . . , an luônlà bội chung của ka1, ka2, . . . , kan. Ngược lại, nếu α là bội chung củaka1, ka2, . . . , kan thì

α

ksẽ là bội của ai với mọi i 1, n nên

α

klà bội chung

củaa1, a2, . . . , an và do đóα bằngk lần bội chung nào đó củaa1, a2, . . . , an.Tóm lại ta có hai tập hợp Mk các bội chung của ka1, ka2, . . . , kan và kM

các k lần bội chung của a1, a2, . . . , an 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ó

BCNNpka1, ka2, . . . , kanq k BCNNpa1, a2, . . . , anq.l

Tính chất 1.2.39 Nếu δ là ước chung dương của a1, a2, . . . , an, ta có:

BCNNpa1

δ,a2

δ, . . . ,

an

δq BCNNpa1, a2, . . . , anq

δ.

Chứng minh: Áp dụng tính chất 1.2.38, với δ là ước chung dương củaa1, a2, . . . , an ta có:

BCNNpa1, a2, . . . , anq BCNNpδa1

δ, δ

a2

δ, . . . , δ

an

δq

δ BCNNpa1

δ,a2

δ, . . . ,

an

δq.

Vậy ta có BCNNpa1

δ,a2

δ, . . . ,

an

δq BCNNpa1, a2, . . . , anq

δ. l

Cách tìm bội chung nhỏ nhất

Trướ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.b

UCLNpa, bq.

Thật vậy, ta đặt m a.b

UCLNpa, bq . Bằng cách viết

m a.b

UCLNpa, bq b.a

UCLNpa, 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ức

doa

UCLNpa, bq,b

UCLNpa, bq là những số nguyên nên m là bội của a và

bộ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.y

a.b

với x, y là những số nguyên sao cho UCLNpa, bq a.x b.y. Từ đó

µ

m µ

b.x µ

a.y P Z

vìµ

b,

µ

anguyên. Nói cách khác µ là bội của m. Vậy

BCNNpa, bq m a.b

UCLNpa, bq.

Ví dụ 1.2.40 Hãy tìm BCNNp84, 90q.Lời giải: Ta có UCLNp84, 90q 6 nên

BCNNp84, 90q 84.90

6 1260.

l

Đối với bài toán tìm bội chung nhỏ nhất của nhiều số a1, a2, . . . , an,ta đặt m BCNNpa1, a2, . . . , anq, m2 BCNNpa1, a2q, m3 BCNNpm2, a3q, . . . , mn BCNNpmn1, anq thì ta có m mn.

Thật vậy, vì tập hợp các bội chung của a1 và a2 trùng với tập hợp các bộicủa BCNNpa1, a2q m2 nên tập hợp các bội chung của a1, a2, . . . , an

trùng với tập hợp các bội chung của m2, a3, . . . , an. Vậy ta có

BCNNpa1, a2, . . . , anq BCNNpm2, a3, . . . , anq.Lặp lại lí luận này nhiều lần, ta có:

m BCNNpa1, a2, . . . , anq BCNNpm2, a3, . . . , anq BCNNpm3, a4, . . . , anq . . . BCNNpmn1, anq mn.

Ví 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 chia

Lời giải: Ta có

BCNNp84, 90, 165q BCNNpBCNNp84, 90q, 165q BCNNp1260, 165q 1260.165

15 13860.

l

Hệ quả 1.2.42 Nếu a1, a2, . . . , an 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 a1.a2 . . . an của chúng.

Hệ quả 1.2.43 Nếu số nguyên x là bội chung của nhiều số a1, a2, . . . , an

nguyên tố cùng nhau từng đôi một thì x là bội của tích a1.a2 . . . an.

Nếu ta biết dạng phân tích tiêu chuẩn của a1, a2, . . . , an thì ta cũng có quitắc để tính bội chung nhỏ nhất của a1, a2, . . . , an như sau:

Định lý 1.2.6 Cho a1, a2, . . . , an là những số nguyên dương. Bội chung nhỏnhất của a1, a2, . . . , an 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ố a1, a2, . . . , an, 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ố a1, a2, . . . , an đã cho.

Chứng minh: Gọi p1, p2, . . . , pk là các ước nguyên tố phân biệt của ít nhấtmột trong những số a1, a2, . . . , an. Tức là ta có thể viết:

ai pαi1

1 pαi2

2 . . . pαik

k

trong đó αij ¥ 0 với i 1, n, j 1, k (αij ¡ 0 nếu như pj là ước của ai

và αij 0 trong trường hợp trái lại). Đặt

m pρ1

1 pρ2

2 . . . pρk

k với ρj maxtα1j, α2j, . . . , αnju, j 1, k.

Khi đó m sẽ là bội chung nhỏ nhất của a1, a2, . . . , an.Thật vậy, với giả thiết về ρj , ta có ρj ¥ αij, @i 1, n vậy m là bội

chung của a1, a2, . . . , an. Mặt khác, giả sử ν là một bội chung nào đócủa a1, a2, . . . , an thì ν phải có dạng ν pγ1

1 pγ2

2 . . . pγk

k với 0 ¤ αij ¤γj, @i 1, n, j 1, k, nghĩa là γj ¥ ρj hay ν là bội củam. Vậy ta có điềuphải chứng minh. l

Ví dụ 1.2.44 Với ba số 1960 23.5.72, 2352 24.3.72, 4004 22.7.11.13 thì ta có

BCNNp1960, 2352, 4004q 24.3.5.72.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ức

Số học đồng dư

Đồng dư thức

Định nghĩa 1.2.45 Chom 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 b mt.

Chứng minh: Ta sẽ chứng minh (i)ñ(ii)ñ(iii)ñ(i).(i)ñ(ii) Theo định nghĩa 1.2.45, ta có a mq1 r và b mq2 r,q1, q2, r P Z , 0 ¤ r m. Từ đó ta có a b mpq1 q2q 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 bmt. Gọi r là số dư trong phépchia a cho m, nghĩa là a mq1 r, q1, r P Z , 0 ¤ r m. Khi ấy ta cób mt mq1 r hay b mpq1 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. l

Tính chất của đồng dư thức

Tí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ó ai bi pmod mq, i 1, k thì ta có

a1 a2 . . . ak b1 b2 . . . bk 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ó ai bi pmod mq, i 1, k thì ta có

a1.a2 . . . ak b1.b2 . . . bk pmod mq.

30 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Chứ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óan bn 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ứngminh: Theo giả thiếta.c b.c pmod mq nênm a.cb.c haym cpa bq. Do UCLNpc, mq 1 nên m a b nghĩa là a b pmod mq.

l

Tí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 bmt. Nhân hai vế với cùng một số nguyên dương c, ta có ac bcmct,nghĩa là a.c b.c pmod m.cq. l

Tí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 δa1, b δb1,m δm1 với a1, b1, m1 P Z . Nhưng a b mt, thay vào ta cóδa1 δb1 pmod δm1q. Chia cả hai vế cho δ ta có a1 b1 m1t haya

δ b

δpmod

m

δq. l

Tí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 miq, @i 1, k, thì ta cũng cóa b pmod BCNNpm1, m2, . . . , mkqq.Chứngminh: Thật vậy, theo giả thiếtab là bội chung củam1, m2, . . . , mk

nên a b cũng là bội của BCNNpm1, m2, . . . , mkq nghĩa là a b pmod BCNNpm1, m2, . . . , mkqq. l

Tí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. l

Tí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 bmt. Đẳ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.

l

Tí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 chia

a) Tính phản xạ: Với số nguyên a tùy ý ta luôn có: a a 0... m nên

a 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 mq

và 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.

l

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 bqmod m, @a, b P Z m,

a d b pa.bqmod m, @a, b P Z m.

Ví 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 5

d 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 1

Bì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ức

nó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à x1. 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 71 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ì

φpprq pr pr1 pr1pp 1q prp1 1

pq.

Chứng minh: Từ 0 đến pr 1 có tpr

pu pr1 số chia hết cho p. Ngoài các

số đó 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 pr. Vậy

φpprq pr pr1 pr1pp 1q prp1 1

pq.

l

Bổ đề 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ử rx 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 rx 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 chia

Mặt khác, khi ta chia b số dạng a.x y px 0, b 1q cho b ta có b số dưr0, r1, . . . , rb1 thỏa mãn 0 ¤ rx b px 0, b 1q. Những số dư này đôimột khác nhau vì nếu giả sử có ri rj pi jq thì pa.i riq pa.j rjq 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ó

tr0, r1, . . . , rb1u t0, 1, . . . , b 1u.

Vậy trong tập tr0, r1, . . . , rb1u 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ứngminh: 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 1q

2a 2a 1 . . . 2a pa 1q. . . . . . . . . . . .

pb 1qa pb 1qa 1 . . . pb 1qa pa 1q

Dễ 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.xy, aq UCLNpy, aq nên các số trong bảngM nguyên

tố 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. l

Hệ quả 1.2.68 Giả sử n pα11 pα2

2 . . . pαk

k là dạng phân tích tiêu chuẩn của

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 35

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

số tự nhiên n ¡ 1. Khi đó ta có

φpnq np1 1

p1qp1 1

p2q . . . p1 1

pk

q.

Chứng minh: Do các số p1, p2, . . . , pk 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α1

1 qφppα22 q . . . φppαk

k q. Áp dụng hệ quả 1.2.66ta có điều phải chứng minh. l

Ví dụ 1.2.69 φp720q φp24.32.5q φp24qφp32qφp5q 23p2 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ì ap1 1 pmod pq.Tất nhiên, từ định lí Euler, nếuUCLNpa, 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

m bằng φpmq.

Biểu diễn số tự nhiên theo các hệ cơ số khác nhau

Kí 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.102 3.101 5.100. 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 chia

Thự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 akbk ak1b

k1 . . . a1b1 a0

trong đó k là một số nguyên không âm, a0, a1, . . . , ak là các số nguyên khôngâm nhỏ hơn b và ak 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à akak1 . . . a1a0b.

Ví dụ 1.2.71 Khai triển số 235 theo hệ cơ số 8 là 3538 vì 235 3.825.813.

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 1010111112 có khai triển thập phân là:

1010111112 28 0.27 26 0.25 24 23 22 21 20 35110.

Ví dụ 1.2.73 Số nguyên 2AE0B16 có khai triển thập phân là:

2AE0B16 2.164 10.163 14.162 0.161 11.160 17562710.

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 bq0 a0, với 0 ¤ a0 b.

Số dư a0 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 q0 cho b, ta được:

q0 bq1 a1, với 0 ¤ a1 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ức

Ta thấy a1 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 1234510.

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ó 1234510 300718. l

Thuậ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: ak : q mod b.4: q : t

q

bu.

5: k : k 1.6: Kết thúc Trong khi7: Kết quả trả về là ak1ak2 . . . a1a0b.

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 101100111101012 theo hệ cơ số 16, ta xét từngcụm bốn chữ số một: 01012 516, 11112 F 16, 11002 C16 và cuốicùng 00102 216. Vậy 101100111101012 2CF516.

38 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Một số ứng dụng

Lí 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 m

trong đó 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ập

nhanh. 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ức

Vấ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 x0, với 2 ¤ a ¤ m,0 ¤ c m và 0 ¤ x0 m. Chúng ta sẽ tạo ra dãy các số giả ngẫu nhiêntxnu với 0 ¤ xn m với mọi n bằng cách dùng liên tiếp phép đồng dư:

xn1 paxn cqmod 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 . . . x2110 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, x0 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 chia

Dã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, x0 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 231 1, a 75 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ó 231 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 cho

a.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ó ngay

nghiệm x a1b 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ình

padqx b

dpmod

m

dq.

Khi đó UCLNpad

,m

dq 1 và phương trình mới nhận được này thuộc

dạ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ó 71 4. Vậyx 4.3 12 3 pmod 9q. l

Vấ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 17

S T U V W X Y Z18 19 20 21 22 23 24 25

Phươ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 3qmod 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 3qmod 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 f1 của hàm f . Ta có f1ppq pp 3qmod 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 bqmod 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 a1 theo modulo 26 vàf1ppq pp bqa1 mod 26.

Ví dụ 1.2.83 Khi sử dụng hàm fppq p7p 3qmod 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 3qmod 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 3qmod 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 3qmod 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 f1ppq pp 3q.15 mod 26 là chữ N vìf1p16q p16 3q.15 mod 26 13. Chữ D, số tương ứng là 3 được giảimã thành chữ A vì f1p3q 0. Cuối cùng, chữ G, số tương ứng là 6 được giảimã thành chữ T vì f1p6q p6 3q.15 mod 26 19. l

42 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.2. Số nguyên và phép chia

Phươ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ử m1, m2, . . . , mr lànhững số nguyên dương nguyên tố cùng nhau từng đôi một. Khi đó hệ đồng dư:$''&

''%x a1 pmod m1q,x a2 pmod m2q,. . .x ar pmod mrq

có nghiệm duy nhất theo modulo M m1m2 . . . mr.

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ử Mk M

mk

m1m2 . . . mk1mk1 . . . mr. Ta luôn có UCLNpMk, mkq 1 vì những sốmi nguyên tố cùng nhau từng đôimột. Vậy ta có thể tìm đượcnghịch đảo yk của Mk theo modulo mk, tức là Mkyk 1 pmod mkq.Đặt

x pa1M1y1 a2M2y2 . . . arMryrqmod M.

Ta thấy rằng với mọi 1 ¤ k ¤ r thì x ak pmod mkq vì mk Mj vớimọi j k vàmk 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ử x0 và x1 là hai nghiệm của hệ. Khi đó, với mỗi k,x0 x1 ak pmod mkq cho nên mk px0 x1q với mọi 1 ¤ k ¤ r.Vì mk nguyên tố cùng nhau từng đôi một nên M px0 x1q. Vậyx0 x1.

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ức

l

Ví 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.3qmod 3.5.11 713 mod 165 53.

l

1.3 Đa thức và Trường hữu hạn

Trườ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 , pabqc apbcq .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 a1 P K sao cho: a pa1q pa1q a 0,a1 đượ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 a1 P K sao cho a.a1 a1.a 1, a1 được gọilà nghịch đảo của a và được kí hiệu là a1.

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.pb cq a.b a.c và pb cq.a b.a c.a .

44 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.3. Đa thức và Trường hữu hạn

Cá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ênx 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à1

a.

• 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ường

Cho 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).

l

Tính chất 1.3.4 (Qui tắc chuyển vế) Định nghĩa a b a pbq. Khi đónếu a b c p2q thì a c b.

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ức

Chứ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).

l

Tính chất 1.3.5a.0 0.a 0.

Chứngminh: Ta có: a.0 a.p00q a.0a.0. Mặt khác: a.0 a.00.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. l

Tí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ó a1 sao cho a1.a 1. Nhân hai vế củap3q với a1, ta được:

a1.pa.bq a1.0.

Suy ra pa1.aq.b a1.0 (theo tiên đề T.5).Do đó 1.b a1.0 (theo tiên đề T.7).Vậy b a1.0 (theo tiên đề T.6).Từ đó b 0 (theo tính chất 1.3.5).

l

Tí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. l

Tí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ạn

Chứng minh: Ta có a.pb cq a.rb pcqs a.b a.pcq a.b rpacqs a.b a.c. l

Tí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ó a1 sao cho a1a 1. Nhân haivế của biểu thức a.b a.c với a1, ta được:

a1.pa.bq a1.pa.cq.Suy ra pa1.aq.b pa1.aq.c (theo tiên đề T.5).Từ đó 1.b 1.c.

Vậy b c (theo tiên đề T.6).

l

Trường các số nguyên modulo p

Cho 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 bqmod m, @a, b P Z m,

a d b pa.bqmod 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 5

d 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 1

Như 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ức

Phầ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: a1 pmod mq.

Ví dụ 1.3.12 • Trong Z 7 ta có: 11 1, 21 4, 31 5, 41 2,51 3, 61 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 13qmod 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: 11 1,21 15, 31 10, 41 22, 121 17.

Trường hữu hạn

Trong 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 . . . 1looooooooomooooooooon

p số

0 trong đó 1 là phần tử đơn vị của trường F .

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ố. l

48 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.3. Đa thức và Trường hữu hạn

Vớ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 pd.

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ì aq1 1.

Chứng minh: Lấy b1, b2, . . . , bq1 là q 1 phần tử khác nhau từng đôimột và khác không của F q. Ta có abi abj với i j vì nếu abi abj thì apbi bjq 0 suy ra bi bj do a 0. Vậy q 1 phần tửab1, ab2, . . . , abq1 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ó:

pab1qpab2q . . . pabq1q b1b2 . . . bq1,

hay aq1pb1b2 . . . bq1q b1b2 . . . bq1.

Do b1b2 . . . bq1 0 nên suy ra aq1 1. l

Đị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 an 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ứngminh: Theo thuật toán chia, lấy q1 chia chon ta có q1 k.nr

với 0 ¤ r n. Ta có:

aq1 ak.nr panqk.ar.

Do aq1 1 và an 1 nên suy ra ar 1. Vì 0 ¤ r n và n là số nguyêndương nhỏ nhất thỏa mãn an 1 nên ta phải có r 0. Vậy n q 1. l

Đị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 ta1, a2, . . . , aq1uchí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ì as 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 : an, an1, . . . , a1, a0, ta lập biểu thức hình thức:

f anxn an1xn1 . . . a2x

2 a1x a0.

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 anxn an1x

n1 . . . a2x2 a1x a0 trong đó an 0. Khi đó ta nói rằng đa

thứ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 anxn an1xn1 . . . a2x

2 a1x a0 vàg bmxm bm1x

m1 . . . b2x2 b1x b0 trong đó an, bm 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 a0b

10 . Còn nếu n 0, m ¡ 0

thì 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ếum ¡ n

thì ta chọn q 0, r f . Nếu m ¤ n, đặt h f panb1m 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 anb1m xnm s, ta có ngay

f qg r, deg r deg g.

Để chứng minh tính duy nhất của cặp q, r, ta giả sử q1 và r1 cũng là các đathức sao cho:

f q1g r1, deg r1 deg g.

Khi đó r r1 pq1 qq.g. Nếu q q1 thì

degpr r1q degpq q1q deg g ¥ deg g.

Điều này mâu thuẫn với giả thiết deg r deg g và deg r1 deg g. Vậyq q1 và do đó r r1. 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ức

Tươ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 gq0 r1, deg r1 deg g;

g r1q1 r2, deg r2 deg r1;

r1 r2q2 r3, deg r3 deg r2;

. . .

rn2 rn1qn1 rn, deg rn deg rn1;

rn1 rnqn.

Đa thức dư cuối cùng khác đa thức không rn 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 pr

phầ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 prxs, thì

g ` h pg hqmod f, @g, h P Z prxs,g d h pg.hqmod f, @g, h P Z prxs.

Rõ ràng là tuy ta xét hai phép toán ` và d trên tập Z prxs 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ênUCLNpf, 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ức

52 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

1.3. Đa thức và Trường hữu hạn

khô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 pr phần tử.

Bài tập I

I.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 xn 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

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

I.10. Sắp xếp các hoán vị sau theo thứ tự từ điển:

2, 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ậpm 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 x1 x2 . . . xn 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ạn

I.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 m2 n2 chiahết cho 3 thì m và n cùng chia hết cho 3.

I.25. Chứng minh rằng

a) 1110 1... 100. b) 22225555 55552222 ... 7.

I.26. Tìm tất cả những số tự nhiên n để 2n 1 chia hết cho 7. Chứng minhrằng với mọi số tự nhiên n ta có 2n 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ằng

tn

pu t

n

p2u . . . t

n

pku,

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ức

trong đó k là số nguyên dương thỏa mãn pk ¤ n pk1.

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ênn ¡ 1:

a) Nếu an 1 là số nguyên tố thì a 2.

b) Nếu 2n 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) 29 1.

b) 211 1.

c) 213 1.

d) 37 1.

e) 515 1.

f) 97 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 2p 1 là lập phương của một số tựnhiên.

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à 8p2 1 là những số nguyên tố. Chứng minh rằng 8p2 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ố 2n 1 và 2n 1 không thể cùng làsố nguyên tố.

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ạn

a) Chứng minh 6 và 28 là những số hoàn hảo.

b) Chứng minh 2p1p2p 1q là một số hoàn hảo nếu 2p 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) 22.33.55 và 25.33.52.

b) 22.7 và 563.13.

c) 0 và 5.

d) 2.3.5.7.11.13 và 211.39.11.1714.

e) 187 và 51.

f) 2.3.5.7 và 2.3.5.7.

I.43. Chứng minh rằng

a) 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ãn

a) 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ức

I.45. Cho a, b, c là những số lẻ. Chứng minh rằng ta có

UCLNpa, b, cq UCLNa b

2,b c

2,c a

2

.

I.46. Chứng minh rằng:

a) Với a ¡ 1 ta có UCLNpam 1, an 1q aUCLNpm,nq 1.

b) Với a ¡ 1, m ¡ 1 ta có UCLNam 1

a 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 abc. UCLNpa, b, cqUCLNpa, bq. UCLNpb, cq. UCLNpc, aq .

b) UCLNpa, b, cq abc. BCNNpa, b, cqBCNNpa, bq. BCNNpb, cq. BCNNpc, aq .

I.49. Chứng minh rằng:

a) 100a10b c 0 pmod 21q khi và chỉ khi a2b4c 0 pmod 21q.b) 3n 1 pmod 10q khi và chỉ khi 3n4 1 pmod 10q.

I.50. Tìm số dư trong những phép chia sau:

a) 8! chia cho 11.

b) 15325 1 chia cho 9.

c) 35150 chia cho 425.

d) 6592 chia cho 11.

e) 340 chia cho 83.

f) 570 750 chia cho 12.

g) 3.575 4.7100 chia cho 132.

h) p1237156 34q28 chia cho 111.

i) 1010 10102 . . . 101010 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ạn

I.51. Chứng minh rằng:

a) 22011969 11969220 69220119 chia hết cho 102.

b) 62n1 5n2 chia hết cho 31 với n P N .

c) 270 370 chia hết cho 13.

d) 2015 1 chia hết cho 11.31.61.

e) 234n1 3 chia hết cho 11 với n P N .

f) 226n2 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ó:

1n 2n . . . mn 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ằng

mφpnq nφpmq 1 pmod mnq.

I.55. Chứng minh rằng nếu a1 a2 . . . an 0 pmod 30q thìa5

1 a52 . . . a5

n 0 pmod 30q.

I.56. Chứng minh rằng:

a) 130 230 . . . 1030 1 pmod 11q.b) Vớip là một số nguyên tố lẻ ta có: 1m2m. . .pp1qm 1 pmod pq

nếu m 0 pmod p 1q.c) Với p là một số nguyên tố lẻ ta có: 1m2m . . .pp1qm 0 pmod pq

nế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

Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

I.58. Tính giá trị của các hàm Euler sau:

a) φ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) 111112.

b) 10000000012.

c) 10101012.

d) 11001100112.

e) 111000010110102.

f) 1111100000111112.

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) 111112.

b) 10000000012.

c) 10101012.

d) 11001100112.

e) 111000010110102.

f) 1111100000111112.

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) AABB16.

b) 135AB16.

c) DEFACED16.

d) 1A5B8EF 16.

e) DCE3616.

f) FFFF 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ạn

a) 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:

xn1 p4xn 1qmod 7 với số hạt giống x0 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:

xn1 3xn mod 11 với số hạt giống x0 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ức

c) 213x 137 pmod 2113q.d) 1296x 1105 pmod 2113q.e) pa bqx a2 b2 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 3qmod 26.

b) fppq pp 15qmod 26.

c) fppq p3p 7qmod 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 ZLWKWKH ZLQG.

I.72. Biết bản mã hóa của một bức thư như sau: “LJMKGMGMXFQEXMW”.Tìm bức thư gốc biết nó được mã hóa bởi hàm fppq p7p 10qmod 26.

I.73. Giải những hệ phương trình đồng dư sau:

a)

$''''&''''%

x 1 pmod 3q,x 4 pmod 5q,x 2 pmod 7q,x 9 pmod 11q,x 3 pmod 13q.

b)

$&%

x a pmod 3q,x b pmod 5q,x c pmod 7q.

c)

$&%

x 4 pmod 5q,x 1 pmod 12q,x 7 pmod 14q.

d)

$&%

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ạn

e)

$&%

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 5rxs:

a) fpxq 2x2 4x 1 và gpxq 2x3 3x2 5.

b) fpxq px 2q2 và gpxq px 3q2.

I.76. Trong Z 5rxs hãy thực hiện phép chia fpxq x3 2x2 2x 1 chogpxq 2x2 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 x3 px 5 cho gpxq x2 5x 7 trong Z 7rxs bằng 0.

I.78. TrongQ rxs, chứng minh rằng đa thức fpxq px1q2nx2n2x1chia hết cho:

a) 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 px 1qn nx 1 chia hết cho đa thức gpxq x2 trong R rxs.I.80. Tìm các số thực a sao cho trong R rxs ta có đa thức fpxq x4 x a

chia hết cho đa thức gpxq x2 ax 1.

I.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 xn cho xk 1 là xr.

I.82. Trong Q rxs, tìm UCLN của các cặp đa thức sau:

a) fpxq x62x5x4x22x1 và gpxq x53x3x22x1.

b) fpxq x5 x3 x2 x 1 và gpxq x3 2x2 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ức

I.83. Chứng minh rằng trong R rxs, các đa thức fpxq x4 1 và gpxq x3 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 x3 3n2x n3, với nlà một số tự nhiên khác không, là đa thức bất khả qui.

I.85. Chứng minh rằng trong Q rxs, những đa thức sau bất khả qui:a) fpxq x4 8x3 12x2 6x 3.

b) gpxq x4 x3 2x 1.

c) spxq xp1 xp2 . . . x 1 với p là một số nguyên tố.

d) tpxq x3 3x 1.

64 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

Chương 2

Nguyên lí bù trừ, Đệ qui vàHệ thức truy hồi

Nguyê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 quen

vớ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ợpA, 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 XB| |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ủaAYBYC

vì 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:

|AYBYC| |A||B||C||AXB||AXC||BXC||AXBXC|.

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

Ví 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 YB Y C theo công thức

|AYBYC| |A||B||C||AXB||AXC||BXC||AXBXC|.Theo qui tắc nhân ta có thể tính ngay được |A| |B| |C| 4, |A XB| |B XC| 2, |AXC| 1 và |AXB XC| 1. Vậy |AYB YC| 8. l

Trong 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 A1, A2, . . . , An là n tập hợp hữu hạnphần tử. Khi đó, ta có:

|A1YA2Y. . .YAn| ¸

1¤i¤n

|Ai|¸

1¤i j¤n

|AiXAj|¸

1¤i j k¤n

|AiXAjXAk|

. . . p1qm1¸

1¤i1 i2 ... im¤n

|Ai1 XAi2 X . . . XAim|

. . . p1qn1|A1 XA2 X . . . XAn|.

Chứngminh: Chúng ta sẽ chứngminh 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 A1, A2, . . . , An trong đó 1 ¤ r ¤ n.Phần tử này được đếm đúng C1

r lần trong tổng° |Ai|, đúng C2

r lần trong tổng° |Ai XAj|. Tổng quát, nó được đếm đúng

C1r C2

r . . . p1qr1Crr

lần khi tính giá trị ở vế phải của công thức trên. Mặt khác, ta có

C0r C1

r C2r . . . p1qrCr

r p1 1qr 0

hayC1

r C2r . . . p1qr1Cr

r C0r 1.

Vậy dù cho a là phần tử nào trong hợp A1 YA2 Y . . .YAn, 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. l

Nhậ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ủa

66 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.2. Định nghĩa bằng đệ qui

tA1, A2, . . . , Anu. 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 2n 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 Ak 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à |A2 Y A3 Y A5 Y A7| 4. Theonguyên lí bù trừ cho hợp của bốn tập hợp ta có

|A2 YA3 YA5 YA7| |A2| |A3| |A5| |A7| |A2 XA3| |A2 XA5| |A2 XA7| |A3 XA5| |A3 XA7| |A5 XA7| |A2 XA3 XA5| |A2 XA3 XA7| |A2 XA5 XA7| |A3 XA5 XA7| |A2 XA3 XA5 XA7|.

Mặt khác, ta có |Ak| t99

ku, Ai X Aj Aij với UCLNpi, jq 1 và

Ai XAj XAk Aijk với UCLNpi, j, kq 1 . . . .Do đó

|A2 YA3 YA5 YA7| |A2| |A3| |A5| |A7| |A6| |A10| |A14| |A15| |A21| |A35| |A30| |A42| |A70| |A105| |A210| 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. l

2.2 Định nghĩa bằng đệ qui

Chú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:

fp0q 2, fpn 1q 3fpnq 5.

Hãy tìm fp1q, fp2q, fp3q và fp4q.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.

l

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. l

Ví dụ 2.2.3 Hãy cho định nghĩa đệ qui của hàm lũy thừa F pnq an, 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 đệ qui

Lời giải: Ta xác định F p0q a0 1. Vì apn1q a.an nên ta có công thứcF pn 1q a.F pnq. l

Ví dụ 2.2.4 Hãy cho định nghĩa đệ qui của hàm F pnq n

k0

ak.

Lời giải: Đầu tiên ta xác định F p0q a0.Sau đó ta tìm công thức đệ qui như sau:

F pn 1q n1

k0

ak n

k0

ak

an1 F pnq an1.

l

Ví dụ 2.2.5 Hãy cho định nghĩa đệ qui của hàm F pnq n¹

k0

ak.

Lời giải: Phần đầu của định nghĩa đệ qui là: F p0q a0.Phần thứ hai của định nghĩa của đệ qui là

F pn 1q n1¹k0

ak n¹k0

ak

.an1 an1.F pnq.

l

Ví dụ 2.2.6 Hãy đưa ra định nghĩa đệ qui của hàm max và min sao chomaxta1, a2, . . . , anu và minta1, a2, . . . , anu tương ứng là số lớn nhất vàbé nhất của n số a1, a2, . . . , an.

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 maxta1u a1 và minta1u a1.Sau đó ta đưa ra biểu thức đệ qui

maxta1, a2, . . . , anu maxtmaxta1, a2, . . . , an1u, anu,và

minta1, a2, . . . , anu mintminta1, a2, . . . , an1u, anu.l

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ớn

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 69

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

hơ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 tfnu được định nghĩa bằng đệqui như sau: f0 0, f1 1 và fn fn1 fn2, với n 2, 3, 4, . . ..Hãy tính các số hạng f2, f3, f4, f5, f6, f7.

Lời giải: Từ định nghĩa đệ qui của dãy tfnu ta suy ra:f2 f1 f0 0 1 1,f3 f2 f1 1 1 2,f4 f3 f2 2 1 3,

f5 f4 f3 3 2 5,f6 f5 f4 5 3 8,f7 f6 f5 8 5 13.

l

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ó fn ¡ αn2, trong đó α 1 ?5

2.

Lời giải: Gọi P pnq là mệnh đề “fn ¡ αn2”.Với n 3 và n 4, ta có

α 1 ?5

2 2 f3, α2 3 ?5

2 3 f4.

Vậy P p3q và P p4q là đúng.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ìnhx2 x 1 0 nên α2 α 1. Do đó

αn1 α2.αn3 pα 1qαn3 α.αn3 αn3 αn2 αn3

70 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.2. Định nghĩa bằng đệ qui

Theo giả thiết qui nạp nếu n ¥ 5 ta có

fn1 ¡ αn3, fn ¡ αn2.

Từ đó fn1 fn fn1 ¡ α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 đệ qui

Cá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ộcA 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. l

Bộ 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, pfgq 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, px3q 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à p30q 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ức

pp ^ qq, pr _ F q và ppp ^ qq Ñ pr _ F qqlà đúng qui tắc.

Đị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 đệ qui

Ví 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 Σ.

l

Ví dụ 2.2.14 Chứng minh rằng lpxyq lpxq lpyq, trong đó x và y là nhữngxâu thuộc Σ.

Lờ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 định

lpxyq lpxq lpyq,với x, y là những xâu thuộc Σ.Đặt P pnq là mệnh đề

lpxyq lpxq lpyq,với x P Σ và y P Σ, y là xâu có độ dài n.Với n 0 ta có y λ, khi đó

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ồi

Mặt khác, theo giả thiết qui nạp ta lại có lpxyq lpxq lpyq. 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. l

2.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ố tanu là công thức biểudiễn an qua một hay nhiều số hạng đi trước của dãy, cụ thể là biểu diễn quaan0

, an01, . . . , an1, với mọi n nguyên dương và n ¥ n0, trong đó n0 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 tanu là dãy số thỏa mãn hệ thức truy hồi an an12an2,với n 2, 3, . . . , và cho a0 1, a1 2. Tìm a2, a3.

Lời giải: Từ hệ thức truy hồi ta có a2 a1 2a0 2 2.1 4 vàa3 a2 2a1 4 2.2 8. l

Ví dụ 2.3.3 Cho hệ thức truy hồi an 3an1 2an2, 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. an 2n, @n P N .

2. an 2n, @n P N .

3. an 2, @n P N .

Lời giải:

1. Giả sửan 2n, vớimọin P N .Khi đó vớin ¥ 2 ta có3an12an2 3.2n1 2.2n2 2n. Do đó, dãy tanu với an 2n là nghiệm của hệthức truy hồi đã cho.

2. Xét dãy an 2n, với mọi n P N . Khi đó a0 0, a1 2, a2 4. Doa2 4 3a1 2a0 nên dãy tanu với an 2n không là nghiệm củahệ thức truy hồi đã cho.

3. Giả sửan 2, với mọin P N .Khi đó vớin ¥ 2 ta có 3an12an2 2.2 2 2. Do đó, dãy tanu với an 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ồi

l

Nhữ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, a0 1 vàa1 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.

Mô hình hóa bằng hệ thức truy hồi

Ví 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 Pn 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 tPnu thỏa mãn hệ thức truy hồi sau:

Pn Pn1 0, 084.Pn1 1, 084.Pn1.

Điều kiện đầu là P0 100.Dùng phương pháp lặp ta có thể tìm được công thức cho Pn. Thật vậy, ta có

P1 1, 084.P0,P2 1, 084.P1 p1, 084q2.P2,

. . .Pn 1, 084.Pn1 p1, 084qn.P0.

Khi thay điều kiện đầu P0 100 vào ta nhận được công thức:

Pn p1, 084qn.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à Pn p1, 084qn.100. Khi đó từ hệ thức truy hồivà giả thiết qui nạp ta có

Pn1 1, 084.Pn 1, 084.p1, 084qn.100 p1, 084qn1.100.

Điều này chứng tỏ công thức tường minh của Pn 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ồi

Thay n 20 vào công thức Pn p1, 084qn.100 cho ta số tiền sau 20năm trong tài khoản là

P20 p1, 084q20.100 501, 864 triệu.

l

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?

Hình 2.1: Số đôi thỏ sau n tháng trên đảo.

Lời giải: Giả sử fn là số cặp thỏ sau n tháng. Ta sẽ chỉ ra rằng fn 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ồi

f1 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à f2 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 fn1 và số cặp thỏ mới đẻ ra là fn2, 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 tfnu thỏa mãn hệ thức truy hồi

fn fn1 fn2,

với n ¥ 3 và những điều kiện đầu f1 1 và f2 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. l

Truyề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 Hn 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 tHnu.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 Hn1 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ồi

Hì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 Hn1 lần dịchchuyển.

Từ đó ta có hệ thức truy hồi

Hn 2Hn1 1.

Điều kiện đầu H1 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ó:

Hn 2Hn1 1

2p2Hn2 1q 1

22Hn2 2 1

22p2Hn3 1q 2 1

23Hn3 22 2 1

. . .

2n1H1 2n2 . . . 2 1

2n 1.

Phương pháp lặp này cho ta nghiệm của hệ thức truy hồiHn 2Hn1 1 vớiđiều kiện đầu H1 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. l

78 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.4. Giải Hệ thức truy hồi

Muốn thực hiện được lời phán của Phạn Thiên thì phải mấtH64 lần chuyểnxuyến. Thay n 64 vào hệ thức trên ta được

H64 264 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 Pn 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 a1a2 . . . an1an. Với n ¥ 3 ta xét những trườnghợp sau:

Nếu an 1 thì xâu đã cho có dạng a1a2 . . . an11. 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 a1a2 . . . an1 độdài n 1 chứa hai số 0 liên tiếp và bằng Pn1 xâu.

Nếu an 0 thì xâu đã cho có dạng a1a2 . . . an10. Khi đó nếu an1 0thì xâu đã cho luôn chứa hai số 0 liên tiếp nên ta có 2n2 xâu, còn nếu an1 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 a1a2 . . . an2 độ dài n 2 chứa hai số 0 liên tiếp và bằng Pn2 xâu.

Như vậy ta có hệ thức truy hồi

Pn Pn1 Pn2 2n2,

với n ¥ 3. Điều kiện đầu là P1 0 vì không có xâu nhị phân nào độ dài 1 lạicó hai số 0 liên tiếp, P2 1 vì có duy nhất xâu 00 độ dài hai thỏa mãn đề bài.

Để nhận được P5 ta sử dụng liên tiếp hệ thức truy hồi

P3 P2 P1 2 3,

P4 P3 P2 22 8,P5 P4 P3 23 19.

l

2.4 Giải Hệ thức truy hồi

Bộ 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ồi

Hệ 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:

an c1an1 c2an2 . . . ckank,

trong đó c1, c2, . . . , ck là những số thực và ck 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 caj; 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ì an đượ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 đầu

a0 C0, a1 C1, . . . , ak1 Ck1.

Ví dụ 2.4.2 Hệ thức truy hồi Pn 1, 084.Pn1 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 fn fn1 fn2 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 an 2an1 5an5 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 an an1 2pan2q2 là không tuyến tính.Hệ thức truy hồi an an1 an2 2n2 là không thuần nhất.Hệ thức truy hồi an nan1 không có hệ số hằng.

Định nghĩa 2.4.4 Cho hệ thức truy hồian c1an1c2an2. . .ckank.Khi đó phương trình

rk c1rk1 c2r

k2 . . . ck1r ck 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 fn fn1 fn2 có phương trình đặc trưng là

r2 r1 0 và có hai nghiệm đặc trưng là r1 1 ?5

2và r2

1 ?5

2.

80 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.4. Giải Hệ thức truy hồi

Hệ thức truy hồi an 2an2 an4 có phương trình đặc trưng làr4 2r2 1 0 và có hai nghiệm đặc trưng bội hai là r1 1 và r2 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ằng

Phươ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 an rn, trong đó r là hằng số. Nhận thấy rằng an rn lànghiệm của hệ thức truy hồi an c1an1 c2an2 . . . ckank khi vàchỉ khi

rn c1rn1 c2r

n2 . . . ckrnk.

Sau khi chia cả hai vế cho rnk và chuyển vế ta được phương trình tương đương

rk c1rk1 c2r

k2 . . . ck1r ck 0.

Vậy dãy tanu với an rn 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ằng

Cho hệ thức truy hồi tuyến tính thuần nhất bậc hai với hệ số hằng an c1an1 c2an2 có điều kiện đầu là a0 C0 và a1 C1. 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 c1, c2 là hai số thực. Giả sử phương trình đặc trưng r2 c1rc2 0 có hai nghiệm phân biệt r1 và r2. Khi đó dãy tanu là nghiệm củahệ thức truy hồi an c1an1 c2an2 nếu và chỉ nếu an α1r

n1 α2r

n2 ,

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ồi

Chứng minh: Trước hết ta sẽ chỉ ra rằng: nếu r1, r2 là hai nghiệm của phươngtrình đặc trưng vàα1, α2 là những hằng số thì dãy tanu vớian α1r

n1 α2r

n2

là nghiệm của hệ thức truy hồi.Giả sử r1, r2 là hai nghiệm của r2 c1r c2 0, tức là r2

1 c1r1 c2

và r22 c1r2 c2. Khi đó ta có

c1an1 c2an2 c1pα1rn11 α2r

n12 q c2pα1r

n21 α2r

n22 q

α1rn21 pc1r1 c2q α2r

n22 pc1r2 c2q

α1rn21 r2

1 α2rn22 r2

2

α1rn1 α2r

n2

an.

Vậy dãy tanu với an α1rn1 α2r

n2 là nghiệm của hệ thức truy hồi đã cho.

Ngược lại, giả sử tanu 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 an α1r

n1 α2r

n2 , với

n 1, 2, . . . .

Ta chọn α1 và α2 là nghiệm của hệ phương trình#α1 α2 C0,

α1r1 α2r2 C1.

Giải ra ta được nghiệm

α1

C1 C0r2

r1 r2và α

2 C0r1 C1

r1 r2.

Đặt bn α1r

n1 α

2rn2 . Theo chứng minh trên ta có dãy tbnu là một nghiệm

của hệ thức truy hồi và có cùng điều kiện đầu với dãy tanu. Vì hệ thức truy hồivà điều kiện đầu xác định duy nhất dãy nên an bn α

1rn1 α

2rn2 . Định lí

được chứng minh. l

Ví dụ 2.4.6 Tìm nghiệm của hệ thức truy hồi an 3an1 2an2 với điềukiện đầu a0 5 và a1 8.

Lời giải: Phương trình đặc trưng của hệ thức truy hồi có dạng r23r2 0.Các nghiệm đặc trưng là r1 1 và r2 2. Theo định lí 2.4.1 dãy tanu lànghiệm của hệ thức truy hồi khi và chỉ khi

an α1.1n α2.2

n,

với α1 và α2 là những hằng số. Từ điều kiện đầu ta có#a0 5 α1 α2,

a1 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ồi

Giả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 tanu với

an 2 3.2n.

l

Ví 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 fn fn1 fn2

với điều kiện đầu f0 0 và f1 1. Các nghiệm đặc trưng là:

r1 1 ?5

2và r2

1 ?5

2.

Theo định lí 2.4.1 các số Fibonacci được cho bởi công thức sau:

fn α11 ?5

2

n α21 ?5

2

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:$&

%f0 0 α1 α2,

f1 1 α11 ?5

2

α21 ?5

2

.

Giải ra ta được α1 1?5và α2

1?5.

Do đó các số Fibonacci được cho bởi công thức tường minh sau

fn 1?5

1 ?5

2

n 1?5

1 ?5

2

n.

l

Trườ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 c1, c2 là hai số thực. Giả sử phương trình đặc trưng r2 c1r c2 0 có nghiệm kép r0. Khi đó dãy tanu là nghiệm của hệ thứctruy hồi an c1an1 c2an2 nếu và chỉ nếu an α1r

n0 α2nrn

0 , 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 83

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

Chứngminh: Đầu tiên ta sẽ chỉ ra rằng: nếu r0 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 tanu với an α1r

n0 α2nrn

0là nghiệm của hệ thức truy hồi.

Giả sử r0 là nghiệm kép của r2 c1r c2 0, ta có r20 c1r0 c2,

c21 4c2 0 và r0

c1

2. Khi đó

c1an1 c2an2 c1pα1rn10 α2pn 1qrn1

0 q c2pα1r

n20 α2pn 2qrn2

0 q α1r

n20 pc1r0 c2q α2nrn2

0 pc1r0 c2q α2r

n20 pc1r0 2c2q

α1rn20 r2

0 α2nrn20 r2

0 α2rn20 pc

21 4c2

4q

α1rn0 α2nrn

0

an.

Vậy dãy tanu với an α1rn0 α2nrn

0 là nghiệm của hệ thức truy hồi đã cho.Ngược lại, giả sử tanu 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 an α1rn0 α2nrn

0 , vớin 1, 2, . . . .Ta chọn α1 và α2 là nghiệm của hệ phương trình:#

α1 C0,

α1r0 α2r0 C1.

Giải ra ta được nghiệm:

α1 C0 và α

2 C1

r0 C0.

Đặt bn α1r

n0 α

2nrn0 . Theo chứng minh điều kiện cần ở trên ta có

dãy tbnu 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 tanu. Vì hệ thức truy hồi và điều kiện đầu xác định duy nhất dãy nênan bn α

1rn0 α

2nrn0 . Định lí được chứng minh. l

Ví dụ 2.4.8 Tìm nghiệm của hệ thức truy hồi an 4an1 4an2 với điềukiện đầu a0 1 và a1 4.

Lời giải: Ta thấy phương trình đặc trưng r2 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ạng

an α1p2qn α2np2qn,

84 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.4. Giải Hệ thức truy hồi

với α1 và α2 là những hằng số. Từ hai điều kiện đầu ta suy ra:#a0 1 α1,

a1 4 α1p2q α2p2q.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à:

an p2qn 3n.p2qn.

l

Trường hợp 3: Phương trình đặc trưng không có nghiệm thực. Khi đó∆ : c2

14c2 0. Bằng cách đặtρ ?c2 và chọn gócα với 0 ¤ α ¤ 2π

sao cho cos α c1

2?c2

và sin α |∆|2?c2

, công thức nghiệm của hệ thức

truy hồi được cho trong định lí sau:

Định lý 2.4.3 Cho c1, c2 là hai số thực. Giả sử phương trình đặc trưng r2 c1rc2 0 không có nghiệm thực. Khi đó dãy tanu là nghiệm của hệ thức truyhồian c1an1c2an2 nếu và chỉ nếuan ρnpα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 an an1 an2 với nhữngđiều kiện đầu a0 1 và a1 1.

Lời giải: Nhận thấy phương trình đặc trưng r2 r 1 0 không có nghiệmthực. Xét ρ ap1q 1 và chọn góc α với 0 ¤ α ¤ 2π thỏa mãn

cos α 1

2và sin α

?3

2, ta được α π

3. Theo định lí 2.4.3 nghiệm của

hệ thức truy hồi có dạng:

an 1npα1 cosnπ

3 α2 sin

3q,

với α1 và α2 là những hằng số. Dựa vào hai điều kiện đầu ta suy ra:$&%

a0 1 α1,

a1 1 α1 cosπ

3 α2 sin

π

3.

Giải ra ta được nghiệm α1 1 và α2 1?3.

Vậy nghiệm của hệ thức truy hồi thỏa mãn hai điều kiện đầu là:

an cosnπ

3 1?

3sin

3.

l

Bộ 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ồi

Giải hệ thức truy hồi tuyến tính thuần nhất bậc k với hệ số hằng

Trong 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 c1, c2, . . . , ck là những số thực. Giả sử phương trình đặctrưng rk c1r

k1 . . . ck 0 có k nghiệm phân biệt r1, r2, . . . , rk. Khiđó dãy tanu là nghiệm của hệ thức truy hồi

an c1an1 c2an2 . . . ckank

nếu và chỉ nếuan α1r

n1 α2r

n2 . . . αkr

nk ,

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 an an1 4an2 4an3

thỏa mãn điều kiện đầu a0 2 , a1 9 và a2 5.

Lời giải: Phương trình đặc trưng của hệ thức truy hồi r3 r2 4r 4 0 cócác nghiệm đặc trưng là r1 1, r2 2, r3 2. Theo định lí 2.4.4 nghiệmcủa hệ thức truy hồi có dạng

an α11n α22

n α3p2qn,

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: $&

%a0 2 α1 α2 α3,a1 9 α1 2α2 2α3,a2 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à

an 1 2.2n 3.p2qn.

l

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:

86 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 c1, c2, . . . , ck là những số thực. Giả sử phương trình đặctrưng rk c1r

k1 . . . ck 0 có các nghiệm đơn r1, . . . , rs và cácnghiệm bội rs1, . . . , rt cấp tương ứng là ls1, . . . , lt, với 1 ¤ s t k vàs ls1 . . . lt k. Khi đó dãy tanu là nghiệm của hệ thức truy hồi

an c1an1 c2an2 . . . ckank

nếu và chỉ nếu

an α1rn1 . . . αsr

ns pαs1 αs2n . . . αsls1

nls11qrns1

. . . pαt αt1n . . . αtltnlt1qrn

t

vớ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 an 5an1 8an2 4an3

thỏa mãn điều kiện đầu a0 3 , a1 2 và a2 2.

Lời giải: Phương trình đặc trưng r3 5r2 8r 4 0 của hệ thức truyhồi có các nghiệm đặc trưng là r1 1 và r2 2 bội hai. Theo định lí 2.4.5nghiệm của hệ thức truy hồi có dạng

an α11n pα2 α3nq2n,

với α1, α2 và α3 là những hằng số. Từ những điều kiện đầu ta có$&%

a0 3 α1 α2,a1 2 α1 2α2 2α3,

a2 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à

an 2 p1 nq2n.

l

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ạng

rk c1rk1 . . . ck

pr r1qpr r2q . . . pr rsqpr2 a1r b1q . . . pr2 atr btq,trong đó các tam thức bậc hai pr2 air biq, i 1, t không có nghiệm thựcvà s 2t k. Tương tự như định lí 2.4.3 đặt: ρi

?bi và chọn góc αi

với 0 ¤ αi ¤ 2π sao cho cos αi ai

2?

bi

và sin α |a2i 4bi|2?

bi

, công thức

nghiệ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 87

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

Định lý 2.4.6 Cho c1, c2, . . . , ck là những số thực. Giả sử phương trình đặctrưng rk c1r

k1 . . . ck 0 có nghiệm không thực. Khi đó dãy tanu lànghiệm của hệ thức truy hồi:

an c1an1 c2an2 . . . ckank

nếu và chỉ nếu

an α1rn1 . . . αsr

nk ρn

1 pβ1 cos nα1 γ1 sin nα1q . . . ρn

t pβt cos nαt γ1 sin nαtq.

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 an an3 với điều kiện đầu

a0 3, a1 3

2và a2

3

2.

Lời giải: Nhận thấy phương trình đặc trưng r3 1 pr 1qpr2 r 1q cóthừa số r2 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

2và sin α

?3

2, ta được α 2π

3.

Theo định lí 2.4.6 nghiệm của hệ thức truy hồi có dạng

an α11n 1npβ1 cos

2nπ

3 γ1 sin

2nπ

3q,

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$''''&''''%

a0 3 α1 β1,

a1 3

2 α1 1

2β1

?3

2γ1,

a2 3

2 α1 1

2β1

?3

2γ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à

an 1 2 cos2nπ

3?

3 sin2nπ

3.

l

88 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ằng

2.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ạng

an c1an1 c2an2 . . . ckank F pnq,trong đó c1, c2, . . . , ck là những số thực và ck 0.

Ví dụ 2.5.2 Hệ thức truy hồi an 2an2 2n là hệ thức truy hồi tuyến tínhkhông thuần nhất bậc 2 hệ số hằng.

Định lý 2.5.1 Cho hệ thức truy hồi

an c1an1 c2an2 . . . ckank F pnq.Khi đó nếu tpnu 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 tpnhnu, trong đó thnu là nghiệm của hệ thức truyhồi tuyến tính thuần nhất tương ứng: an c1an1 c2an2 . . . ckank.

Chứng minh: Giả sử tqnu là một nghiệm của hệ thức truy hồi không thuầnnhất. Ta có:

qn c1qn1 c2qn2 . . . ckqnk F pnqvà

pn c1pn1 c2pn2 . . . ckpnk F pnq.Trừ từng vế của hai phương trình trên ta được:

qn pn c1pqn1 pn1q c2pqn2 pn2q . . . ckpqnk pnkq.Đặt hn qn pn. Từ đẳng thức trên ta được thnu là nghiệm của hệ thức truyhồi thuần nhất.Vậy qn pn hn và ta có điều phải chứng minh. l

Theo đị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 b0n

m b1nm1 . . . bm.

a.Nếuphương trình đặc trưngrkc1rk1. . .ck 0 khôngnhậnr 1 làm

Bộ 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ồi

nghiệm thì ta tìm nghiệm riêng tpnu dưới dạngpn t0nmt1n

m1. . .tm,với t0, t1, . . . , tm 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 an an1 2an2 n 1.

Lời giải: Phương trình đặc trưng r2 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 pn bn c. Thay tpnuvào hệ thức truy hồi ta có

bn c rbpn 1q cs 2rbpn 2q cs n 1.

Hayp2b 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 1

2và c 3

4. Vậy nghiệm riêng của hệ thức truy hồi đã

cho có dạng pn 1

2n 3

4. l

b.Nếu phương trình đặc trưng rkc1rk1. . .ck 0 có nghiệm r 1 bội

s thì tìm nghiệm riêng tpnu dưới dạng pn nspt0nm t1nm1 . . . tmq,

với t0, t1, . . . , tm 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 an 3an1 2an3 1.

Lời giải: Do phương trình đặc trưng r3 3r 2 0 có nghiệm kép r1 r2 1 và r3 2 nên ta tìm một nghiệm riêng của hệ thức truy hồi dưới dạngpn an2. Thay tpnu vào hệ thức truy hồi ta có

an2 3apn 2q2 2apn 3q2 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 pn n2

6. l

2. 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ạngpn 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ằng

Ví dụ 2.5.5 Tìm một nghiệm riêng của hệ thức truy hồi sau an an2 2n.

Lời giải: Do phương trình đặc trưng r2 1 0 có nghiệm là r1 1 vàr2 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ạngpn a2n. Thay tpnu vào hệ thức truy hồi ta có

a2n a2n2 2n.

Giải ra ta được a 4

3

Vậy một nghiệm riêng của hệ thức truy hồi đã cho có dạng pn 4

32n. l

b. 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 pn ansβn.

Ví dụ 2.5.6 Tìm một nghiệm riêng của hệ thức truy hồi sau an 3an1 3n.

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 pn an3n. Thay tpnu vào hệ thức truyhồi ta được

an3n 3apn 1q3n1 3n.

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 pn n3n. l

3. F pnq có dạng: F pnq pb0nm . . . bmq Aβn.

Ta tìm nghiệm riêng dưới dạng pn p1np2

n, trong đó p1n là nghiệm riêng của

hệ thức truy hồi

an c1an1 c2an2 . . . ckank b0nm . . . bm,

và p2n là nghiệm riêng của hệ thức truy hồi

an c1an1 c2an2 . . . ckank Aβn.

Ví dụ 2.5.7 Tìm một nghiệm riêng của hệ thức truy hồi sau an 6an1 3n 5n.

Lời giải: Ta có p1n 3n là một nghiệm riêng của hệ thức truy hồi: an

6an1 3n và p2n n 6

5là nghiệm riêng của hệ thức truy hồi an

6an1 5n. Vậy pn p1n p2

n 3n n 6

5là một nghiệm riêng của

hệ thức truy hồi an 6an1 3n 5n. l

Bộ 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ồi

2.6 Độ phức tạp của thuật toán

Mộ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ản

Mộ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 C1 và số nguyêndương N1 sao cho với mọi n ¥ N1, ta có

fpnq ¤ C1gpnq.

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ằng

92 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.6. Độ phức tạp của thuật toán

số dương C2 và số nguyên dương N2 sao cho với mọi n ¥ N2, ta có

C2gpnq ¤ 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 C1, C2 và số nguyên dương N0 sao cho với mọi n ¥ N0, ta có

C1gpnq ¤ fpnq ¤ C2gpnq.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 10n2 5n 7 Θpn2q.Lời giải: Do 10n2 5n 7 ¤ 10n2 5n2 7n2 22n2, với mọi n ¥ 1nên chọn C1 22 ta được:

10n2 5n 7 Opn2q.Do 10n2 5n 7 ¥ 10n2, với mọi n ¥ 1 nên chọn C2 10 ta được

10n2 5n 7 Ωpn2q.Do 10n2 5n 7 Opn2q và 10n2 5n 7 Ωpn2q nên

10n2 5n 7 Θpn2q.l

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 đây

Ví dụ 2.6.3 Cho P pnq aknk ak1n

k1 . . . a1n a0 là đa thức hệsố thực bậc k với ak ¡ 0. Chứng minh rằng P pnq Θpnkq.Bộ môn Toán - ĐẠI HỌC THĂNG LONG 93

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

Lời giải: Trước hết ta chứng tỏ rằng P pnq Opnkq. Ta cóP pnq akn

k ak1nk1 . . . a1n a0

¤ aknk |ak1|nk1 . . . |a1|n |a0|

¤ aknk |ak1|nk . . . |a1|nk |a0|nk

pak |an1| . . . |a1| |a0|qnk.

Nếu đặt C1 ak |an1| . . . |a1| |a0| thì P pnq ¤ C1nk, với mọi

n N1 ¥ 1. Do đó P pnq Opnkq. Bây giờ ta sẽ chứng minh rằngP pnq Ωpnkq.

P pnq aknk ak1n

k1 . . . a1n a0

¥ aknk |ak1|nk1 . . . |a1|n |a0|

ak

2nk ak

2nk |ak1|nk1 . . . |a1| |a0|

¥ ak

2nk ak

2nk p|ak1|nk1 . . . |a1|nk1 |a0|nk1q

ak

2nk ak

2n p|ak1| . . . |a1| |a0|q

nk1.

Nếu đặt C2 ak

2và N2 tp|ak1| . . . |a1| |a0|q

ak

2u thì ta có

P pnq ¥ C2nk đúng với mọi n ¥ N2. Vậy P pnq Ωpnkq. Do đó

P pnq Θpnkq. l

Ví 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. l

Ví 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án

Do đó log n! Opn log nq.Mặt khác, đặt m t

n

2u ta có

log 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 1q¥ n

2log

n

2.

Nhận thấy với n ¥ N đủ lớn ta có

n

2log

n

2 n

2plog n log 2q ¥ n

2plog n 1

2log nq 1

4n log n.

Do đó log n! ¥ 1

4n log n và log n! Ωpn log nq.

Như vậy log n! Θpn log nq. l

Ví dụ 2.6.6 Chứng minh rằng với mọi số nguyên dương k ta có

1k 2k . . . nk Θpnk1q.

Lời giải: Ta có

1k 2k . . . nk ¤ nk nk . . . nk

nnk nk1,

với n ¥ 1. Do đó 1k 2k . . . nk Opnk1q.Mặt khác, đặt m t

n

2u ta có

1k 2k . . . nk 1k 2k . . . mk pm 1qk . . . nk

¥ pm 1qk pm 2qk . . . nk

¥ pm 1qk pm 1qk . . . pm 1qk pn mqpm 1qk

¥ n

2pn2qk

nk1

2k1.

Vậy 1k 2k . . . nk Ωpnk1q.Do đó 1k 2k . . . nk Θpnk1q. l

Bộ 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ồi

Ví 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:

r0 r1q1 r2, 0 ¤ r2 r1,r1 r2q2 r3, 0 ¤ r3 r2,

. . .rn2 rn1qn1 rn, 0 ¤ rn rn1,rn1 rnqn,

với a r0 và b r1. Như vậy để tìm rn UCLNpa, bq ta dùng n phépchia. Ta có những thương q1, q2, . . . , qn1 luôn lớn hơn hay bằng 1 và qn ¥ 2do rn rn1. Từ những nhận xét trên ta được

rn ¥ 1 f2,rn1 ¥ 2rn ¥ 2f2 f3,rn2 ¥ rn1 rn ¥ f3 f2 f4,

. . .r2 ¥ r3 r4 ¥ fn1 fn2 fn,b r1 ¥ r2 r3 ¥ fn fn1 fn1.

Từ đó suy ra nếu n là số phép chia trong thuật toán tìm UCLNpa, bq thìb ¥ fn1. Từ ví dụ 2.2.8 ta có fn1 ¡ αn1, với n ¡ 2 vàα 1 ?5

2. Do

vậy b ¡ αn1. Vì log10 α ∼ 0, 208 ¡ 1

5nên ta có đánh giá sau:

log10 b ¡ pn 1q log10 α ¡ n 1

5.

Hay n 1 5 log10 b. Giả sử b là số nguyên có k chữ số, khi đó b 10k vàlog10 b k. Do vậy n 1 5k hay n ¤ 5k. Vì

k tlog10 bu 1 ¤ log10 b 1

nênn ¤ 5k ¤ 5plog10 b 1q Oplog10 bq.

Vậy thuật toán Euclid để tìmUCLNpa, bq với mọi a ¡ b đã sử dụngOplog bqphép chia. l

96 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.6. Độ phức tạp của thuật toán

Mệ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 f1pnq Opg1pnqq và f2pnq Opg2pnqq thì1. f1pnq f2pnq Opg1pnq g2pnqq.2. f1pnq f2pnq Opmaxtg1pnq g2pnquq.3. f1pnqf2pnq Opg1pnqg2pnqq.

Chứng minh: Giả sử với mọi n ¥ N1 ta có f1pnq ¤ C1g1pnq và với mọin ¥ N2 ta có f2pnq ¤ C2g2pnq.1. Đặt N0 maxtN1, N2u và C0 maxtC1, C2u. Khi đó với mọi

n ¥ N0 ta có

f1pnq f2pnq ¤ C1g1pnq C2g2pnq ¤ C0pg1pnq g2pnqq.

2. Đặt N0 maxtN1, N2u và C0 C1 C2. Khi đó với mọi n ¥ N0

ta có

f1pnq f2pnq ¤ C1g1pnq C2g2pnq¤ pC0 C1qmaxtg1pnq, g2pnqu C0 maxtg1pnq, g2pnqu.

3. Đặt N0 maxtN1, N2u và C0 C1C2. Khi đó với mọi n ¥ N0 tacó

f1pnqf2pnq ¤ C1g1pnqC2g2pnq C0g1pnqg2pnq.l

Mệ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

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

1. Θ phản xạ, tức là fpnq Θpfpnqq.2. Θ đố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 ra

fpnq Θ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ới

fpnq.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ụ

Θp7n5 nq1

3 log n Θ

3n

53 2n log n

Θ

n

53

Θn

53 15n

12

Θ

n5 n 2

n103 log n

.

Vì n53 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

Θpn53 q, khi đó ta nói fpnq Θpn5

3 q có bậc n53 .

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 n2 Opnq bằng phản chứng.Như vậy, n và n2 nằm ở những lớp khác nhau. Do n Opn2q ta suy raOpnq Opn2q và ta nói rằng n có thứ bậc nhỏ hơn n2. 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, n2, n3, 2n, n2n, 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 Opn2q Opn3q Op2nq Opn2nq 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ạp Thuật ngữ

Op1q Độ phức tạp hằng sốOplog nq Độ phức tạp lôgarít

Opnq Độ phức tạp tuyến tínhOpn2q Độ phức tạp bậc haiOpn3q Độ phức tạp bậc baOpnmq Độ phức tạp đa thức

OpCnq, 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án

Phâ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 qui

T pnq $&%

d, nếun ¤ 1,

aT pncq bn, nếun ¡ 1.

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 99

Chương 2. Nguyên lí bù trừ, Đệ qui và Hệ thức truy hồi

có công thức sau

T pnq

$'&'%

Opnq, nếu a c,

Opn log nq, nếu a c,

Opnlogc a1q, nếu a ¡ c.

Chứngminh: Don là lũy thừa của c nên có số nguyên dương i sao chon ci.Ta có

T pnq aT pncq bn a

a

n

c2 bn

c

bn

a2 n

c2 abn

c bn

a2aT pnc3q bn

c2

abn

c bn

a3T pnc3q a2bn

c2 abn

c bn

. . .

aiT pnciq bn

i1

j0

pacqj.

Từ i logc n ta được công thức

T pnq alogc nT p n

clogc nq bn

logc n1¸j0

pacqj.

Sử dụng những tính chất của lôgarit ta có

alogc n pclogc aqlogc n pclogc nqlogc a nlogc a.

Do đó

T pnq dnlogc a bn

logc n1¸j0

pacqj.

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ó

logc n1¸j0

pacqj c

c a.

Do đóT pnq dnlogc a bcn

c 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án

vì 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 dnlogc a bn

logc n1¸j0

1j Opn log nq.

Trường hợp 3: Nếu a ¡ c ta có

T pnq dnlogc a bn

logc n1¸j0

pacqj dnlogc a bn

pacqlogc n 1

ac 1

dnlogc a bnnlogc a1 1

ac 1

Opnlogc a1q.

l

Từ định lí trên ta suy ra những trường hợp sau đây:

• Nếu T pnq 2T pn3q dn thì T pnq Opnq.

• Nếu T pnq 2T pn2q dn thì T pnq Opn log nq.

• Nếu T pnq 4T pn2q dn thì T pnq Opn2q.

Bài tập II

II.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 A1 Y A2 Y A3 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 A1 Y A2 Y A3 nếu A1 có 100 phần tử, A2 có1000 phần tử và A3 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ồi

a) A1 A2 A3.

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 Long, 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 x1 x2 x3 15 với 2 x1 6, 6 x2 10 và0 x3 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án

II.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 rfpnqs2 2fpnq 2.

d) fpn 1q 3fpnq3.

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 rfpnqs2fpn 1q.c) fpn 1q 3rfpnqs2 4rfpn 1qs2.

d) fpn 1q fpn 1qfpnq .

II.13. Hãy cho định nghĩa đệ qui của dãy tanu, n 1, 2, . . . nếu

a) an 6n.

b) an 10n.

c) an 2n 1.

d) an 1 p1qn.e) an npn 1q.f) an 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 Smpnq 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 Smpnq.II.16. Cho fk là số Fibonacci thứ k. Với n nguyên dương, hãy chứng minhnhững tính chất sau:

a) f21 f2

2 f23 . . . f2

n fnfn1.

b) f1 f2 . . . fn fn2 1.

c) f1 f3 . . . f2n1 f2n.

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ồi

d) fn1fn1 f2n p1qn.

e) f0f1 f1f2 . . . f2n1f2n f22n.

f) f0 f1 f2 . . . f2n1 f2n f2n1 1.

II.17. Cho a1, a2, . . . , an và b1, b2, . . . , bn 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) maxta1,a2, . . . ,anu minta1, a2, . . . , anu.b) maxta1 b1, a2 b2, . . . , an bnu ¤ maxta1, a2, . . . , anu

maxtb1, b2, . . . , bnu.c) minta1 b1, a2 b2, . . . , an bnu ¥ minta1, a2, . . . , anu

mintb1, b2, . . . , bnu.

II.18. Hãy cho định nghĩa đệ qui của

a) 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à wR. 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 xR 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án

II.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) an 6an1, a0 2.

b) an a2n1, a1 2.

c) an an1 3an2, a0 1, a1 2.

d) an nan1 n2an2, a0 1, a1 2.

e) an an1 an2, a0 1, a1 2, a2 0.

II.24. Chỉ ra rằng những dãy tanu sau là nghiệm của hệ thức truy hồi an 3an1 4an2:

a) an 0.

b) an 1.

c) an p4qn.d) an 2p4qn 3.

II.25. Hãy kiểm tra xem dãy tanu nào sau đây là nghiệm của hệ thức truy hồian 8an1 16an2:

a) an 0.

b) an 1.

c) an 2n.

d) an 4n.

e) an n4n.

f) an 24n 3n4n.

g) an p4qn.h) an n24n.

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) an 3.

b) an 2n.

c) an 2n 3.

d) an 5n.

e) an n2.

f) an n2 n.

g) an n p1qn.h) an 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ồi

a) an 3an1, a0 2.

b) an an1 2, a0 1.

c) an an1 n, a0 1.

d) an an1 2n 3, a0 4.

e) an 2an1, a0 1.

f) an 1

3an1 1, a0 2.

g) an nan1, a0 5.

h) an 2nan1, a0 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án

c) 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ồi

II.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) an an2.

b) an 2nan1 an2.

c) an an1 2.

d) an a2n1 an2.

e) an 3.

f) an 3an1 4an2 5an3.

g) an an1

n.

h) an 4an2 an5 an6.

II.39. Giải những hệ thức truy hồi cùng những điều kiện đầu sau:

a) an 2an1, với n ¥ 1, a0 3.

b) an 4an2, với n ¥ 2, a0 0, a1 4.

c) an an2

4, với n ¥ 2, a0 1, a1 0.

d) an 5an1 6an2, với n ¥ 2, a0 1, a1 3.

108 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

2.6. Độ phức tạp của thuật toán

e) an 6an1 9an2, với n ¥ 2, a0 6, a1 8.

f) an 4an1 4an2, với n ¥ 2, a0 2, a1 3.

g) an 7an1 10an2, với n ¥ 2, a0 2, a1 1.

g) an 2an1 an2, với n ¥ 2, a0 1, a1 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 tLnu, trong đó Ln là số tôm bị đánh bắt trongnăm thứ n.

b) Hãy tìm Ln 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 tPnu, trong đó Pn 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ồi

II.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) an 2an1 an2 2an3 với n ¥ 3, a0 3, a1 6, a2 0.

b) an 7an2 6an3 với n ¥ 3, a0 9, a1 10, a2 32.

c) an 5an2 4an4 với n ¥ 4, a0 3, a1 2, a2 6, a3 8.

d) an 3an1 3an2 an3 với n ¥ 3, a0 2, a1 2, a2 4.

e) an 4an1 5an2 2an3 với n ¥ 3, a0 0, a1 1, a2 2.

II.47. Tìm nghiệm của những hệ thức truy hồi sau:

a) an 7an1 10an2 n với n ¥ 2, a0 2, a1 1.

b) an 3an1 2an2 5 với n ¥ 2, a0 1, a1 3.

c) an 3an1 2n với n ¥ 1, a0 1.

d) an 4an2 2n với n ¥ 2, a0 2, a1 3.

II.48. Chứng minh:

a) pn 1q2 Opn2q.b) rlog ns Opnq.c) 3ntlog nu Opn2q.

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án

c)1

n Oplog nq.

d) 3n2 ?n Opn2q.

e) 2n1 Op3n

nq.

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 pn2q 6n 1.

II.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 pn2q 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ố Boole

Có 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ùng

vớ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ố boole

Như 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ố boole

A3. 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ỗngH, 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ố Boole

Tí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à 1

Với mỗi x P B, x là duy nhất,tức là nếu a x x a 1 và

a.x x.a 0 thì a x.

Tính duy nhất của phần bù

¯x x. Luật phần bù képx x x,x.x x.

Luật lũy đẳng

x 0 x,x.1 x.

Luật đồng nhất

x 1 1,x.0 0.

Luật nuốt

x x 1,x.x 0.

Luật bài trung

x px.yq x,

x.px yq x.Luật hấp thụ

x y y x,x.y y.x.

Luật giao hoán

px yq z x py zq,px.yq.z x.py.zq. Luật kết hợp

x py.zq px yq.px zq,x.py zq px.yq px.zq. Luật phân phối

x y x.y,x.y x y.

Luật De Morgan

Việ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 đó γ γ.δ δ. l

Ví 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ố boole

Lời giải: Cho phần tửx P B. Giả sử cóax xa 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 a.x (Luật phân phối) 0 a.x (Giả thiết trên) x.x a.x (Tính chất của 0) px aq.x (Luật phân phối) 1.x (Giả thiết trên) x (Tính chất của 1).

l

Ví dụ 3.1.7 Chứng minh luật De Morgan.

Lời giải: Với x, y P B, ta có:

px.yq.px yq x.y.x x.y.y (Luật phân phối) x.x.y x.y.y (Luật giao hoán) 0.y x.0 (Luật bài trung) 0 (Tính chất của 0),

px.yq px yq px px yqq.py px yqq (Luật phân phối) ppx xq yq.ppy 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.y x y. Ta cũng chứng minhx y x.y bằng cách tương tự. l

Cá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 : Bn Ñ 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ố Boole

Cá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 x1, x2, . . . , xn được định nghĩa một cách đệ qui như sau:

Định nghĩa 3.1.9 0, 1, x1, x2, . . . , xn là các biểu thức boole. Nếu E1 và E2

là các biểu thức boole thì E1, E2, E1.E2, E1 E2, pE1q, pE2q 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.y z có giá trị được cho trong bảngsau:

x y z x.y z F px, y, zq x.y z

1 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 1

Ngượ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: F1px, y, zq x.y z, hoặc F2px, y, zq x.y.z x.y.z x.y.z x.y.z x.y.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 px1, x2, . . . , xnq Gpx1, x2, . . . , xnq với mọi x1, x2, . . . , xn 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 F1 và F2 bằng nhau còn hai biểu thức x.y z vàx.y.z x.y.z x.y.z x.y.z x.y.z tương đương với nhau.

Định nghĩa 3.1.12 Cho hàm boole F . Phần bù của hàm boole F là hàm F

thỏa mãn F px1, x2, . . . , xnq F px1, x2, . . . , xnq. Tổng boole F G vàtích boole F.G là các hàm thỏa mãn:

pF Gqpx1, x2, . . . , xnq F px1, x2, . . . , xnq Gpx1, x2, . . . , xnq,

pF.Gqpx1, x2, . . . , xnq F px1, x2, . . . , xnq.Gpx1, x2, . . . , xnq.

116 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

3.2. Biểu diễn các hàm Boole

Mỗ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 x1, x2, . . . , xn và giá trị hàm) và 2n dòng (tương ứng với cáckhả năng có thể có của giá trị các biến x1, x2, . . . , xn). 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 2n. Vậy có tất cả 22n hàmboole n biến khác nhau.

Tính đối ngẫu

Cá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.p0 py.zqq là biểu thức x p1.py zqq.Đị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 Boole

Trong 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 được

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 117

Chương 3. Đại số Boole

cho 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ích

Ví 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 0

Lờ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, y, z. Tích này, nhận giátrị 1 khi và chỉ khi x y z 1. Vậy có thể lấy x.y.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.y.z và x.y.z rồi lấy tổng boole của chúng. Dễ kiểm tra lại rằngx.y.z x.y.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 y1.y2. . . . .yn trong đó yi xi hoặc yi xi với x1, x2, . . . , xn

118 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

3.2. Biểu diễn các hàm Boole

là 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 y1.y2. . . . .yn 1 khi và chỉ khi yi 1với mọi i 1, n. Điều này xảy ra nếu và chỉ nếu xi 1 khi yi xi vàxi 0 khi yi xi. Ngược lại, với một bộ giá trị cho trước của các biến boolex1, x2, . . . , xn, 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 y1.y2. . . . .yn

trong đó yi xi nếu xi 1 và yi xi nếu xi 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 trong

bả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 px yq.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 0

Tiế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.y.z và x.y.z. Vậy tacó F px, y, zq x.y.z x.y.z x.y.z. l

Bằ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ố Boole

Tí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 logic

Hì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.y.

• 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ổng

Cá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ố Boole

Ví 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 px.yq.b) px y zq.x.y.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 px.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à pxyzq.x.y.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.

l

Ví 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ạch

kiế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. l

Hình 3.4: Mạch bỏ phiếu theo đa số.

3.4 Cực tiểu hóa các mạch

Hiệ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.y.z.Hai hội sơ cấp trong tổng này chỉ khác nhau ở tín hiệu thứ hai (y và y). Chúngcó thể được tổ hợp lại như sau:

x.y.z x.y.z py yq.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 ta

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 123

Chương 3. Đại số Boole

Hì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.y.

Lời giải: Ta có

fpx, yq x.y x.y x.y x.y

px xq.y x.py yq 1.y x.1

x y.

l

Ví dụ 3.4.2 Tối tiểu hóa hàm boole fpx, yq x.y x.y 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ạch

Lời giải: Ta có:

fpx, yq x.y x.y x.y

px.y x.yq px.y x.yq ppx xq.yq px.py yqq 1.y x.1

y x.

Dạng tối tiểu của fpx, yq là y x. l

Phươ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ến

Bả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 y

x x.y x.y

x x.y x.y

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.y x.y. Hãy dùng bảng Karnaugh để tối tiểuhóa hàm boole trên.

Lờ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

Chương 3. Đại số Boole

y y

x 1

x 1

Vì 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. l

Ví dụ 3.4.4 Cho fpx, yq x.y x.y x.y. 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.y x.y x.y là:

y y

x 1

x 1 1

Vì 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 y,theo chiều ngang được x), ta có fpx, yq x y. l

Trong 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.y 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ến

Bả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:

y.z y.z y.z y.z

x

x

Hộ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 y.z y.z

x 1

x 1

y.z x.y.z x.y.z.

126 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

3.4. Cực tiểu hóa các mạch

y.z y.z y.z y.z

x

x 1 1

x.z x.y.z x.y.z.

y.z y.z y.z y.z

x 1 1

x 1 1

z x.y.z x.y.z x.y.z x.y.z.

y.z y.z y.z y.z

x

x 1 1 1 1

x x.y.z x.y.z x.y.z x.y.z.

y.z y.z y.z y.z

x 1 1 1 1

x 1 1 1 1

1 x.y.z x.y.z x.y.z x.y.z x.y.z x.y.z x.y.z x.y.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.y.z x.y.z x.y.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 y.z y.z

x 1 1

x 1 1

Tổ 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 y.z. Vậy khai triển tốitiểu hóa của hàm boole fpx, y, zq là x.z y.z x.y.z. l

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 127

Chương 3. Đại số Boole

Ví dụ 3.4.6 Cho fpx, y, zq x.y.zx.y.z x.y.z x.y.z x.y.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 y.z y.z

x 1 1

x 1 1 1

Tổ hợp khối bốn ô mang giá trị 1 liền nhau ta được y. 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 đượcx.y.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 y. l

Ví dụ 3.4.7 Cho fpx, y, zq x.y.z x.y.z x.y.z x.y.z x.y.z x.y.z x.y.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 y.z y.z

x 1 1 1 1

x 1 1 1

Tổ hợp khối bốn ô cuối mang giá trị 1 liền nhau ta được y. 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 y z. l

Bảng Karnaugh để tối tiểu hóa hàm boole bốn biến

Tươ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 y.z y.z

w.x w.x.y.z w.x.y.z w.x.y.z w.x.y.z

w.x w.x.y.z w.x.y.z w.x.y.z w.x.y.z

w.x w.x.y.z w.x.y.z w.x.y.z w.x.y.z

w.x w.x.y.z w.x.y.z w.x.y.z w.x.y.z

128 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

3.4. Cực tiểu hóa các mạch

Và 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 y.z y.z

w.x

w.x 1 1

w.x

w.x

w.x.z w.x.y.z w.x.y.z.

y.z y.z y.z y.z

w.x

w.x

w.x 1 1 1 1

w.x

w.x w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

y.z y.z y.z y.z

w.x 1 1

w.x

w.x

w.x 1 1

x.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

y.z y.z y.z y.z

w.x 1 1

w.x 1 1

w.x 1 1

w.x 1 1

z w.x.y.z w.x.y.z w.x.y.z w.x.y.z

w.x.y.z w.x.y.z w.x.y.z w.x.y.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ố Boole

a) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

b) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

c) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

Lời giải:

a) Bảng Karnaugh:

y.z y.z y.z y.z

w.x 1 1 1

w.x 1 1 1

w.x 1 1

w.x 1

Tổ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.y; 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.y.z. Vậy tốitiểu thu được là: w.y.z w.x.z w.x.y w.x.y w.x.y.z.

b) Bảng Karnaugh:

y.z y.z y.z y.z

w.x 1

w.x 1 1 1

w.x 1 1

w.x 1

Tổ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 y.z. Vậy tối tiểu thu được là:w.x.y x.y.z y.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ạch

y.z y.z y.z y.z

w.x 1 1

w.x 1 1 1

w.x 1 1

w.x 1 1 1 1

Tổ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.

l

Phương pháp Quine - McCluskey

Chú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.y.z x.y.z x.y.z x.y.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à y. 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 3

x.y.z 101 2x.y.z 011 2

x.y.z 001 1

x.y.z 000 0

Cá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.y.z và x.y.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 y.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 2

Tích Tích Tích1: x.y.z (111) p1, 2q: x.z (1 1) p1, 2, 3, 4q: z ( 1)2: x.y.z (101) p1, 3q: y.z (11)3: x.y.z (011) p2, 4q: y.z (01)4: x.y.z (001) p3, 4q: x.z (0 1)5: x.y.z (000) p4, 5q: x.y (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.y. 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ạch

x.y.z x.y.z x.y.z x.y.z x.y.z

z x.y

Từ bảng trên ta thấy cả z và x.y đều là cần thiết. Vậy kết quả cuối cùng làz x.y. l

Từ 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 xi xuất hiện và bit 0 ở vị trí thứ i nếu tín hiệu xi

xuấ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 xi xuất hiện trong tích, 0 ở vị trí thứ i nếu xi 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 xi 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ố Boole

Ví 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.zw.x.y.zw.x.y.zw.x.y.zw.x.y.zw.x.y.zw.x.y.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 3w.x.y.z 0111 3

w.x.y.z 1010 2w.x.y.z 0101 2w.x.y.z 0011 2

w.x.y.z. 0001 1

Tổ 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ích

1: 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.y.z (0101) p3, 6q: w.y.z (0 11)6: w.x.y.z (0011) p5, 7q: w.y.z (0 01)7: w.x.y.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.y.z w.x.y.z w.x.y.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. l

Bài tập III

III.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ạch

a) 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.yx.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 y.z x.z x.y 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.y.

c) x.y.z x.y.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ếnx1, x2, . . . , xn. Chứng minh rằng:

F dpx1, x2, . . . , xnq F px1, x2, . . . , xnq.

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 boolen biến và F G thì F d Gd với F d vàGd 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 px, y, 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 px, y, zq F px, y, 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ố Boole

III.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 y, 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.y.

c) F px, yq 1.

d) F px, yq y.

e) F px, y, zq x y z.

f) F px, y, zq px zq.y.

g) F px, y, zq x.y.

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 px1, x2, x3, x4, x5q 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ịx1, x2, x3, x4, x5 có giá trị 1.

III.19. Tìm tổng boole chứa x hoặc x, y hoặc y, 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ạch

III.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 y1 y2 . . . yn trong đó yi xi hoặcyi xi có giá trị 0 đối với chỉ một tổ hợp giá trị của các biến, cụ thể là khixi 0 nếu yi xi và xi 1 nếu yi xi. 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.y.

c) F px, yq 1.

d) F px, yq y.

e) F px, y, zq x y z.

f) F px, y, zq px zq.y.

g) F px, y, zq x.y.

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 y.px zq.c) x y.

d) x.px y 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 y.px zq.c) x y.

d) x.px y 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ố Boole

III.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 y.px zq.c) x y.

d) x.px y 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 y.px zq.c) x y.

d) x.px y 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ạch

III.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ố Boole

a) x y.

b) px yq.x.c) x.y.z x.y.z.

d) px 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ễnx.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 y

x 1

x 1 1

b)y y

x 1 1

x

c)y y

x 1 1

x 1 1

III.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.y.

b) x.y x.y.

c) x.y x.y x.y x.y.

d) x.y x.y.

e) x.y x.y.

140 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

3.4. Cực tiểu hóa các mạch

III.44. Vẽ bảng Karnaugh đối với một hàm ba biến và ghi số 1 vào ô biểu diễnx.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.y.z x.y.z x.y.z.

c) x.y.z.rpx zq py 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.y.z.

b) x.y.z x.y.z.

c) x.y.z x.y.z x.y.z x.y.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.y.z.

b) x.y.z x.y.z x.y.z x.y.z.

c) x.y.z x.y.z x.y.z x.y.z x.y.z.

d) x.y.z x.y.z x.y.z x.y.z x.y.z x.y.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.y.z w.x.y.z w.x.y.z w.x.y.z.

b) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

c) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

d) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 141

Chương 3. Đại số Boole

III.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.y.z.

b) x.y.z x.y.z x.y.z x.y.z.

c) x.y.z x.y.z x.y.z x.y.z x.y.z.

d) x.y.z x.y.z x.y.z x.y.z x.y.z x.y.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.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

b) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

c) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.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.y.z w.x.y.z w.x.y.z w.x.y.z.

b) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

c) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z.

d) w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.z w.x.y.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ạch

III.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 y zq.px y zq.px 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ục

Symbolsđạ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ớn

nhấ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án

99đị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ố . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Bbài toán Hàn Tín điểm binh . . . . . . . 43bài toán tháp Hà Nội . . . . . . . . . . . . . 77bảngKarnaugh cho hàmboole bốn biến

128bảng Karnaugh cho hàm boole ba biến

126bảng Karnaugh cho hàm boole hai biến

125bậ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 . . . . . . . . . . . . . . . . . 116

Ccách tìm ước chung lớn nhất . . . . . . 22cách tìm bội chung nhỏ nhất . . . . . . .27công thức tườngminh của số Fibonacci

83cấp của phần tử trong trường hữu hạn

49

145

Chỉ mục

cấ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 . . . . . . . . . . . . . . 51

Ddã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 . . . . . . . . . . . . 119

Ggiải hệ thức truy hồi . . . . . . . . . . . . . . 79

Hhà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ảng

116hàm boole được cho dưới dạng biểu

thứ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ần

nhất hệ số hằng . . . . . . . . . . . . 89hệ thức truy hồi tuyến tính thuần nhất

hệ số hằng số . . . . . . . . . . . . . . 79hội sơ cấp n biến . . . . . . . . . . . . . . . 119hợp số . . . . . . . . . . . . . . . . . . . . . . . . . . 16

hai biểu thức boole tương đương vớinhau . . . . . . . . . . . . . . . . . . . . 116

hai hàm boole bằng nhau . . . . . . . . 116

Kkhông chia hết cho . . . . . . . . . . . . . . . 13khai triển

bát phân . . . . . . . . . . . . . . . . . . . . . 37Cantor . . . . . . . . . . . . . . . . . . . . . . . 11nhị phân . . . . . . . . . . . . . . . . . . . . . 37thập lục phân . . . . . . . . . . . . . . . . . 37theo hệ cơ số . . . . . . . . . . . . . . . . . 36

khai triển tổng các tích . . . . . . . . . . 118khai triển thành tích các đa thức bất khả

qui . . . . . . . . . . . . . . . . . . . . . . . 51

Llớp các số nguyên đồng dư theomodulo

m . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . 114

Mmô 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 . . . . . . . . . . . . . . . . . . . . 120

146 Bộ môn Toán - ĐẠI HỌC THĂNG LONG

Chỉ mục

Nnghiệ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 . . . . . . . . . . . . . 18

từng đôi một. . . . . . . . . . . . . . . . . .19nhân tính của phi hàm Euler . . . . . . . 35

Pphé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 . . . . . . . . . . . . . . . . . . . 34

Ssà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 . . . . . . . . . . . . . . . . . . . . . . 12

Ttích boole phủ hội sơ cấp . . . . . . . . 132tín hiệu . . . . . . . . . . . . . . . . . . . . . . . . 118

tí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 . . . . . . . 18

Bộ môn Toán - ĐẠI HỌC THĂNG LONG 147

Chỉ mục

tì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. . . . . . . . . . . . . 4

thuật toán chia . . . . . . . . . . . . . . . . . . . 14

tiê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 . . . . . . . . . . . . . . . . 45

148 Bộ môn Toán - ĐẠI HỌC THĂNG LONG