You are on page 1of 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


Mục lục
Trang

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


1.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 . . . . . . . . . . . . . . . . . . . 1
1.1.2 Các đặc trưng của Thuật toán . . . . . . . . . . . . . . 3
1.1.3 Một số ví dụ về thuật toán . . . . . . . . . . . . . . . . 4
1.2 Số nguyên và phép chia . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Tính chia hết . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Số nguyên tố và Định lí cơ bản của số học . . . . . . . . 16
1.2.3 Ước số chung lớn nhất và Bội số chung nhỏ nhất . . . . 18
1.2.4 Số học đồng dư . . . . . . . . . . . . . . . . . . . . . . 30
1.2.5 Biểu diễn số tự nhiên theo các hệ cơ số khác nhau . . . . 36
1.2.6 Một số ứng dụng . . . . . . . . . . . . . . . . . . . . . 39
1.3 Đa thức và Trường hữu hạn . . . . . . . . . . . . . . . . . . . . 44
1.3.1 Trường và Trường hữu hạn . . . . . . . . . . . . . . . . 44
1.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 65


2.1 Nguyên lí bù trừ . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2 Định nghĩa bằng đệ qui . . . . . . . . . . . . . . . . . . . . . . 67
2.2.1 Định nghĩa hàm bằng đệ qui . . . . . . . . . . . . . . . 68
2.2.2 Định nghĩa tập hợp bằng đệ qui . . . . . . . . . . . . . 71
2.3 Hệ thức truy hồi . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.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 . . . . . . . . . . . . . . . . . . . . . . . 79
2.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 . 81
2.5 Hệ thức truy hồi tuyến tính không thuần nhất hệ số hằng . . . . 89
2.6 Độ phức tạp của thuật toán . . . . . . . . . . . . . . . . . . . . 92
2.6.1 Khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . 92
2.6.2 Thứ bậc trong tập các hàm số . . . . . . . . . . . . . . 98
2.6.3 Định lí cơ bản cho phân tích thuật toán . . . . . . . . . 99

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


3.1 Đại số boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.1.1 Định nghĩa trừu tượng của đại số boole . . . . . . . . . 112
3.1.2 Biểu thức boole và hàm boole . . . . . . . . . . . . . . 115
3.1.3 Tính đối ngẫu . . . . . . . . . . . . . . . . . . . . . . . 117
3.2 Biểu diễn các hàm Boole . . . . . . . . . . . . . . . . . . . . . 117
3.2.1 Khai triển tổng các tích . . . . . . . . . . . . . . . . . . 118
3.2.2 Tính đầy đủ . . . . . . . . . . . . . . . . . . . . . . . . 120
3.3 Các cổng logic . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.3.1 Tổ hợp các cổng . . . . . . . . . . . . . . . . . . . . . 121
3.4 Cực tiểu hóa các mạch . . . . . . . . . . . . . . . . . . . . . . 123
3.4.1 Phương pháp biến đổi đại số . . . . . . . . . . . . . . . 124
3.4.2 Phương pháp bảng Karnaugh . . . . . . . . . . . . . . . 125
3.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ật
toá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 qui
tắ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ột
thuậ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ểu
gì 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ạn
a1 , 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àm
với n cụ thể là duyệt lần lượt n số trong dãy đã cho, so sánh để chỉ ra số lớn
nhấ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ết
bà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 n
số 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ử đang
duyệ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ớn
nhấ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ếu
bước trước đang xét phần tử ak thì ta sẽ xét phần tử ak 1 ). So sánh phần
tử 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ên
giá 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ùng
trong 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ời
cuố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ện
trong 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ắc
rố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ện
3: Nếu max   ak thì
4: max : ak.
5: Kết thúc Nếu
6: Kết thúc Duyệt
7: 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ố 2
và 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ều
kiệ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ật
toá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ủa
khá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 ích
khi 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. Khi
nó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ước
trô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ủa
nó 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êu
bậ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án
thì 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 đó hai
tí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úc
củ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ên
sự 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ùng
mộ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ất
cứ 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ãy
a1 , 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ớp
bà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 trong
một miền xác định và luôn luôn dẫn đến kết quả mong muốn. Trong ví dụ thuật
toá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 đầu
và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ững
thuậ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ước
là 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ước
thuật toán phải dừng và cho kết quả mong muốn. Ta chú ý rằng bằng phép chạy
thử 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ật
toán chứ không khẳng định được tính đúng đắn của thật toán. Muốn khẳng định
tính đúng đắn của thuật toán thì ta phải tiến hành chứng minh. Có thể và nên
chứ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ủa
thuậ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ệt
kê 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ày
ta 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ần
tử x trong một bảng liệt kê các phần tử phân biệt a1 , a2 , . . . , an hoặc chỉ ra
rằ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í i
củ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 trong
bả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ìm
kiế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ếu
x  a1 thì kết quả trả về là vị trí 1. Khi x  a1 thì ta so sánh x với a2 . Nếu
x  a2 thì kết quả trả về là vị trí 2. Khi x  a2 thì ta so sánh x với a3 . Tiếp
tụ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ê cho
tớ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ày
như 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ện
3: i : i 1.
4: Kết thúc Trong khi
5: Nếu i ¤ n thì
6: vitri : i.
7: không thì
8: vitri : 0.
9: Kết thúc Nếu
10: 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ân
biệ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 so
sánh trong trường hợp xấu nhất ít hơn, nhưng chỉ áp dụng cho các dãy gồm n số
phân biệt được sắp tăng dần hoặc giảm dần. Thuật toán thứ hai này được gọi là
thuật toán tìm kiếm nhị phân. Đầu tiên ta so sánh x với phần tử nằm ở “điểm
giữa” (phần tử ở vị trí t u) của bảng liệt kê. Nếu x bằng phần tử này thì
1 n
2
vị trí của x trong bảng đã được xác định. Nếu không, do bảng đã được sắp tăng
dầ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ảng
con). 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ới
phầ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ông
nằ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  10


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

m : t
i j
3: u.
2
4: Nếu x ¡ am thì
5: i : m 1.
6: không thì
7: j : m.
8: Kết thúc Nếu
9: Kết thúc Trong khi
10: Nếu x  ai thì
11: vitri : i.
12: không thì
13: vitri : 0.
14: Kết thúc Nếu
15: 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úng
ta 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ồi
qua đó, ta xây dựng được lời giải của bài toán đặt ra. Trong phần này, chúng
ta 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ốn
dự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ếu
như 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ó, đưa
ra 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ật
toá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ằng
thuậ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ện
3: 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ìm
và 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 , . . . , xn uq được


gọi là đi trước (nhỏ hơn) bộ số b1 , b2 , . . . , bk pbi P tx1 , x2 , x3 , . . . , xn uq
theo 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, pn  1q, . . . , 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ãn
aj   aj 1 . Ví dụ nếu ta đang có hoán vị 3, 6, 2, 5, 4, 1 thì do 4 ¡ 1, 5 ¡ 4,
2   5 nên chỉ số j  3. Sau khi có chỉ số j, ta tìm tiếp ak là số nhỏ nhất
cò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 , . . . , aj 1 , ak , bj 1 , . . . , bn (trong đó


bj 1 , . . . , bn là hoán vị nào đó của aj , aj 1 , . . . , ak1 , ak 1 , . . . , an )
là những hoán vị đi sau hoán vị a1 , a2 , . . . , an . Thật vậy, ta có điều này
vì 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ạng
a1 , a2 , . . . , aj 1 , ak , bj 1 , . . . , 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ất
cò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ạng
a1 , a2 , . . . , aj 1 , ak , bj 1 , . . . , bn (trong đó bj 1 , . . . , bn là hoán vị nào
đó của aj , aj 1 , . . . , ak1 , ak 1 , . . . , an ). Ta có aj 1 ¡ aj 2 ¡ . . . ¡
ak1 ¡ aj do aj 1 ¡ aj 2 ¡ . . . ¡ ak1 ¡ ak ¡ aj . Ta cũng có
aj ¡ ak 1 ¡ . . . ¡ an vì ak ¡ ak 1 ¡ . . . ¡ an và ak là số nhỏ nhất lớn
hơn aj . Vậy

an   an1   . . .   ak 1   aj   ak1   . . .   aj 1.

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

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

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ên
sao cho aj   aj 1 .
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ừ aj 1 đế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 ¡ aj 1 Thực hiện
3: j : j  1.
4: Kết thúc Trong khi
5: k : n.
6: Trong khi aj ¡ ak Thực hiện
7: k : k  1.
8: Kết thúc Trong khi
9: Đổi chỗ aj và ak.
10: s : j 1, r : n.
11: Trong khi r ¡ s Thực hiện
12: Đổi chỗ ar và as.
13: r : r  1, s : s 1.
14: Kết thúc Trong khi
15: 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.

looomooon
Lời giải: Xâu nhị phân đầu tiên là 00 . . . 0. Xâu nhị phân cuối cùng sẽ là
n bit
looomooon
11 . . . 1. Giả sử b1 , b2 , . . . , bn là xâu nhị phân hiện tại (không phải xâu nhị
n bit
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ãn
bi  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ột
bà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 , . . . , an u.
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 theo
thứ 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 b1 b2 . . . bn  looomooon
11 . . . 1.
n
Đầ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ện
3: bi : 0, i : i  1.
4: Kết thúc Trong khi
5: 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à b1 b2 . . . 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ợp
chập m của n phần tử).

Lời giải: Ta có thể coi như tập n phần tử đã cho là tập A  t1, 2, . . . , nu.
Mỗi tập con m phần tử của A có thể biểu diễn bởi một dãy có thứ tự các phần tử
a1 , a2 , . . . , am (ai P A) thỏa mãn 1 ¤ a1   a2   . . .   am ¤ n. Ta chọn
thứ tự từ điển là thứ tự để sinh tập con kế tiếp của tập con ta1 , a2 , . . . , am u
biể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ếp
sau đượ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ãn
ai  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ập
t1, 2, 5, 6u. Lùi từ phải qua trái ta thấy a4  6  64 4, a3  5  64 3,
a2  2  6  4 2. Vậy i  2. Ta thay a2 bởi 2 1  3, a3 bởi
2 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 được
cho mọi bộ dữ liệu ứng với bài toán cho trước) nhưng phương pháp sinh nói
chung 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 được
sinh 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ông
phả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ện
3: i : i  1.
4: Kết thúc Trong khi
5: ai : ai 1.
6: Duyệt tất cả j sao cho i 1 ¤ j ¤ m Thực hiện
7: aj : ai j  i.
8: Kết thúc Duyệt
9: 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ười
ta 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 duy
nhấ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ông


có 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ơ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  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ơn
2 mà đứng sau 2), a2  2 (có hai số nhỏ hơn 3 mà đứng sau 3), a3  3 (có ba
số 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án
xây dựng một hoán vị của tập t1, 2, . . . , nu tương ứng với số đã cho. Trước
tiê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ác
vị 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ơn
n 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ẽ được
tươ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ên
và đố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ắp
tốt), tập hợp số nguyên không có số nhỏ nhất. Trong tập hợp số nguyên, các
phép toán cộng, trừ, nhân luôn luôn thực hiện được. Tuy nhiên, phép chia một
số 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ũng
thực hiện được, nên những ý tưởng mà chúng ta phát triển trong phần này đều
dự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ái
niệ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ên
dươ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ện
3: pj : 0.
4: Kết thúc Duyệt
5: Duyệt tất cả k sao cho 1 ¤ k ¤ n  1 Thực hiện
6: (Chú thích: Tính c  ank.)
c : t
pn  kq! u, x : x  cpn  kq!.
x
7:

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ện
11: h : h  1.
12: Kết thúc Trong khi
13: (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ện
15: h : h  1.
16: Trong khi ph  0 Thực hiện
17: h : h  1.
18: Kết thúc Trong khi
19: Kết thúc Duyệt
20: (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ệt
23: (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ện
26: h : h 1.
27: Kết thúc Trong khi
28: 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ột
số nguyên dương khác 1 thành tích của những số nguyên tố có một vai trò quan
trọng trong ngành mật mã. Khi phép chia cho một số nguyên khác 0 không thực
hiệ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ẫn
tớ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òn
nó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

.
 a.
chia hết cho b ta kí hiệu là a /.. b hay b
Chú ý: Nếu b  a mà a  0 thì từ a  bq ta có q  0 cho nên
|a|  |b|.|q| ¥ |b| do |q| ¥ 1.

Ví dụ 1.2.2 Cho n và d là hai số nguyên dương. Có bao nhiêu số nguyên dương


khô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ương
có 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 ¤ . Vậy có t u số nguyên dương không vượt
n n
d d
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ính
chấ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  a1 x1 a2 x2 . . . an xn với
xi 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ôn
chia 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 „ Z


và M  H bởi vì |b|.|a| là một bội của b không vượt quá a. Hơn nữa
M 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ặt
khác, bq |b| cũng là bội của b nên ta có:

bq ¤ a   bq |b|
hay
¤ a  bq   |b|.
0
Đặ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|;

a  bq2 ¤ r2   |b|.
r2 , 0
Từ những ràng buộc trên, ta có bpq1  q2 q  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 hay
q1  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. Chia 15 cho 4 ta được


thươ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 ra


nhữ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ất
hai ước tự nhiên là 1 và chính nó. Trong phần này ta quan tâm đến lớp những
số 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ào
khá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ên
cá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ớn
hơ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 ba
tậ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, 326
là 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ên
tố 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ột
số 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ẫn
vớ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ân
tích được thành tích những thừa số nguyên tố và sự phân tích đó là duy nhất
nế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ân
tử 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 pα2
1 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ông
thườ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ồn
tạ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  p1 p2 . . . pn 1. Ta nhận thấy a là một số tự nhiên lớn hơn
1 nên nó phải có một ước nguyên tố p nào đó. Nhưng vì pi  a @1 ¤ i ¤ n
nên p là số nguyên tố khác với n số nguyên tố p1 , p2 , . . . , pn kể trên. Mâu
thuẫ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át
nà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ên
a  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ần
phả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 trong
?
khoả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ì 101
khô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 hay
cò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ện
2: bk : k.
3: Kết thúc Duyệt
4: Xóa b0 , b1 .
5: m : 0, p1 : 2. ?
6: Trong khi pm 1 ¤ t Au Thực hiện
7: Đánh dấu pm 1 trong bảng bk (0 ¤ k ¤ A).
8: Xóa tất cả bội của pm 1 (trừ pm 1 ) trong bảng bk (0 ¤ k ¤ A).
9: m : m 1.
10: pm 1 :Số đầu tiên trong bảng chưa bị xóa cũng như chưa bị đánh dấu.
11: Kết thúc Trong khi
12: 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 trong
các số nguyên tố bị đánh dấu p1 , p2 , . . . , pn với pn ¤ A   pn 1 và do đó
a bị xóa với tư cách là bội của p. Vậy những số còn lại trong bảng chính là
những số nguyên tố không vượt quá A.
Ta cũng có thuật toán ngắn gọn kiểm tra xem một số n cho trước có phải là
số nguyên tố hay không dựa vào nhận xét: nếu n là số nguyên tố lớn hơn 5 thì
phần dư của phép chia n cho 6 chỉ là 1 hoặc 5. Nhận xét này cho phép ta chỉ
kiểm tra tính chia hết của n cho các số nguyên dương lớn hơn 1 và không vượt
quá 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ập
dà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 cho
trướ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ên
a1 , 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ất d trong tất cả các ước chung của a1 , a2 , . . . , an
(không đồng thời bằng không) được gọi là ước chung lớn nhất của
a1 , a2 , . . . , an . Kí hiệu d  UCLNpa1 , a2 , . . . , an q.

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ếu
4: 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ếu
7: 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ếu
10: 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ếu
15: i : i j, j : 6  j.
16: Kết thúc Trong khi
17: 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ói
a1 , a2 , . . . , an là nguyên tố cùng nhau. Còn nếu 1 là ước chung lớn nhất
củ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ên
a1 , a2 , . . . , an bao giờ cũng có ước chung ít nhất là số 1.
• Số 0 là bội của mọi số nguyên khác không nên nếu những số 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úng
và khi đó khái niệm ước chung lớn nhất là không có nghĩa. Do đó ta phải
có giả thiết các số đang xét a1 , a2 , . . . , an không đồng thời bằng 0. Hơn
nữ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ếu
ta 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 , . . . , an q. Ngược lại, nếu c là ước của
UCLNpa1 , a2 , . . . , an q thì c là ước chung của a1 , a2 , . . . , an .
Chứng minh: Xét tập hợp
M  ta1x1 a2 x2 ... an xn | 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ện
3: Trong khi n mod pi  0 Thực hiện
4: n : n div pi, αi : αi 1.
5: Kết thúc Trong khi
6: i : i 1, αi : 0.
7: Kết thúc Trong khi ¹ α
8: Dạng phân tích tiêu chuẩn n  pi i .
¡
αi 0

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


"
1 nếu a1 ¡ 0,
x1 
1 nếu a1   0,
và x2  x3  . . .  xn  0 thì a1 x1 a2 x2 . . . an xn  |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 a2 u2 ... P Z , i  1, 2, . . . , n và
an un , ui
d ¤ x, @x P M, x ¡ 0.

Ta sẽ chứng minh d  UCLNpa1 , a2 , . . . , an q. Trước hết ta có d 


x, @x  a1 x1 a2 x2 . . . an xn P M . Thật vậy, theo định lí thuật toán
chia x  dq r, 0 ¤ r   d, r, q P Z . Do đó
r  x  dq  a1 px1  u1 q q a2 px2  u2 q q . . . an pxn  un q q
là 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ậy
r  0 hay x  dq, q P Z , nghĩa là d  x, @x P M . Vì ak  a1 .0 . . .
ak1 .0 1.ak ak 1 .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ủa
d  a1 u1 a2 u2 ... an un . Kết hợp với điều kiện d nguyên
dương, ta có d ¥ c với c là ước chung bất kì của a1 , a2 , . . . , an . Vậy
d  UCLNpa1 , a2 , . . . , an q.
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 , . . . , an q. l
Hệ quả 1.2.21 Nếu d  UCLNpa1 , a2 , . . . , an q thì tồn tại những số nguyên
u1 , u2 , . . . , un sao cho d  a1 u1 a2 u2 . . . an un .

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 , . . . , an q  1 là tồn tại


những số nguyên u1 , u2 , . . . , un sao cho 1  a1 u1 a2 u2 . . . an un .

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

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


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

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

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ứng minh: Vì UCLNpa, bq  1 suy ra tồn tại x, y P Z sao cho ax by 
1. Từ đó ac.x bc.y  c. Do b  ac nên b  acx bcy tức là b  c. 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ập
cá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 hay
x  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  bq
nê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ậy
UCLNpa, 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à b
vớ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ấy
UCLNpa, 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  rn1 qn1 rn 0   rn   rn1;
rn1  rn qn .

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ằng
số dư không (dòng cuối cùng) vì dãy b, r1 , r2 , . . . là dãy những số tự nhiên
giả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, r1 q  . . .  UCLNprn1 , rn q. Vì rn1 
rn qn nên UCLNpa, bq  UCLNprn1 , rn q  rn . Cách tìm ước chung lớn
nhấ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ện
2: r : a mod b.
3: a : b.
4: b : r.
5: Kết thúc Trong khi
6: 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 hai
số 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, y q 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ện
4: 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 khi
9: Kết quả trả về là bộ ba pa, x, y q 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ác
bạ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ủa
chúng trong thuật toán Euclid. Những giá trị x, y tại mỗi bước luôn thỏa mãn
ahiện tại  x.aban đầu y.bban đầu . Những giá trị u, v tại mỗi bước luôn thỏa
mãn bhiện tại  u.aban đầu v.bban đầu . Và tương tự, những giá trị s, t tại mỗi
bướ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 , . . . , an q,
d2  UCLNpa1 , a2 q, d3  UCLNpd2 , a3 q, . . . , dn  UCLNpdn1 , an q
thì 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à ước
chung của d2 , a3 , . . . , an và ngược lại nên ta có
UCLNpa1 , a2 , . . . , an q  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ì ta
cũ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 chung


lớn nhất của a1 , a2 , . . . , an là tích lũy thừa của những thừa số nguyên tố chung
củ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ất
một trong những số a1 , a2 , . . . , an . Tức là ta có thể viết:

 pα1 pα2 . . . pαk


ai i1 i2 ik

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 pµ2 . . . pµk với µj  mintα1j , α2j , . . . , αnj u, j  1, k.


1 2 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ột
số 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ủa
những số nguyên a1 , a2 , . . . , an được gọi là bội chung nhỏ nhất của
a1 , a2 , . . . , an . Kí hiệu m  BCNNpa1 , a2 , . . . , an q.

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 , . . . , an q thì mọi bội chung của


a1 , 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ử µ 


mq r, 0 ¤ r   m, với q, r P Z . Bởi vì ai  µ, ai  m với mọi i  1, n
nên ai  r  µ  mq. Vậy r là bội chung của a1 , a2 , . . . , an và 0 ¤ r   m,
kết hợp với m  BCNNpa1 , a2 , . . . , an q 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ương m của những số
m m m
a1 , a2 , . . . , an là bội chung nhỏ nhất của chúng là , ,..., nguyên
a1 a2 an
tố cùng nhau.
Chứng minh:
a) Điều kiện cần: Nếu m  BCNNpa1 , a2 , . . . , an q ta sẽ chứng minh
m m m
những số , , . . . , nguyên tố cùng nhau. Thật vậy, nếu không như
a1 a2 an
có một ước chung d  1 nào đó. Khi đó
m m m m
vậy thì , , . . . , là
a1 a2 an d
bội chung của a1 , a2 , . . . , an và 0   | |   m trái với giả thiết m là
m
d
bội chung nhỏ nhất của các số a1 , a2 , . . . , an đã cho.
m m m
b) Điều kiện đủ: Nếu , ,..., nguyên tố cùng nhau, ta sẽ chứng
a1 a2 an
minh m  BCNNpa1 , a2 , . . . , an q. Thật vậy, nếu không như thế, ta
gọi m1  BCNNpa1 , a2 , . . . , an q và theo định lí 1.2.5, sẽ có số nguyên
d ¡ 1 để m  dm1 . Từ đó ta có:
dm1 dm1 dm1
UCLNp , , . . . , q  UCLNp a , a , . . . , a q
m m m
a1 a2 an 1 2 n
1 1 1
 d UCLNp m ,
a1 a2
m
,...,
m
an
q.
Vậy d là ước của UCLNp , , . . . , q
m m m m m m
nghĩa là , , . . . , có
a1 a2 an a1 a2 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ùng
nhau.
l
Tính chất 1.2.38 Với k là một số nguyên dương, ta có:
BCNNpka1 , ka2 , . . . , kan q  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ết
cho kai với mọi i  1, n. Vậy k lần bội chung của a1 , a2 , . . . , an luôn
là bội chung của ka1 , ka2 , . . . , kan . Ngược lại, nếu α là bội chung của
ka1 , ka2 , . . . , kan thì sẽ là bội của ai với mọi i  1, n nên là bội chung
α α
k k
của a1 , a2 , . . . , an và do đó α bằng k lần bội chung nào đó của a1 , 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 , . . . , kan q  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ó:

BCNNp
a1 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ủa
a1 , a2 , . . . , an ta có:

BCNNpa1 , a2 , . . . , an q  BCNNpδ aδ1 , δ aδ2 , . . . , δ aδn q


 δ BCNNp aδ1 , aδ2 , . . . , aδn q.

Vậy ta có BCNNp
a1 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  UCLN
a.b
pa, bq .
Thật vậy, ta đặt m  UCLN
a.b
pa, bq . Bằng cách viết
m  a. UCLNb pa, bq  b. UCLNa pa, 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

a b
do , là những số nguyên nên m là bội của a và
UCLNpa, bq UCLNpa, bq
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ì
UCLNpa, bq
µ
m
 µ.
a.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 PZ
µ µ
vì , nguyên. Nói cách khác µ là bội của m. Vậy
b a

BCNNpa, bq  m  UCLN
a.b
pa, 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  1260.
6
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 , . . . , an q, m2  BCNNpa1 , a2 q, m3 
BCNNpm2 , a3 q, . . . , mn  BCNNpmn1 , an q 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ội
của BCNNpa1 , a2 q  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 , . . . , an q  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ội
chung 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ó qui
tắ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ố chung
và riêng của tất cả những số a1 , a2 , . . . , an , mỗi thừa số mang số mũ lớn 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ất
một trong những số a1 , a2 , . . . , an . Tức là ta có thể viết:
 pα1 pα2 . . . pαk
ai i1 i2 ik

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 pρ2 . . . pρk với ρj  maxtα1j , α2j , . . . , αnj u, j  1, k.
1 2 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γ11 pγ22 . . . pγkk với 0 ¤ αij ¤
γj , @i  1, n, j  1, k, nghĩa là γj ¥ ρj hay ν là bội của m. Vậy ta có điều
phả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 Cho m là một số tự nhiên khác không. Ta nói hai số nguyên
a và b là đồng dư với nhau theo modulo m nếu trong phép chia a và b cho
m 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  q2 q tức là
m  a  b.
(ii)ñ(iii) Giả sử m  a  b, khi ấy luôn có t P Z sao cho a  b  mt hay
a  b mt, t P Z .
(iii)ñ(i) Giả sử có số nguyên t sao cho a  b mt. Gọi r là số dư trong phép
chia 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ủa
b 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ức
theo 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ức
theo 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ững
bà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ưng
phải đổi dấu của số hạng đó, nghĩa là nếu ta có a c  b pmod mq thì ta
cũ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ức
mộ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 ước
chung của hai vế, nguyên tố cùng nhau với modulo, nghĩa là nếu ta có a.c 
b.c pmod mq và UCLNpc, mq  1 thì ta cũng có a  b pmod mq.

Chứng minh: Theo giả thiết a.c  b.c pmod mq nên m  a.c  b.c hay m 
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ới
cùng một số nguyên dương. Cụ thể là nếu ta có a  b pmod mq thì với mọi
c P Z ta cũng có a.c  b.c pmod m.cq.

Chứng minh: Theo giả thiết a  b pmod mq nên có số nguyên t sao cho a 
b mt. Nhân hai vế với cùng một số nguyên dương c, ta có ac  bc mct,
nghĩa là a.c  b.c pmod m.cq. l
Tính chất 1.2.56 Ta có thể chia hai vế và modulo của một đồng dư thức cho
mộ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

δ PZ ,δ  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 δm1 q. Chia cả hai vế cho δ ta có a1  b1 m1 t hay
a
δ
 b
δ
p mod q.
m
δ
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ác
modulo nói trên. Cụ thể là nếu a  b pmod mi q, @i  1, k, thì ta cũng có
a  b pmod BCNNpm1 , m2 , . . . , mk qq.

Chứng minh: Thật vậy, theo giả thiết a  b là bội chung của m1 , m2 , . . . , mk
nên a  b cũng là bội của BCNNpm1 , m2 , . . . , mk q nghĩa là a 
b pmod BCNNpm1 , m2 , . . . , mk qq. 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 mq
và δ  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ĩa


là 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ệt
ta có UCLNpa, mq  UCLNpb, mq.

Chứng minh: Thật vậy, do a  b pmod mq nên có số nguyên t sao cho a 


b mt. Đẳng thức này chứng tỏ các ước chung của a và m cũng là ước chung
củ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ập
hợ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ác
số 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 ấy
m  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 Z
nê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ác
số 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ột
số nằm trong đoạn r0, m  1s, cho nên mỗi số nguyên trong đoạn này được
xem là một “đại diện” của lớp. Tức là ta có thể coi:
Zm  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ọc
cộng “`”, nhân “d” thông thường trên tập Z m :
a`b  pa bq mod m, @a, b P Z m,
adb  pa.bq mod 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 6 d 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 0 1 0 1 2 3 4 5 6
2 2 3 4 5 6 0 1 2 0 2 4 6 1 3 5
3 3 4 5 6 0 1 2 3 0 3 6 2 5 1 4
4 4 5 6 0 1 2 3 4 0 4 1 5 2 6 3
5 5 6 0 1 2 3 4 5 0 5 3 1 6 4 2
6 6 0 1 2 3 4 5 6 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 đó ta

Bộ 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à u
và ta kí hiệu phần tử nghịch đảo này là x1 . Phần tử nghịch đảo theo modulo
m 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ần
tử 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.7  3.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àm
Euler.

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ì

φppr q  pr  pr1  pr1pp  1q  pr p1  p1 q.


pr
Chứng minh: Từ 0 đến p r
 1 có t p u  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 nhau
với pr . Vậy

φppr q  pr  pr1  pr1pp  1q  pr p1  p1 q.


l
Bổ đề 1.2.67 Giả sử a và b là hai số tự nhiên khác không, nguyên tố cùng
nhau. Khi đó với mỗi số tự nhiên y cố định cho trước thì trong b số dạng
a.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ới
b.

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 đôi
một khác nhau vì nếu giả sử có ri  rj pi  j q thì pa.i ri q  pa.j rj q 
api  j q .. b (do có hai số dư khi chia cho b bằng nhau). Mà điều này không
.
thể 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 , . . . , rb1 u có đúng φpbq số nguyên tố cùng nhau với b
hay nói cách khác trong b số dạng a.x y px  0, b  1q có φpbq số nguyên
tố 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, ta
có φpa.bq  φpaq.φpbq.

Chứng minh: Nếu trong hai số a và b có một số bằng 1 thì hiển nhiên φpa.bq 
φpaq.φpbq vì φp1q  1.
Giả sử a ¡ 1 và b ¡ 1, ta lập bảng những số tự nhiên từ 0 cho đến a.b  1
như sau:

0 1 ... pa  1q

 a a 1 ... a pa  1q 
M  
 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ùng
nhau với a rồi trong các số đó, ta tìm những số nguyên tố cùng nhau với b.
Các số trong bảng M có dạng a.x y với x  0, b  1 và y  0, a  1.
Vì UCLNpa.x y, aq  UCLNpy, aq nên các số trong bảng M nguyê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ị y
nguyên tố cùng nhau với a. Có tất cả φpaq cột như vậy. Trong mỗi cột đó, với
giá 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ất
cả φpaq.φpbq số nguyên tố cùng nhau với tích ab. Vậy ta có điều phải chứng
minh. l
Hệ quả 1.2.68 Giả sử n  pα1 pα2
1 2
. . . pα
k là dạng phân tích tiêu chuẩn của
k

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  p1 qp1  p1 q . . . p1  p1 q.
1 2 k

Chứng minh: Do các số p1 , p2 , . . . , pk nguyên tố với nhau từng đôi một nên
cá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 qφpp2 q . . . φppk q. Áp dụng hệ quả 1.2.66
1 α2 αk

ta 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ên


không chia hết cho p thì ap1  1 pmod pq.

Tất nhiên, từ định lí Euler, nếu UCLNpa, mq  1 thì nghịch đảo theo modulo
m 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ép
cá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ỗi
chữ 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ổng
các lũy thừa của 10, ta có, chẳng hạn 235  2.102 3.101 5.100 . Số 10
khi đó 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. Trong
nhiề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ên
dương lớn hơn 1. Khi đó nếu n là một số nguyên dương, thì nó có thể được
biểu diễn một cách duy nhất dưới dạng:

n  ak bk ak1 bk1 ... a1 b1 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à ak ak1 . . . a1 a0 b .

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


3.

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 được
gọ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 đúng
b 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 ta
sử 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 2AE0B 16 có khai triển thập phân là:

2AE0B 16  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ếp
theo 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ố b
củ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ện
3: ak : q mod b.
q : t u.
q
4:
b
5: k : k 1.
6: Kết thúc Trong khi
7: Kết quả trả về là ak1 ak2 . . . a1 a0 b.

Nói riêng, trong trường hợp cần biểu diễn số tự nhiên từ khai triển nhị phân
về 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 đặc
thù 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ương
tự, một chữ số trong hệ cơ số 8 (hệ cơ số 4) tương ứng với 3 (2) chữ số trong
hệ nhị phân.

Ví dụ 1.2.75 Để khai triển 101100111101012 theo hệ cơ số 16, ta xét từng


cụm bốn chữ số một: 01012  516 , 11112  F 16 , 11002  C 16 và cuối
cùng 00102  216 . Vậy 101100111101012  2CF 516 .

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ức
chú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ột
số ứ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ìm
kiế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ất
rấ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ếu
chọ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ệu
cũ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ột
hà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ùng
chì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ăm
hpkq gán ô nhớ hpkq cho dữ liệu có chìa khóa là k. Thực tế, ta có thể dùng
nhiề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 được
sử 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ừ hai
dữ 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ói
có 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ẽ được
gá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án
cho ô 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ệu
có 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ệu
quả 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ài
liệ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ên
má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ọn
ngẫ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ực
sự là ngẫu nhiên nên chúng được gọi là các số giả ngẫu nhiên. Chúng không
thực sự ngẫu nhiên nhưng về mặt ý nghĩa, chúng có ích gần như các số ngẫu
nhiê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úng
ta 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ào
nă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ơn
mộ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ên
txnu với 0 ¤ xn   m với mọi n bằng cách dùng liên tiếp phép đồng dư:
xn 1  paxn cq mod m.
Để tạo ra các số giả ngẫu nhiên nằm trong khoảng p0, 1q, ta chia các số được
tạ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  0
hoặc c  1. Modulo m nên lớn và thường liên quan đến lũy thừa của 10 hoặc
2. 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ùng
số 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 khi
c  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án
học còn để hở. Các qui luật này được phát triển bởi D.E. Knuth. Knuth chứng
minh 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 ra
cá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ẫu
nhiê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ủa
nó. Ví dụ như khi a  19, m  381, x0  0, c  1 sẽ tạo ra chuỗi
0, 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ất
rộng rãi. Với các giá trị này, người ta đã chứng minh được rằng sẽ có 231  2
số đượ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 x
sao 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  a1 b pmod mq.

• Khi UCLNpa, mq  d ¡ 1: Nếu d  b thì phương trình đã cho tương


đương với phương trình

p ad qx  db pmod m
d
q.
Khi đó UCLNp , q  1 và phương trình mới nhận được này thuộc
a m
d d
dạng ta đã xét ở trên. Nếu d  b thì phương trình đã cho vô nghiệm vì hiệu
củ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ậy
x  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 đồng
dư liên quan đến những hệ mã mật và một trong những hệ mã mật đầu tiên được
ghi 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ảng
chữ cái. Chẳng hạn chữ B được chuyển thành chữ E, còn chữ X được chuyển
thà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 thay
mỗ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ất
hiện trong bảng chữ cái:

A B C D E F G H I J K L M N O P Q R
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

S T U V W X Y Z
18 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ập
t0, 1, 2, . . . , 25u sang chính tập t0, 1, 2, . . . , 25u. Trong trường hợp này, ta
có f ppq  pp 3q mod 26. Như vậy, trong phiên bản mã hóa của bức thư,
chữ cái được biểu diễn bởi p sẽ được thay bằng chữ cái được biểu diễn bởi
pp 3q mod 26.
Để phục hồi lại bức thư gốc đã được mã hóa theo hệ mã mật Caesar, ta cần
phải dùng hàm ngược f 1 của hàm f . Ta có f 1 ppq  pp  3q mod 26. Nói
cá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ảng
chữ 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ập
mã f ppq  pap bq mod 26. Điều kiện của hàm f là nó phải là một song
ánh từ t0, 1, 2, . . . , 25u vào chính t0, 1, 2, . . . , 25u. Để thỏa mãn điều kiện
đó thì ta phải có UCLNpa, 26q  1. Khi đó sẽ tồn tại a1 theo modulo 26 và
f 1 ppq  pp  bqa1 mod 26.

Ví dụ 1.2.83 Khi sử dụng hàm f ppq  p7p 3q mod 26, chữ N được thay
bằng chữ cái nào? chữ A được thay bằng chữ cái nào? chữ T được thay bằng
chữ cái nào?

Lời giải: Chữ N được chuyển thành số 13, cho qua hàm f ta có f p13q 
p7.13 3q mod 26  16. Vậy chữ cái N được thay bằng chữ Q. Chữ A được
chuyển thành số 0, cho qua hàm f ta có f p0q  p7.0 3q mod 26  3.
Vậy chữ cái A được mã hóa thành chữ D. Chữ T được chuyển thành số 19,
f p19q  p7.19 3q mod 26  6. Vậy chữ T được mã thành chữ G.
Ngược lại, nghịch đảo của 7 theo modulo 26 là 15. Chữ Q, số tương
ứng là 16 được giải mã qua f 1 ppq  pp  3q.15 mod 26 là chữ N vì
f 1 p16q  p16  3q.15 mod 26  13. Chữ D, số tương ứng là 3 được giải
mã thành chữ A vì f 1 p3q  0. Cuối cùng, chữ G, số tương ứng là 6 được giải
mã thành chữ T vì f 1 p6q  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ất
hiệ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ụng
hệ mã mật theo phương pháp này. Nhưng có nhiều phương pháp khác tinh vi
hơ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 tra
quâ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ết
cá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 Hoa
về 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 m2 q,
&
'
' ...
%
 ar pmod mr q
x

có nghiệm duy nhất theo modulo M  m1 m2 . . . 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 . . . mk1mk 1 . . . mr . Ta luôn có UCLNpMk , mk q 
1 vì những số mi nguyên tố cùng nhau từng đôi một. Vậy ta có thể tìm được
nghịch đảo yk của Mk theo modulo mk , tức là Mk yk  1 pmod mk q.
Đặt
x  pa1M1y1 a2 M2 y2 ... ar Mr yr q mod M.
Ta thấy rằng với mọi 1 ¤ k ¤ r thì x  ak pmod mk q vì mk  Mj với
mọi j  k và mk  M . Vậy x chính là một nghiệm của hệ đồng dư đang
xé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 mk q cho nên mk  px0  x1 q với mọi 1 ¤ k ¤ r.
Vì mk nguyên tố cùng nhau từng đôi một nên M  px0  x1 q. Vậy
x0  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 theo
modulo 5 là 2, nghịch đảo của 3.5 theo modulo 11 là 3. Vậy ta có

x  p2.5.11.1 3.3.11.2 9.3.5.3q mod 3.5.11  713 mod 165  53.


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ép
toán là phép cộng (kí hiệu là ) và phép nhân (kí hiệu là . hoặc ). K cùng
với hai phép toán đó được gọi là một trường nếu thỏa mãn 9 tính chất sau:

T.1. Phép cộng có tính chất kết hợp: @a, b, c


P K , pa b q c a p b cq .
T.2. Có phần tử 0 P K sao cho: @a P K , 0 a  a 0  a . Phần tử
0 được gọi là phần tử không của K hay phần tử trung lập của phép cộng
của K .
T.3. Với mỗi a P K luôn tồn tại a1 P K sao cho: a pa1 q  pa1 q 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ọi
là 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ông
thường:

• Phần tử 4 P N nhưng không có phần tử a P N sao cho 4 a  0 nên


tập số tự nhiên N không phải là một trường (tiên đề T.3 không được thoả
mãn).

• Số nguyên 2  0 nhưng không có một số nguyên x nào thỏa mãn 2.x  1,


do đó tập số nguyên Z không phải là một trường (tiên đề T.7 không được
thoả 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ường
là 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 p1q
thì 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ộng


a 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 b0 c (theo tiên đề T.3).
Do đó bc (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à acb (theo định nghĩa).

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

Chứng minh: Ta có: a.0  a.p0 0q  a.0 a.0. Mặt khác: a.0  a.0 0.
Do đó: a.0 a.0  a.0 0. Giản ước cho a.0 ta được a.0  0. Tương tự
ta được: 0.a  0. 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ật
vậy, từ a  0, theo tiên đề T.6, có a1 sao cho a1 .a  1. Nhân hai vế của
p3q 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ừ đó b0 (theo tính chất 1.3.5).

l
Tính chất 1.3.7
a.pbq
 paq.b  pa.bq.
Chứng minh: Ta có: a.pbq a.b  a.rpbq bs  a.0  0 và paq.b
a.b  rpaq as.b  0.b  0. Do đó a.pbq  paq.b  pa.bq. l
Tính chất 1.3.8
apb  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 a1 a  1. Nhân hai
vế 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 bc (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 bq mod m, @a, b P Z m,
adb  pa.bq mod m, @a, b P Z m.

Ví dụ 1.3.10 Phép cộng và nhân trong Z 7 được cho trong bảng sau:

` 0 1 2 3 4 5 6 d 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 0 1 0 1 2 3 4 5 6
2 2 3 4 5 6 0 1 2 0 2 4 6 1 3 5
3 3 4 5 6 0 1 2 3 0 3 6 2 5 1 4
4 4 5 6 0 1 2 3 4 0 4 1 5 2 6 3
5 5 6 0 1 2 3 4 5 0 5 3 1 6 4 2
6 6 0 1 2 3 4 5 6 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ách
viế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ếu
0   a   m thì nghịch đảo của a chính là phần tử nghịch đảo theo modulo m
củ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 trong
việc mã hóa (29 là số nguyên tố nhỏ nhất không nhỏ hơn 26 là số chữ cái
trong bảng chữ cái tiếng Anh).
Ta có chẳng hạn: 20 13  p20 13q mod 29  4, 20.13 
p20.13q mod 29  28, 7  22, 12  17.
Ta có nghịch đảo của một số phần tử trong Z 29 như sau: 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ác
trườ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ỏa
1 1 . . . 1  0 trong đó 1 là phần tử đơn vị của trường F .
mãn p.1  looooooooomooooooooon
p số

Chứng minh: Thật vậy, do trường F chỉ có hữu hạn phần tử nên dãy
1, 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ẳng
hạ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ên
dươ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 0
vớ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ày
mâ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ừa
củ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ần
tử F q thì aq1  1.
Chứng minh: Lấy b1 , b2 , . . . , bq1 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ó abi  abj với i  j vì nếu abi 
abj thì apbi  bj q  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 aq1 pb1 b2 . . . bq1 q  b1 b2 . . . bq1 .
Do b1 b2 . . . 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 q
phầ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ủa
4 là 2.
Định lý 1.3.1 Nếu a là một phần tử khác không của trường hữu hạn q phần tử
F q và n là cấp của a thì q  1 chia hết cho n.
Chứng minh: Theo thuật toán chia, lấy q  1 chia cho n ta có q  1  k.n r
với 0 ¤ r   n. Ta có:
 ak.n r  panqk .ar .
aq1
Do aq1  1 và an  1 nên suy ra ar  1. Vì 0 ¤ r   n và n là số nguyên
dươ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 , . . . , aq1 u
chí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 khi
và chỉ khi s và q  1 nguyên tố cùng nhau. Như vậy tồn tại tất cả φpq  1q
phầ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ạn
những phần tử thuộc K : an , an1 , . . . , a1 , a0 , ta lập biểu thức hình thức:

f  anxn an1 xn1 ... a2 x2 a1 x 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ường
K . 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ới
một đa thức tương tự như trường hợp đa thức hệ số thực (trường R ) mà ta coi
như đã biết. Nói riêng, đa thức f  0 và đa thức g  0 kéo theo f g  0.

Định nghĩa 1.3.22 Cho đa thức với các hệ số trên trường K : f  an xn


an1 xn1 . . . a2 x2 a1 x 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ì degpf g q  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ới
mỗ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 K
sao 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 chia
f 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  an xn an1 xn1 . . . a2 x2 a1 x a0 và


g  bm xm bm1 xm1 . . . b2 x2 b1 x 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  a0 b 0 . Còn nếu n  0, m ¡ 0
1

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ếu m ¡ n
thì ta chọn q  0, r  f . Nếu m ¤ n, đặt h  f  pan b m qx
1 nm
.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ức
s 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  anbm1xnm 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ử q 1 và r 1 cũng là các đa
thức sao cho:
f  q 1 g r 1 , deg r 1   deg g.
Khi đó r  r 1  pq1  qq.g. Nếu q  q1 thì
degpr  r 1 q  degpq  q 1 q deg g ¥ deg g.

Điều này mâu thuẫn với giả thiết deg r   deg g và deg r 1   deg g. Vậy
q  q 1 và do đó r  r 1 . l
Định nghĩa 1.3.23 Đa thức f P K rxs được gọi là chia hết cho đa thức
g 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 cho
f  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ệu
g  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à đa
thứ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. Đa
thứ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ân
tí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ất
nế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 được
gọi là ước chung của hai đa thức f và g nếu h là ước của cả f và g. Ước
chung h của f và g được gọi là ước chung lớn nhất của f và g (kí hiệu
h  UCLNpf, g q) 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, g q  1
thì 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, ta
có 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án
Euclid:
f  gq0 r1 , deg r1   deg g;
g  r1q1 r2 , deg r2   deg r1;
r1  r2q2 r3 , deg r3   deg r2;
...
rn2  rn1 qn1 rn , deg rn   deg rn1;
rn1  rn qn .

Đ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ủa
hai đ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án
Euclid 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án
Euclid 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ên
trườ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ường
trừ 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ép
cộ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 trong
Z p rxs, thì
g`h  pg hq mod f, @g, h P Z prxs,
gdh  pg.hq mod 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 p rxs nhưng thực ra ta chỉ
xét trên tập các đa thức trên trường Z p có bậc nhỏ hơn r. Dễ dàng kiểm chứng
trên tập này, hai phép toán mới định nghĩa cũng thỏa mãn các tiên đề T.1, T.2,
T.3, T.4, T.5, T.6, T.8, T.9.
Ta sẽ xem xét tiên đề T.7. Vì f là đa thức bất khả qui nên UCLNpf, g q  1
vớ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ậc
r 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án
cộ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ã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ạ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ại
củ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ùng
phé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ụng
biế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, 11
khi 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ập
hữ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ớn
hơ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. c) 1, 2, 4, 5, 3. e) 6, 7, 1, 4, 2, 3, 5.
b) 5, 4, 1, 2, 3. d) 4, 5, 2, 3, 1. 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; 1, 5, 6, 4, 2, 3; 2, 3, 1, 4, 6, 5; 6, 5, 4, 3, 2, 1;
2, 3, 1, 4, 5, 6; 5, 4, 3, 2, 1, 6; 3, 1, 4, 5, 6, 2; 6, 5, 4, 3, 1, 2;
1, 6, 5, 4, 3, 2; 5, 4, 1, 2, 3, 6; 4, 3, 2, 5, 6, 1; 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ên
dươ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ập
t1, 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ó n
phầ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ập
3 của tập ta, b, c, d, eu.

I.15. Hãy xây dựng thuật toán sinh chỉnh hợp lặp chập m phần tử của tập có n
phầ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ó n
phầ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ài
nhấ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ên


khô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. c) 1, 2, 4, 5, 3. e) 6, 7, 1, 4, 2, 3, 5.
b) 5, 4, 1, 2, 3. d) 4, 5, 2, 3, 1. 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 đây
thông qua khai triển Cantor:

a) 3. c) 11. e) 35.
b) 89. d) 111. 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. c) 494.
b) 220. 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. d) 111 chia cho 11.


b) 4 chia cho 1. e) 789 chia cho 23.
c) 1 chia cho 5. 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 chia
hết cho 3.

I.24. Cho m và n là những số nguyên. Chứng minh rằng nếu m2 n2 chia


hế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 minh
rằ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. c) 107. e) 2047.


b) 93. d) 119. f) 8191.

I.28. Phân tích những số dưới đây ra thừa số nguyên tố

a) 143. c) 899. e) 1875.


b) 289. d) 7337. 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
t np u t pn2 u . . . t pnk u,
Bộ môn Toán - ĐẠI HỌC THĂNG LONG 55
Chương 1. Thuật toán, Số nguyên, Trường hữu hạn, Đa thức

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


.

I.30. Hãy phân tích những số sau ra thừa số nguyên tố

a) 10!. b) 20!. c) 50!.

I.31. 100! tận cùng bằng bao nhiêu số 0?

I.32. Cho a là một số nguyên dương. Chứng minh rằng với số tự nhiên n ¡ 1:
a) Nếu 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. c) 213  1. e) 515  1.
b) 211  1. d) 37  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ên
tố 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 1


cũ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ên


tố 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 2p1 p2p  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ên
sau:

a) a  12 và b  8. d) a  12345 và b  54321.
b) a  111 và b  223. e) a  123 và b  277.
c) a  1001 và b  1331. 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ững
số 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 . d) 2.3.5.7.11.13 và 211 .39 .11.1714 .


b) 22 .7 và 563.13. e) 187 và 51.
c) 0 và 5. 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  432 và UCLNpa, bq  36.


b
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ó


a
UCLNpa, b, cq  UCLN a b b c c
, , .
2 2 2

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

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


am  1 
b) Với a ¡ 1, m ¡ 1 ta có UCLN , a  1  UCLNpa  1, mq.
a1
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:


UCLNpa, b, cq
a) BCNNpa, b, cq  UCLNpa,abc. .
bq. UCLNpb, cq. UCLNpc, aq
BCNNpa, b, cq
b) UCLNpa, b, cq  BCNNpa,abc. .
bq. BCNNpb, cq. BCNNpc, aq

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

a) 100a  0 pmod 21q khi và chỉ khi a  2b 4c  0 pmod 21q.


10b c
b) 3n  1 pmod 10q khi và chỉ khi 3n 4  1 pmod 10q.

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

a) 8! chia cho 11. f) 570 750 chia cho 12.


b) 15325  1 chia cho 9. g) 3.575 4.7100 chia cho 132.
c) 35150 chia cho 425. h) p1237156 34q28 chia cho 111.
d) 6592 chia cho 11. 2 10
i) 1010 1010 ... 1010 chia
40
e) 3 chia cho 83. cho 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:


69 220 119
a) 220119 11969 69220 chia hết cho 102.
b) 62n 1
5n 2
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) 23
4n 1
3 chia hết cho 11 với n P N.
3 chia hết cho 19 với n P N .
6n 2
f) 22

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 sao
cho α  β 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ứng
minh rằng
mφpnq nφpmq  1 pmod mnq.

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


an

a51 a52 ... a5n  0 pmod 30q.

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

a) 130 230 ... 1030  1 pmod 11q.


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

I.57. Tính nghịch đảo của:

a) 3 trong Z 28 . c) 13 trong Z 43 .
b) 4 trong Z 65 . 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. c) φp109q. e) φp11200q.


b) φp63q. d) φp936q. 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. d) 342.
b) 423. e) 643.
c) 1234. 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 . d) 11001100112 .
b) 10000000012 . e) 111000010110102 .
c) 10101012 . 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 . d) 11001100112 .
b) 10000000012 . e) 111000010110102 .
c) 10101012 . 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ân
của những số nguyên sau:

a) AABB 16 . d) 1A5B8EF 16 .
b) 135AB 16 . e) DCE3616 .
c) DEF ACED 16 . f) F F F F 16 .

I.63. Chuyển từ biểu diễn thập phân sang biểu diễn thập lục phân của những số
nguyên sau:

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


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

a) 1356. d) 65537.
b) 4327. e) 4096.
c) 512. 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ật
có 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ủa
sinh viên có số thẻ bảo hiểm xã hội là:

a) 104578690. c) 372201919.
b) 432222187. d) 501338753.

I.66. Một bãi đỗ xe có 31 chỗ dành cho khách, được đánh số từ 0 đến
30. Các xe của khách được gán cho chỗ đỗ bằng cách dùng một hàm băm
hpkq  k mod 31 với k là số tạo bởi ba chữ số đầu trên biển đăng kí xe của
khá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ống
khi 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áy
phát” đồng dư tuyến tính:

xn 1  p4xn 1q mod 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áy
phát” đồng dư tuyến tính:

xn 1  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óa
f ppq cho sau đây:

a) f ppq  pp 3q mod 26.


b) f ppq  pp 15q mod 26.
c) f ppq  p3p 7q mod 26.

I.71. Giải mã các bức thư đã được mã hóa bằng mật mã Ceasar sau:

a) ORYH VWRUB.
b) PLVVLRQ WRS VHFUHW.
c) JRQH ZLWK WKH ZLQG.

I.72. Biết bản mã hóa của một bức thư như sau: “LJMKG MGMXF QEXMW”.
Tìm bức thư gốc biết nó được mã hóa bởi hàm f ppq  p7p 10q mod 26.

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


$ $
'
' x1 pmod 3q, &x  4 pmod 5q,
'
'
&x 4 pmod 5q, c)
%
x  1 pmod 12q,
a) x2 pmod 7q, x  7 pmod 14q.
'
'
'
' x9 pmod 11q,
%
x3 pmod 13q.
$ $
&x  a pmod 3q, &x  13 pmod 14q,
b) x  b pmod 5q, d) x  6 pmod 35q,
% %
x  c pmod 7q. 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

$ $
& 5x  1 pmod 12q, & 3x  1 pmod 10q,
e) 5x  2 pmod 8q, f) 4x  3 pmod 5q,
% %
7x  3 pmod 11q. 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úng
cho 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 f pxq và g pxq sau trong Z 5 rxs:

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

b) f pxq  px 2q2 và g pxq  px 3q2 .

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

I.78. Trong Q rxs, chứng minh rằng đa thức f pxq  px 1q2n  x2n  2x  1
chia 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 f pxq  px


1qn  nx  1 chia hết cho đa thức g pxq  x2 trong R rxs.

I.80. Tìm các số thực a sao cho trong R rxs ta có đa thức f pxq  x4  x a
chia hết cho đa thức g pxq  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 cho
k. Chứng minh rằng dư của phép chia xn cho xk  1 là xr .

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

a) f pxq  x6  2x5 x4  x2 2x  1 và g pxq  x5  3x3 x2 2x  1.

b) f pxq  x5 x3 x2 x 1 và g pxq  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 f pxq  x4 1 và g pxq 
x3  1 nguyên tố cùng nhau. Hãy tìm cặp đa thức upxq và v pxq trong R rxs
sao cho 1  f.u g.v.

I.84. Chứng minh rằng trong Q rxs, đa thức f pxq  x3  3n2 x n3 , với n
là 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) f pxq  x4  8x3 12x2  6x 3.


b) g pxq  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

N guyê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à sau
cù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ập
hợp thì sao? Trong nội dung mục này, chúng ta sẽ xem xét cách đếm số phần tử
của hợp hữu hạn những tập hợp. Đó chính là nội dung của nguyên lí bù trừ.
Đối với trường hợp ta có ba tập hợp A, B, C cho trước, tổng |A| |B | |C |
sẽ đếm một lần các phần tử chỉ thuộc một trong ba tập hợp, đếm hai lần các
phầ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ần
phải trừ đi số phần tử thuộc các giao của tất cả các cặp hai trong ba tập hợp:
|A| |B | |C |  |A X B |  |A X C |  |B X C |.
Tuy nhiên, tổng trên cũng không đếm chính xác được số phần tử của A Y B Y C
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:
|A Y B Y C |  |A| |B | |C ||A X B ||A X C ||B X C | |A X B X C |.
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ám
số 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ứa
tám số 0 liên tiếp ta tìm số phần tử của tập A Y B Y C theo công thức
|A Y B Y C |  |A| |B | |C ||A X B ||A X C ||B X C | |A X B X C |.
Theo qui tắc nhân ta có thể tính ngay được |A|  |B |  |C |  4, |A X B | 
|B X C |  2, |A X C |  1 và |A X B X C |  1. Vậy |A Y B Y C |  8. 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ạn
phần tử. Khi đó, ta có:
¸ ¸ ¸
|A1YA2Y. . .YAn|  |Ai| |AiXAj | |AiXAj XAk |
1¤i¤n 1¤i j ¤n 1¤i j  k¤n
¸
 . . . p1q m1
|Ai X Ai X . . . X Ai |
1 2 m
1¤i1  i2  ... im ¤n
... p1qn1|A1 X A2 X . . . X An|.
Chứng minh: Chúng ta sẽ chứng minh công thức trên bằng cách chỉ ra rằng mỗi
phầ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ử chung
. . , An trong đó 1 ¤ r ¤ n.
của đúng r tập hợp trong những tập A1 , A2 , .°
Phần tử này được đếm đúng Cr lần trong tổng |Ai |, đúng Cr2 lần trong tổng
°
1

|Ai X Aj |. Tổng quát, nó được đếm đúng


Cr1  Cr2 ... 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ó
Cr0  Cr1 Cr2  . . . p1qr Crr  p1  1qr  0
hay
Cr1  Cr2 p1qr1Crr  Cr0  1.
...
Vậy dù cho a là phần tử nào trong hợp A1 Y A2 Y . . . Y An , 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ủa
hợ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ậy
mọ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 7
khô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ết
cho k. Vậy số các hợp số nhỏ hơn 100 là |A2 Y A3 Y A5 Y A7 |  4. Theo
nguyên lí bù trừ cho hợp của bốn tập hợp ta có

|A2 Y A3 Y A5 Y A7|  |A2| |A3| |A5| |A7|


 | A 2 X A3 |  | A2 X A5 |  | A2 X A 7 |  | A3 X A5 |  | A 3 X A7 |  | A5 X A7 |
| A 2 X A3 X A 5 | | A2 X A3 X A7 | | A2 X A 5 X A7 | | A3 X A5 X A7 |
 |A2 X A3 X A5 X A7|.
 t 99
Mặt khác, ta có |Ak |
k
u, Ai X Aj  Aij với UCLNpi, j q  1 và
Ai X Aj X Ak  Aijk với UCLNpi, j, kq  1 . . . .
Do đó

|A2 Y A3 Y A5 Y A7|  |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 00  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ơn
100) 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ể định
nghĩ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ật
kiểu này được gọi là đệ qui hay hồi qui. Kỹ thuật đệ qui được sử dụng rất nhiều
và đặ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àm
số 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ường
minh F pnq  n!. Tuy nhiên tính toán giá trị của hàm tại một số nguyên dương
n 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 định
nghĩa giá trị tại n  0 sau đó ta xác định giá trị tại số nguyên n bất kì bằng
cô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ên
khô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:

f p0q 2, f pn 1q  3f pnq 5.

Hãy tìm f p1q, f p2q, f p3q và f p4q.

Lời giải: Từ định nghĩa của hàm f bằng đệ qui ta có


f p1q  3f p0q 5  3.2 5  11,
f p2q  3f p1q 5  3.11 5  38,
f p3q  3f p2q 5  3.38 5  119,
f p4q  3f p3q 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ì apn 1q


 a.an nên ta có công thức
F pn 1q  a.F pnq. l
¸
n
Ví dụ 2.2.4 Hãy cho định nghĩa đệ qui của hàm F pnq  ak .
k0

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:
n¸1 ¸
n

F pn 1q  ak  ak an 1  F pn q an 1 .
k0 k0

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

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à
¹1
n ¹
n

F pn 1q  ak  ak .an 1  an 1 .F pn q.
k0 k0

l
Ví dụ 2.2.6 Hãy đưa ra định nghĩa đệ qui của hàm max và min sao cho
maxta1 , a2 , . . . , an u và minta1 , a2 , . . . , an u 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 maxta1 u  a1 và minta1 u  a1 .
Sau đó ta đưa ra biểu thức đệ qui

maxta1 , a2 , . . . , an u  maxtmaxta1, a2, . . . , an1u, anu,



minta1 , a2 , . . . , an u  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 định
nghĩ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 trong
nhữ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 tfn u đượ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 tfn u 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ường
gặp dãy số Fibonacci trong thiên nhiên, chẳng hạn ở số cánh của hầu hết các
loài hoa: 3 cánh (hoa loa kèn), 5 cánh (hoa mao lương vàng), 8 cánh (hoa phi
yế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 minh
bằ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
2
5
  2  f3 , α2  3
2
5
  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ình
x2  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ừ đó fn 1  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ới
mọ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ập
xuấ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 minh
A  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ên
dương. Đặt P pnq là hàm mệnh đề “3n thuộc S”. Để chứng minh A là tập con
củ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ày
có nghĩa là P pn 1q đúng. Theo qui nạp toán học mọi số có dạng 3n, với n
nguyê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 ra
do phần đầu và phần sau của định nghĩa đệ qui đều thuộc A, tức là đều chia hết
cho 3. Hiển nhiên phần tử đầu tiên của S là 3 thuộc A do 3 chia hết cho 3. Bây
giờ 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ết
cho 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ới
từ 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ợp
là để định nghĩa biểu thức được tạo đúng qui tắc trong các hệ khác nhau. Ta xét
ví 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 g q, pf  g q, pf  g q, pf {g q và pf Ò g q là những biểu thức đúng qui
tắ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ên
px 3q, px  3q, px  3q, px{3q và px Ò 3q là các biểu thức đúng qui tắc. Tiếp
theo, vì y cũng là biểu thức đúng qui tắc nên ppx 3q  y q, py  px  3qq cũng
là đúng qui tắc,... (lưu ý là p3{0q cũng là biểu thức đúng qui tắc vì ở đây ta chỉ
quan tâm đến cú pháp).
Ví dụ 2.2.11 Biểu thức cho mệnh đề phức hợp gồm T, F , biến mệnh đề và các
toá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 qui
tắc.
2. p pq, pp ^ qq, pp _ qq, pp Ñ qq, pp Ø qq là những biểu thức đúng qui
tắ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 đệ qui
nhiề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 qq
là đú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ắc
lạ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ới
bộ chữ cái Σ được kí hiệu là Σ . Hai xâu có thể kết hợp với nhau theo phép
ghé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ếp
xâ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 định
nghĩ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âu
trê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ột
xâ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ủa
lpwq 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 lpxy q  lpxq lpyq, trong đó x và y là những
xâ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 y
khẳng định
lpxy q  lpxq lpy q,
với x, y là những xâu thuộc Σ .
Đặt P pnq là mệnh đề
lpxy q  l px q l py q,
với x P Σ và y P Σ , y là xâu có độ dài n.
Với n  0 ta có y  λ, khi đó
lpxy q  lpxλq  lpxq  lpxq  lpxq lpλq.
0
Giả sử P pnq là đúng, ta phải chứng minh rằng nếu z P Σ là xâu có độ dài
n 1 thì
lpxz q  l px q l pz q.
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ó
lpxz q  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ó lpxy q


 lpxq lpyq. Từ đó
lpxz q  lpxy q 1  lpxq lpy q 1  lpxq lpyaq  lpxq lpz q.
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ố tan u là công thức biểu
diễ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 qua
an0 , an0 1 , . . . , 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 tan u là dãy số thỏa mãn hệ thức truy hồi an  an1 2an2 ,
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ểm
tra 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ới mọi n P N . Khi đó với n ¥ 2 ta có 3an1 2an2 


3.2n1  2.2n2  2n . Do đó, dãy tan u 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. Do
a2  4  3a1  2a0 nên dãy tan u với an  2n không là nghiệm của
hệ thức truy hồi đã cho.
3. Giả sử an  2, với mọi n P N . Khi đó với n ¥ 2 ta có 3an1  2an2 
2.2  2  2. Do đó, dãy tan u với an  2 là một nghiệm của hệ thức
truy 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ạng
nà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ồi
vớ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 nhau
cho 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ủa
mì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 sinh
ra vào năm thứ n nên ta thấy dãy tPn u thỏa mãn hệ thức truy hồi sau:

 Pn1
Pn 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ông
thứ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ồi
và giả thiết qui nạp ta có

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


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


nă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ột
cô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òn
gọ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 đực
và 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 sinh
sả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ới
n  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 ra
từ cặp thỏ có ít nhất hai tháng tuổi.
Vậy dãy tfn u thỏa mãn hệ thức truy hồi
 fn1 fn2,
fn
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ặp
thỏ 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ại
như 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ắn
64 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ình
thá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ây
kim thứ hai và sử dụng cây kim thứ ba làm trung gian nhưng mỗi lần chỉ được
chuyể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áp
Hà 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 đã được
lồ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ỏi
chuyể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 tHn u.
Lời giải: Giả sử ở cọc thứ nhất có n đĩa khác nhau. Để chuyển n đĩa này sang
cọ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ất
sang 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 sang
cọ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ên
trê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ịch
chuyể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 sang
cọ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ồi Hn  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ất H64 lần chuyển
xuyế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ần
chuyể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ày
tậ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ằng
5?

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 a1 a2 . . . an1 an . Với n ¥ 3 ta xét những trường
hợp sau:
Nếu an  1 thì xâu đã cho có dạng a1 a2 . . . an1 1. Số xâu nhị phân độ
dài n chứa hai số 0 liên tiếp kiểu này bằng số xâu nhị phân a1 a2 . . . 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 a1 a2 . . . an1 0. Khi đó nếu an1  0
thì 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  1
thì 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 a1 a2 . . . 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

 Pn1 Pn2 2n2,


Pn

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ại
có 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 c2 an2 ... ck ank ,

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ức
truy 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 truy
hồ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ính
thuầ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ất
bậ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ần
nhất bậc năm với hệ số hằng.

Ví dụ 2.4.3 Hệ thức truy hồi an  an1 2pan2 q2 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ồi an  c1an1 c2 an2 . . . ck ank .
Khi đó phương trình

rk  c1rk1  c2rk2  . . .  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ó được
gọ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 ? trình đặc trưng? là


fn2 có phương
1 5
r2  r  1  0 và có hai nghiệm đặc trưng là r1  và r2 
1 5
.
2 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à


r 4  2r 2 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ức
truy 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ìm
nghiệm dưới dạng an  r n , trong đó r là hằng số. Nhận thấy rằng an  r n là
nghiệm của hệ thức truy hồi an  c1 an1 c2 an2 . . . ck ank khi và
chỉ khi
r n  c1 r n1 c2 r n2 . . . ck r nk .
Sau khi chia cả hai vế cho r nk và chuyển vế ta được phương trình tương đương

rk  c1rk1  c2rk2  . . .  ck1r  ck  0.


Vậy dãy tan u với an  r n là nghiệm của hệ thức truy hồi khi và chỉ khi r là
nghiệm của phương trình đặc trưng tương ứng.
Trước tiên ta sẽ trình bày những kết quả đối với hệ thức truy hồi tuyến tính
thuầ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 
c1 an1 c2 an2 có điều kiện đầu là a0  C0 và a1  C1 . Ta sẽ đưa ra công
thứ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 r 2 
c1 r  c2  0 có hai nghiệm phân biệt r1 và r2 . Khi đó dãy tan u là nghiệm của
hệ thức truy hồi an  c1 an1 c2 an2 nếu và chỉ nếu an  α1 r1n α2 r2n ,
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ương
trình đặc trưng và α1 , α2 là những hằng số thì dãy tan u với an  α1 r1n α2 r2n
là nghiệm của hệ thức truy hồi.
Giả sử r1 , r2 là hai nghiệm của r 2  c1 r  c2  0, tức là r12  c1 r1 c2
và r22  c1 r2 c2 . Khi đó ta có
c1 an1 c2 an2  c1pα1r1n1 α2r2n1q c2pα1r1n2 α2r2n2q
 α1r1n2pc1r1 c2q α2r2n2pc1r2 c2q
 α1r1n2r12 α2r2n2r22
 α1r1n α2r2n
 an.
Vậy dãy tan u với an  α1 r1n α2 r2n là nghiệm của hệ thức truy hồi đã cho.
Ngược lại, giả sử tan u là một nghiệm bất kì của hệ thức truy hồi ta sẽ chỉ
ra rằng tồn tại những hằng số α1 và α2 sao cho an  α1 r1n α2 r2n , với
n  1, 2, . . . .
Ta chọn α1 và α2 là nghiệm của hệ phương trình
#
α1 α2  C0,
α1 r1 α2 r2  C1.
Giải ra ta được nghiệm

α1  Cr1 Cr0r2 và α2  Cr0r1rC1 .


1 2 1 2
Đặt bn  α1 r1 α2 r2 . Theo chứng minh trên ta có dãy tbn u là một nghiệm
 n  n

của hệ thức truy hồi và có cùng điều kiện đầu với dãy tan u. Vì hệ thức truy hồi
và điều kiện đầu xác định duy nhất dãy nên an  bn  α1 r1n α2 r2n . Đị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ều
kiệ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 r 2  3r 2  0.
Các nghiệm đặc trưng là r1  1 và r2  2. Theo định lí 2.4.1 dãy tan u là
nghiệm của hệ thức truy hồi khi và chỉ khi
an  α1.1n α2 .2n ,
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 tan u 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à:
? ?
1
r1  1
2
5
và r2  2
5
.

Theo định lí 2.4.1 các số Fibonacci được cho bởi công thức sau:
? ?
5 n 1 5 n
fn  α1 1
2
α2
2
vớ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  α1
1 5 1 5
α2 .
2 2

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


5 5
Do đó các số Fibonacci được cho bởi công thức tường minh sau
? ?
5 n 1 5 n
fn ?1 1
2
? 1
2
.
5 5
l
Trường hợp 2: Phương trình đặc trưng có nghiệm kép. Khi đó nghiệm của
hệ 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 r 2 
c1 r  c2  0 có nghiệm kép r0 . Khi đó dãy tan u là nghiệm của hệ thức
truy hồi an  c1 an1 c2 an2 nếu và chỉ nếu an  α1 r0n α2 nr0n , 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 83


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

Chứng minh: Đầ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 tan u với an  α1 r0n α2 nr0n
là nghiệm của hệ thức truy hồi.
Giả sử r0 là nghiệm kép của r 2  c1 r  c2  0, ta có r02  c1 r0 c2 ,
c21 4c2  0 và r0  . Khi đó
c1
2
c1 an1 c2 an2 c1pα1r0n1 α2pn  1qr0n1q
c2 pα1 r0n2 α2 pn  2qr0n2 q
 α1r0n2pc1r0 c2q α2nr0n2pc1r0 c2q
 α2r0n2pc1r0 2c2q
2
 α1r0 r0 α2nr0 r0  α2r0 p
n2 2 n2 2 n2 c1 4c2
q
4
 α1r0n α2nr0n
 an.
Vậy dãy tan u với an  α1 r0n α2 nr0n là nghiệm của hệ thức truy hồi đã cho.
Ngược lại, giả sử tan u là một nghiệm bất kì của hệ thức truy hồi ta sẽ chỉ
ra rằng tồn tại những hằng số α1 và α2 sao cho an  α1 r0n α2 nr0n , với
n  1, 2, . . . .
Ta chọn α1 và α2 là nghiệm của hệ phương trình:
#
α1  C0,
α1 r0 α2 r0  C1.
Giải ra ta được nghiệm:

α1  C0 và α2  Cr 1  C0.


0

Đặt bn  α1 r0n α2 nr0n . Theo chứng minh điều kiện cần ở trên ta có
dãy tbn u 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 tan u. Vì hệ thức truy hồi và điều kiện đầu xác định duy nhất dãy nên
an  bn  α1 r0n α2 nr0n . Đị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ều
kiện đầu a0  1 và a1  4.
Lời giải: Ta thấy phương trình đặc trưng r 2 4r 4  0 có nghiệm kép
r  2. Theo định lí 2.4.2 nghiệm của hệ thức truy hồi có dạng
an  α1p2qn α2 np2qn ,

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:
#
 1  α1,
a0
 4  α1p2q α2p2q.
a1
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 đó
∆ : c21 4c2   0. Bằng cách đặt ρ  c2 và chọn góc α với 0 ¤ α ¤ 2π
sao cho cos α  ?
c1 |∆| , công thức nghiệm của hệ thức
và sin α  ?
2 c 2 2 c 2
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 r 2 
c1 r  c2  0 không có nghiệm thực. Khi đó dãy tan u là nghiệm của hệ thức truy
hồi an  c1 an1 c2 an2 nếu và chỉ nếu an  ρn pα1 cos nα α2 sin nαq,
với n  1, 2, . . ., trong đó α1 và α2 là những hằng số.
Ví dụ 2.4.9 Tìm nghiệm của hệ thức truy hồi an  an1  an2 với những
điều kiện đầu a0  1 và a1  1.

a phương trình đặc trưng r  r 1  0 không có nghiệm


2
Lời giải: Nhận thấy
thực. Xét ρ  p1? q  1 và chọn góc α với 0 ¤ α ¤ 2π thỏa mãn
cos α  và sin α  , ta được α  . Theo định lí 2.4.3 nghiệm của
1 3 π
2 2 3
hệ thức truy hồi có dạng:
an  1n pα1 cos q,
nπ nπ
α2 sin
3 3
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
π π
α2 sin .
3 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  cos

?1 sin nπ .
3 3 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 truy
hồ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 cho
nhữ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. Định
lí 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 truy
hồ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 đặc
trưng r k  c1 r k1  . . .  ck  0 có k nghiệm phân biệt r1 , r2 , . . . , rk . Khi
đó dãy tan u là nghiệm của hệ thức truy hồi
an  c1an1 c2 an2 ... ck ank
nếu và chỉ nếu
an  α1r1n α2 r2n ... αk rkn ,
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 r 3  r 2  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ệm
của hệ thức truy hồi có dạng
an  α11n α2 2n α3 p2qn ,
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ư định
lí 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 đặc


trưng r k  c1 r k1  . . .  ck  0 có các nghiệm đơn r1 , . . . , rs và các
nghiệm bội rs 1 , . . . , rt cấp tương ứng là ls 1 , . . . , lt , với 1 ¤ s   t   k và
s ls 1 . . . lt  k. Khi đó dãy tan u là nghiệm của hệ thức truy hồi
an  c1an1 c2 an2 ... ck ank
nếu và chỉ nếu

an  α1r1n ... αs rsn pαs 1 αs 2 n ... αs ls 1


nls 1 1 qrsn 1
... pαt αt 1 n ... αt lt n
lt 1
q rtn
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 r 3  5r 2 8r  4  0 của hệ thức truy
hồi có các nghiệm đặc trưng là r1  1 và r2  2 bội hai. Theo định lí 2.4.5
nghiệm của hệ thức truy hồi có dạng
an  α11n pα2 α3 nq2n ,
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 đó đa
thứ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 pr 2 ai r bi q, i  1, t không
? có nghiệm thực
và 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  ? và sin α 
ai |a2i  4bi |
? , công thức
2 bi 2 bi
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 đặc


trưng r k  c1 r k1  . . .  ck  0 có nghiệm không thực. Khi đó dãy tan u là
nghiệm của hệ thức truy hồi:

an  c1an1 c2 an2 ... ck ank

nếu và chỉ nếu

an  α1r1n ... αs rkn ρn1 pβ1 cos nα1 γ1 sin nα1 q


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

với n  1, 2, . . ., trong đó α1 , . . . , αs , β1 , . . . , βt , γ1 , . . . , γt là những


hằ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  và a2 
3 3 .
2 2
Lời giải: Nhận thấy phương trình đặc trưng r 3  1  pr 
? 1qpr 2 r 1q có
thừa số r 2 r 1  0 không có nghiệm thực. Xét ρ ? 1  1 và chọn góc
α với 0 ¤ α ¤ 2π thỏa mãn cos α 
1 và sin α  3 , ta được α  2π .
2 2 3
Theo định lí 2.4.6 nghiệm của hệ thức truy hồi có dạng

an  α11n 1n pβ1 cos


2nπ
3
γ1 sin
2nπ
3
q,
với α1 và β1 , γ1 là những hằng số. Dựa vào những điều kiện đầu ta suy ra
$
'
'
'
a0  3  α1 β1 , ?
'
&
a1  3
 α1  1
β1
3
γ1 ,
'
'
2 2 ?2
'
'
% a2  2 3
α1 
 23 γ1. 1
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 cos
2nπ
3
3 sin
2nπ
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ới
hệ số hằng số là hệ thức truy hồi có dạng

an  c1an1 c2 an2 ... ck ank F pn q,

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ính
khô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 c2 an2 ... ck ank F pn q.

Khi đó nếu tpn u là một nghiệm của hệ thức truy hồi không thuần nhất thì mọi
nghiệm của nó đều có dạng tpn hn u, trong đó thn u là nghiệm của hệ thức truy
hồi tuyến tính thuần nhất tương ứng: an  c1 an1 c2 an2 . . . ck ank .

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

qn  c1qn1 c2 qn2 ... ck qnk F pn q


pn  c1pn1 c2 pn2 ... ck pnk F pn q.
Trừ từng vế của hai phương trình trên ta được:

qn  pn  c1pqn1  pn1q c2pqn2  pn2q . . . ck pqnk  pnk q.


Đặt hn  qn  pn . Từ đẳng thức trên ta được thn u là nghiệm của hệ thức truy
hồ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ần
nhấ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êng
của hệ thức truy hồi không thuần nhất phụ thuộc vào F pnq. Sau đây ta sẽ đưa
ra 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ông
thuầ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  b0 nm b1 nm1 . . . bm .
a. Nếu phương trình đặc trưng r k c1 r k1 . . .ck  0 không nhận r  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 tpn u dưới dạng pn  t0 nm t1 nm1 . . . 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 r 2  r  2  0 không có nghiệm r  1. Ta
tìm một nghiệm riêng của hệ thức truy hồi dưới dạng pn  bn c. Thay tpn u
vào hệ thức truy hồi ta có
bn c  rbpn  1q cs 2rbpn  2q cs n 1.
Hay
p2b 1qn p5b 2c 1q  0.
Do đẳng thức trên đúng với mọi n nên ta có:
"
2b 1  0,
5b 2c 1  0.
 21 và c  34 . Vậy nghiệm riêng của hệ thức truy hồi đã
Giải ra ta được b

cho có dạng pn 
1 n 3 . l
2 4
b. Nếu phương trình đặc trưng r k  c1 r k1  . . .  ck  0 có nghiệm r  1 bội
s thì tìm nghiệm riêng tpn u dưới dạng pn  ns pt0 nm t1 nm1 . . . tm q,
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 r 3  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ạng
pn  an2 . Thay tpn u vào hệ thức truy hồi ta có
 3apn  2q2  2apn  3q2
an2 1.

Rút gọn hai vế ta được 6a 1  0. Vậy a  .


1
6
n2
Do đó một nghiệm riêng của hệ thức truy hồi đã cho có dạng pn  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ạng
pn  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 r 2  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ạng
pn  a2n . Thay tpn u 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  2n .
4
3
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ưới
dạ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ệm
riêng của hệ thức truy hồi dưới dạng pn  an3n . Thay tpn u vào hệ thức truy
hồ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  pb0 nm . . . bm q Aβ n .
Ta tìm nghiệm riêng dưới dạng pn  p1n p2n , trong đó p1n là nghiệm riêng của
hệ thức truy hồi
an  c1an1 c2 an2 ... ck ank b0 nm ... bm ,
và p2n là nghiệm riêng của hệ thức truy hồi
an  c1an1 c2 an2 ... ck ank 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  là nghiệm riêng của hệ thức truy hồi an 
6
5
6an1 5n. Vậy pn  p1n p2n  3n  n  là một nghiệm riêng của
6
5
hệ thức truy hồi an  6an1 3 n
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ặc
là nó đòi hỏi quá nhiều thời gian, hoặc không có đủ bộ nhớ để lưu giữ dữ liệu
và các biến của chương trình. Vì vậy, để có thể đánh giá khả năng ứng dụng
củ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ật
toán là quá trình tìm ra những đánh giá về thời gian tính cũng như dung lượng
bộ 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ật
toán là lượng thời gian và bộ nhớ cần thiết để thực hiện thuật toán. Trong mục
nà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 (ta
sẽ 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ông
thườ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ới
mộ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ải
thự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 đặt
trê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ông
số 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ên
tập số nguyên dương. Ký hiệu F là tập các hàm đối số nguyên dương. Trong
phầ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 g pnq P F , Ký hiệu O pg pnqq là tập tất cả
những hàm f pnq P F có tính chất: tồn tại hằng số dương C1 và số nguyên
dương N1 sao cho với mọi n ¥ N1 , ta có

f pn q
¤ C1gpnq.
Ta viết f pnq  O pg pnqq và nói rằng f pnq là Ô lớn của g pnq.
Ký hiệu Ωpg pnqq là tập tất cả những hàm f pnq 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ó


C2 g pnq
¤ f pn q.
Ta viết f pnq  Ωpg pnqq và nói rằng f pnq là Ômega của g pnq.
Ký hiệu Θpg pnqq là tập tất cả những hàm f pnq P F có tính chất: tồn tại hằng
số dương C1 , C2 và số nguyên dương N0 sao cho với mọi n ¥ N0 , ta có

C1 g pnq ¤ f pnq ¤ C2 g pnq.

Ta viết f pnq  Θpg pnqq và nói rằng f pnq là Thê ta của g pnq.

Định nghĩa trên có thể phát biểu bằng lời như sau:

• f pnq  O pg pnqq 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.

• f pnq  Ωpg pnqq 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.

• f pnq  Θpg pnqq 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 ¥ 1
nên chọn C1  22 ta được:

10n2 5n  O pn 2 q.
7

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

10n2 5n 7  Ωpn2 q.

Do 10n2 5n 7  O pn2 q và 10n2 5n 7  Ωpn2 q nên

10n2 5n 7  Θpn2 q.

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  ak nk ak1 nk1 . . . a1 n a0 là đa thức hệ


số thực bậc k với ak ¡ 0. Chứng minh rằng P pnq  Θpnk q.

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  Opnk q. Ta có


P pn q ak nk ak1nk1 . . . a1n a0
¤ ak nk |ak1|nk1 . . . |a1|n |a0|
¤ ak nk |ak1|nk . . . |a1|nk |a0|nk
 pak |an1| . . . |a1| |a0|qnk .
Nếu đặt C1  ak |an1 | . . . |a1 | |a0 | thì P pnq ¤ C1 nk , với mọi
n  N1 ¥ 1. Do đó P pnq  O pnk q. Bây giờ ta sẽ chứng minh rằng
P pnq  Ωpnk q.
P pnq  ak nk ak1 nk1 . . . a1 n a0
¥ ak nk  |ak1|nk1  . . .  |a1|n  |a0|

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

¥ 2n
ak k
n  p|ak1 |nk1 . . . |a1 |nk1 |a0 |nk1 q
ak k
2

 2n
ak k ak
2
n  p|ak1 | . . . |a1 | |a0 |q nk1 .

Nếu đặt C2  2
ak
 t
và N2p|ak1 | . . . |a1 | |a0 |q u thì ta có
ak
2
P pnq ¥ C2 nk đúng với mọi n ¥ N2 . Vậy P pnq  Ωpnk q. Do đó
P pnq  Θpnk q. l
Ví dụ 2.6.4 Chứng minh rằng logpnq  O pn q.
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ức
trên đúng vì 0   1. Giả sử logpnq ¤ n, với n ¥ 1. Ta chứng minh rằng
logpn 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 được
logpnq ¤ n, với mọi n ¥ 1. Từ đó log n  O pnq. 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 u ta có
n
2
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
¥ n2 log n2 .
Nhận thấy với n ¥ N đủ lớn ta có
n
2
log
n
2
 n2 plog n  log 2q ¥ n2 plog n  12 log nq  14 n log n.
Do đó log n! ¥ 14 n 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  Θpnk 1q.
Lời giải: Ta có
1k 2k ... nk¤ nk nk . . . nk
 nnk  nk 1,
với n¥ 1. Do đó 1k 2k . . . n k  O pn k 1 q.
Mặt khác, đặt m  t u ta có
n
2
1k 2k ... nk  1k 2k . . . mk pm 1qk ... nk
¥ pm 1qk pm 2qk . . . nk
¥ pm 1qk pm 1qk . . . pm 1qk
 pn  mqpm 1qk
¥ n2 p n2 qk
nk 1
 2k 1
.

Vậy 1k 2k . . . nk  Ωpnk 1 q.
Do đó 1k 2k . . . nk  Θpnk 1 q. 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 O plog 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ãn
a ¥ 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án
Euclid để tìm UCLNpa, bq ta nhận được dãy những đẳng thức sau:
r0  r1 q1 r2 , 0 ¤ r2   r1 ,
r1  r2 q2 r3 , 0 ¤ r3   r2 ,
...
rn2  rn1qn1 rn, 0 ¤ rn   rn1,
rn1  rn qn ,
với a  r0 và b  r1 . Như vậy để tìm rn  UCLNpa, bq ta dùng n phép
chia. Ta có những thương q1 , q2 , . . . , qn1 luôn lớn hơn hay bằng 1 và qn ¥ 2
do 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  fn 1 .
Từ đó suy ra nếu n là số phép chia trong thuật toán tìm UCLNpa, ? bq thì
b ¥ fn 1 . Từ ví dụ 2.2.8 ta có fn 1 ¡ αn1 , với n ¡ 2 và α 
1 5
. Do
2
vậy b ¡ αn1 . Vì log10 α ∼ 0, 208 ¡ nên ta có đánh giá sau:
1
5
n1
log10 b ¡ pn  1q log10 α ¡ .
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ên
¤ 5k ¤ 5plog10 b 1q  Oplog10 bq.
n
Vậy thuật toán Euclid để tìm UCLNpa, bq với mọi a ¡ b đã sử dụng O plog bq
phé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 f pnq và g pnq là những hàm đối số nguyên dương. Khi đó
ta có những tính chất sau:

1. O pf pnqq  O pcf pnqq, Ωpf pnqq  Ωpcf pnqq và Θpf pnqq 


Θpcf pnqq, với c là hằng số.
2. f pnq  Θpgpnqq khi và chỉ khi f pnq  Opgpnqq và f pnq  Ωpgpnqq.
3. Nếu f pnq  O pg pnqq thì O pf pnqq „ O pg pnqq.
4. Nếu f pnq  O pg pnqq thì g pnq  Ωpf pnqq.
5. O pf pnqq  O pg pnqq khi và chỉ khi Ωpf pnqq  Ωpg pnqq khi và chỉ khi
Θpf pnqq  Θpg pnqq.

Mệnh đề 2.6.9 Nếu f1 pnq  O pg1 pnqq và f2 pnq  O pg2 pnqq thì

1. f1 pnq f2 pnq  O pg1 pnq g2 pnqq.


2. f1 pnq f2 pnq  O pmaxtg1 pnq g2 pnquq.
3. f1 pnqf2 pnq  O pg1 pnqg2 pnqq.

Chứng minh: Giả sử với mọi n ¥ N1 ta có f1 pnq ¤ C1 g1 pnq và với mọi


n ¥ N2 ta có f2 pnq ¤ C2 g2 pnq.

1. Đặt N0  maxtN1 , N2 u và C0  maxtC1 , C2 u. Khi đó với mọi


n ¥ N0 ta có

f1 pnq f2 pnq ¤ C1 g1 pnq C2 g2 pnq ¤ C0 pg1 pnq g2 pnqq.

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


ta có

f 1 pn q f2 pnq ¤ C1 g1 pnq C2 g2 pnq


¤ pC0 C1q maxtg1pnq, g2pnqu  C0 maxtg1pnq, g2pnqu.
3. Đặt N0  maxtN1, N2u và C0  C1C2. Khi đó với mọi n ¥ N0 ta

f 1 pn qf 2 pn q ¤ 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àm
f pnq, g pnq 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à f pnq  Θpf pnqq.


2. Θ đối xứng, tức là từ f pnq  Θpg pnqq suy ra g pnq  Θpf pnqq.

3. Θ bắc cầu, tức là từ f pnq  Θpg pnqq và g pnq  Θphpnqq suy ra


f pnq  Θphpnqq.

Vì Θ xác định một quan hệ tương đương trên tập F nên ta có thể định nghĩa
thứ bậc trên tập đó.

Định nghĩa 2.6.11 Hai hàm f pnq và g pnq được gọi là có cùng thứ bậc nếu
f pnq  Θpg pnqq.

Từ tính chất của Θ ta có thể phát biểu theo thứ tự sau:

1. f pnq có cùng thứ bậc với chính nó.

2. Nếu f pnq có cùng thứ bậc với g pnq thì g pnq cũng có cùng thứ bậc với
f pnq.

3. Nếu f pnq có cùng thứ bậc với g pnq và g pnq có cùng thứ bậc với hpnq thì
f pnq có cùng thứ bậc với hpnq.

Từ tính chất của Θ ta cũng suy ra f pnq và g pnq cùng bậc khi và chỉ khi
Θpf pnqq  Θpg pnqq. Như vậy, Θpf pnqq có thể kí hiệu bằng Θpg pnqq, với
mọi hàm g pnq  Θpf pnqq. Khi mô tả thứ bậc của hàm f pnq ta thường chọn
tập hợp Θpf pnqq đơn giản nhất. Ví dụ
 
Θ p7n5 nq 3 Θ
1 5
log n 3n 3 2n log n
 
Θ 5
n3 Θ n3
5 1
15n 2
n5 2
Θ 10
n
.
n3 log n
5
Vì n 3 có dạng đơn giản nhất trong lớp hàm tương ứng này nên ta chọn lớp
Θpn 3 q, khi đó ta nói f pnq  Θpn 3 q có bậc n 3 .
5 5 5

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  O pnq bằng phản chứng.
Như vậy, n và n2 nằm ở những lớp khác nhau. Do n  O pn2 q ta suy ra
O pnq „ O pn2 q 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 f pnq và g pnq, ta nói rằng f pnq có thứ bậc
nhỏ hơn g pnq nếu O pf pnqq thực sự chứa trong O pg pnqq, nghĩa là O pf pnqq €
O pg pnqq.

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:
?
O p1q € 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 f pnq và g pnq không so sánh được nếu f pnq  O pg pnqq và
g pnq  O pf pnqq.
Bảng sau cho ta những thuật ngữ thường dùng cho độ phức tạp của một thuật
toá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ữ
O p1q Độ phức tạp hằng số
O plog nq Độ phức tạp lôgarít
O pn q Độ phức tạp tuyến tính
O pn q
2
Độ phức tạp bậc hai
O pn q
3
Độ phức tạp bậc ba
O pn m q Độ phức tạp đa thức
O pC q, C ¡ 1
n
Độ phức tạp hàm mũ
O pn!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
$
&d, nếu n ¤ 1,
T pn q  %aT p n q bn, nếu n ¡ 1.
c
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


$
p q '
&O n , nếu a   c,
T pnq  O pn log nq, nếu a  c,
'
%
O pnlog a1 q, c nếu a ¡ c.
Chứng minh: Do n là lũy thừa của c nên có số nguyên dương i sao cho n  ci .
Ta có
bn 
T pnq  aT p q bn  a a 2
n n
bn
c c c
 a2 cn2 abn c
bn
 abn
 a2 aT p cn3 q bn c2 c
bn
a2 bn abn
 a T p c3 q c 2
3 n
c
bn
 ...
1

 a T p ci q
i n
bn p ac qj .
j 0

Từ i  logc n ta được công thức


c n1
log¸
T pn q a Tp q p ac qj .
logc n n
bn
clogc n
j 0

Sử dụng những tính chất của lôgarit ta có


alogc n  pclog aqlog n  pclog nqlog a  nlog
c c c c c a
.
Do đó
c n1
log¸
T pn q  dn logc a
bn p ac qj .
j 0

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ó
c n1
log¸
p ac qj   c c a .
j 0

Do đó
T pn q   dnlog  O pn q,
a bcn
ca
c

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ó
c n1
log¸
T pn q  dn logc a
bn 1j  Opn log nq.
j 0

Trường hợp 3: Nếu a ¡ c ta có


c n1
log¸
p ac qlog n  1
T pn q  dn p c q  dn
logc a a j logc a
c
bn bn
j 0
a
c
1
 dnlog a
bn
n logc a1
 1  Opnlog a1q
.
1
c c
a
c

l
Từ định lí trên ta suy ra những trường hợp sau đây:

• Nếu T pnq  2T p n3 q dn thì T pnq  O pn q.


• Nếu T pnq  2T p n2 q dn thì T pnq  Opn log nq.
• Nếu T pnq  4T p n2 q dn thì T pnq  O pn 2 q.
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ả hai
mô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 chung
cho 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ả ba
tậ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ập
hợp.

II.4. Sau một cuộc phỏng vấn 270 sinh viên ở Đại học Thăng Long, người ta
nhận thấy có 78 sinh viên có một ổ USB 128MB, 54 sinh viên có một ổ USB
256MB, 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à USB
512MB. 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ông
chứ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ố 123
hoặ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ập
hợ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 theo
nguyê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 f p1q, f p2q, f p3q, f p4q, f p5q nếu f pnq được định nghĩa bằng
đệ qui với điều kiện đầu f p0q  3, và với n  0, 1, 2, . . . thì

a) f pn 1q  2f pnq.
b) f pn 1q  3f pnq 5.
c) f pn 1q  rf pnqs2  2f pnq  2.
d) f pn 1q  3f pnq{3 .

II.12. Hãy tìm f p1q, f p2q, f p3q, f p4q, f p5q nếu f pnq được định nghĩa bằng
đệ qui với điều kiện đầu f p0q  1, f p1q  2 và với n  1, 2, . . . thì

a) f pn 1q  f pnq 3f pn  1q.
b) f pn 1q  rf pnqs2 f pn  1q.
c) f pn 1q  3rf pnqs2  4rf pn  1qs2 .
f pn  1q
d) f pn 1q  .
f pn q

II.13. Hãy cho định nghĩa đệ qui của dãy tan u, n  1, 2, . . . nếu
a) an  6n. d) an  1 p1qn .
b) an  10n . e) an  npn 1q.
c) an  2n 1. 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 Sm pnq là tổng của số nguyên m và số nguyên không âm n. Hãy


đưa ra định nghĩa đệ qui của Sm pnq.

II.16. Cho fk là số Fibonacci thứ k. Với n nguyên dương, hãy chứng minh
những tính chất sau:

a) f12 f22 f32 ...  fn fn


fn2 1.

b) f1 f2 ... fn  fn 2  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) fn 1 fn1  fn2  p1qn.


e) f0 f1 f1 f2 ... f2n1 f2n  f2n
2
.
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ứng


minh những tính chất sau của hàm max và hàm min:

a) maxta1 , a2 , . . . , an u   minta1, a2, . . . , anu.


b) maxta1 b1 , a2 b2 , . . . , a n bn u ¤ maxta1 , a2 , . . . , an u
maxtb1 , b2 , . . . , bn u.
c) minta1 b1 , a2 b2 , . . . , an bn u ¥ minta1 , a2 , . . . , an u
mintb1 , b2 , . . . , bn u.

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ểu
diễ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ới
thứ 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ĩa
xâ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ễn
xâ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ều
hơ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 n2 an2 , a0  1, a1  2.

e) an  an1 an2 , a0  1, a1  2, a2  0.

II.24. Chỉ ra rằng những dãy tan u sau là nghiệm của hệ thức truy hồi an 
3an1 4an2:
a) an  0. c) an  p4qn.
b) an  1. d) an  2p4qn 3.

II.25. Hãy kiểm tra xem dãy tan u nào sau đây là nghiệm của hệ thức truy hồi
an  8an1  16an2 :

a) an  0. e) an  n4n.
b) an  1. f) an  24n 3n4n .
c) an  2n . g) an  p4qn .
d) an  4n . h) an  n2 4n .

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. e) an  n2 .
b) an  2n . f) an  n2 n.
c) an  2n 3. g) an  n p1qn .
d) an  5n . 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ới
nhữ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  13 an1 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àng
vớ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ối
nă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ăm
thứ 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ức
lương khởi điểm là 6000 đô-la một năm. Hàng năm anh ta nhận được thêm
500 đô-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ày
càng tăng. Tháng đầu chỉ sản xuất một chiếc, tháng thứ hai làm được hai chiếc
và 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ên
củ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 đầu
tiê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ây
chuyề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ững
quâ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ố 0
liê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ần
nhấ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. e) an  3.
b) an  2nan1 an2 . f) an  3an1 4an2 5an3 .
an1
c) an  an1 2. g) an  .
n
d) an  a2n1 an2 . 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.
an2
c) an  , với n ¥ 2, a0  1, a1  0.
4
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ệu
cầ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ằng
bao 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 tLn u, trong đó Ln là số tôm bị đánh bắt trong
nă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ền
có trong tài khoản trong năm trước đó.

a) Hãy tìm hệ thức truy hồi cho tPn u, trong đó Pn là tổng số tiền trong tài
khoả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 ra
lầ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ặp
thỏ con và từ hai tháng tuổi, mỗi tháng đẻ được 6 cặp thỏ con. Giả sử trong thời
gian 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 đảo
sau 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 vi
trùng mới và mỗi vi trùng chỉ sống được hai giờ. Đầu tiên quần thể có 100 vi
trù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 O pn 2 q.
b) rlog ns  O pnq.
c) 3ntlog nu  O pn2 q.

II.49. Những đẳng thức sau đây có đúng không:

a)
?n  Oplog nq.
?
b) n log n  O pnq.

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)  Oplog nq.
1
n
d) 3n2
?n  Opn2q.
3n
e) 2 n 1
 O p n q.

II.50. Giải hệ thức truy hồi với T p1q  1 và với mọi n là lũy thừa của 2
(n ¥ 2), 2T p q 6n  1.
n
2
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 p q n2  n.
n
2
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 được
nê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ụ. Trong
chươ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ối
chươ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ợp
có một sự tương tự nhau. Các kết quả của logic mệnh đề có thể được chuyển
thà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ếu
chú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ất
x 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ới
mọ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ới


mọ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ỗi
x P B và do vậy ta coi “¯” là phép toán một ngôi - phép toán lấy phần
bù, x̄ được gọi là phần bù của x).

A5. px y q z  x py z q và px.y q.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.z q  px y q.px z q và x.py zq  px.yq px.zq với mọi
x, 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ập
B 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 AN D, OR, N OT (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ập
thành một đại số boole.

Ví dụ 3.1.4 Họ các tập con của tập S cho trước với ba phép toán tập hợp X,
Y, phép lấy phần bù (tương ứng chính là các phép toán “.”, “ ”, “¯” trong
định nghĩa 3.1.1) và tập rỗng H, tập S (tương ứng với hai giá trị 0 và 1) cũng
lậ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ọi


0 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à Tính duy nhất của phần bù
a.x  x.a  0 thì a  x̄.
¯  x.
x̄ Luật phần bù kép
x 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.y q  x,
x.px y q  x.
Luật hấp thụ
x y  y x,
x.y  y.x.
Luật giao hoán
px y q z  x p y z q,
px.yq.z  x.py.zq. Luật kết hợp
x py.z q  px y q.px z q,
x.py z q  px.y q px.z q.
Luật phân phối
x y  x̄.ȳ,
x.y  x̄ ȳ.
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ập
dễ. 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ó a x x a  1 và a.x  x.a  0.


Ta có:
a  a.1 (Tính chất của 1)
 a.px x̄q (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̄.ȳq.px yq  x̄.ȳ.x x̄.ȳ.y (Luật phân phối)
 x̄.x.ȳ x̄.ȳ.y (Luật giao hoán)
 0.ȳ x̄.0 (Luật bài trung)
 0 (Tính chất của 0),

px̄.ȳq px yq
 px̄ px yqq.pȳ px yqq (Luật phân phối)
 ppx̄ xq yq.ppȳ yq xq (Luật giao hoán và kết hợp)
 p1 yq.p1 xq (Luật bài trung)
 1 (Tính chất của 1).
Vậy, theo tính duy nhất của phần bù, ta có x̄.ȳ  x y. Ta cũng chứng minh
x̄ ȳ  x.y bằng cách tương tự. 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 : B n Ñ B được gọi là hàm boole
n 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 cho
dướ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 boole
vớ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 , pE1 q, pE2 q cũng là các biểu
thứ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, z q  x.y z̄ có giá trị được cho trong bảng
sau:
x y z x.y z̄ F px, y, z q  x.y z̄
1 1 1 1 0 1
1 1 0 1 1 1
1 0 1 0 0 0
1 0 0 0 1 1
0 1 1 0 0 0
0 1 0 0 1 1
0 0 1 0 0 0
0 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 boole
khác nhau: F1 px, y, z q  x.y z̄, hoặc F2 px, y, z q  x.y.z x.y.z̄
x.ȳ.z̄ x̄.y.z̄ x̄.ȳ.z̄. . .
Định nghĩa 3.1.11 Hai hàm n biến F và G được gọi là bằng nhau nếu
F px1 , x2 , . . . , xn q  Gpx1 , x2 , . . . , xn q 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.ȳ.z̄ x̄.y.z̄ x̄.ȳ.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 , . . . , xn q  F px1 , x2 , . . . , xn q. Tổng boole F G và
tích boole F.G là các hàm thỏa mãn:
pF Gqpx1 , x2 , . . . , xn q  F px 1 , x 2 , . . . , x n q Gpx1 , x2 , . . . , xn q,

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ác
khả năng có thể có của giá trị các biến x1 , x2 , . . . , xn ). Hai hàm boole khác
nhau khi và chỉ khi chúng có hai cột giá trị khác nhau. Cột giá trị của một hàm
n
boole n biến có thể coi như một xâu nhị phân độ dài 2n . Vậy có tất cả 22 hàm
boole 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ẫu
củ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 boole
nhậ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 pȳ.zqq là biểu thức x
p1.pȳ 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ểu
thức boole là một hàm boole được biểu diễn bởi đối ngẫu của biểu thức boole
ban đầ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 được
biể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ủa
nó.

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 z qq  px y q. px z q.

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 đến
hà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ức
boole 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 trong
việ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àm
F px, y, z q, Gpx, y, z q được cho bởi bảng sau:

x y z F px, y, z q Gpx, y, z q
1 1 1 0 0
1 1 0 0 0
1 0 1 1 1
1 0 0 0 0
0 1 1 0 0
0 1 0 0 0
0 0 1 0 1
0 0 0 0 0

Lời giải: Xét hàm F px, y, z q. 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, z q. Ta lấy tích boole của x, ȳ, z. Tích này, nhận giá
trị 1 khi và chỉ khi x  ȳ  z  1. Vậy có thể lấy x.ȳ.z để biểu diễn hàm
F px, y, z q.
Đối với hàm Gpx, y, z q, 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ị 1
nữ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ác
tích boole: x.ȳ.z và x̄.ȳ.z rồi lấy tổng boole của chúng. Dễ kiểm tra lại rằng
x.ȳ.z x̄.ȳ.z là một biểu thức boole biểu diễn hàm boole Gpx, y, z q. 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ương
tự như trên. Phương pháp này dẫn chúng ta tới một số khái niệm được định
nghĩ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  x̄i 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ích
boole 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ác
biến của nó. Cụ thể, hội sơ cấp y1 .y2 . . . . .yn  1 khi và chỉ khi yi  1
vớ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  x̄i . Ngược lại, với một bộ giá trị cho trước của các biến boole
x1 , 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  x̄i 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 n
biế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ểu
diễ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àm
boole đã cho.

Ví dụ 3.2.3 Tìm khai triển tổng các tích của hàm F px, y, z q  px y q.z̄.

Lời giải: Bước đầu tiên là lập bảng giá trị của hàm F px, y, z q:

x y z F px, y, z q
1 1 1 0
1 1 0 1
1 0 1 0
1 0 0 1
0 1 1 0
0 1 0 1
0 0 1 0
0 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àm
F px, y, z q nhận giá trị 1. Đó là các hội sơ cấp x.y.z̄, x.ȳ.z̄ và x̄.y.z̄. Vậy ta
có F px, y, z q  x.y.z̄ x.ȳ.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àm
boole 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ổng
boole những hội sơ cấp. Điều này chứng tỏ rằng mỗi hàm boole đều có thể được
biể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., , ¯u
là 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ậy
t , ¯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 N AN D hay “|” (x|y  x.y) và phép toán N OR 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ằng
cá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ào
và 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ập
t0, 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 đại
số 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ột
loạ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 đầu
và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ạch
như 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 trong
hì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 hai
giá trị của hai tín hiệu đầu vào lần lượt là x và y thì tín hiệu đầu ra là
x̄.y x.ȳ.
• Cổng NOR: thực hiện phép toán N OR hay “Ó”. Nếu hai giá 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.
• Cổng NAND: thực hiện phép toán N AN D hay “|”. Nếu hai giá 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.

Tuy là sáu loại cổng khác nhau nhưng thực ra ba loại cổng XOR, N AN D,
N OR 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 AN D.

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 AN D. 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ặc
nhiề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.y q px̄.yq.
b) px y z q.x̄.ȳ.z̄.

Hình 3.2: Tổ hợp các cổng được mạch nhận đầu vào là x, y, cho đầu ra là px.y q 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à px y z q.x̄.ȳ.z̄.

Lời giải:

a) Mạch được thiết kế theo yêu cầu được minh họa trong hình 3.2.
b) Mạch được thiết kế theo yêu cầu được minh họa trong hình 3.3.

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ột
tổ 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 hai
phiế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  0
nế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ế sao
cho 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ác
biế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ác
cổ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ôn
có 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ực
hiệ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ơn
mứ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ội
sơ 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 áp
dụ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ặc
x  z  1, y  0. Khai triển tổng các tích của mạch này là x.y.z x.ȳ.z.
Hai hội sơ cấp trong tổng này chỉ khác nhau ở tín hiệu thứ hai (y và ȳ). Chúng
có thể được tổ hợp lại như sau:
x.y.z x.ȳ.z  py ȳq.x.z
 1.x.z
 x.z.
Do vậy, x.z là biểu thức với ít phép toán hơn biểu diễn mạch đã cho. Hai thể
hiện khác nhau của cùng mạch đó được cho trên hình 3.5.
Ví dụ trên chứng tỏ rằng sự tổ hợp các hội sơ cấp trong khai triển tổng các
tí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 đích
củ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ác
tí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óa
cá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ột
cá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ểu
hó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 f px, y q  x̄.y x.y x.ȳ.

Lời giải: Ta có

f px, y q  x̄.y x.y x.y x.ȳ


 px̄ xq.y x.py ȳ q
 1.y x.1
 x y.
l

Ví dụ 3.4.2 Tối tiểu hóa hàm boole f px, y q  x.ȳ x̄.ȳ x̄.y.

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


3.4. Cực tiểu hóa các mạch

Lời giải: Ta có:

f px, y q  x.ȳ x̄.ȳ x̄.y


 px.ȳ x̄.ȳq px̄.ȳ x̄.y q
 ppx x̄q.ȳq px̄.pȳ y qq
 1.ȳ x̄.1
 ȳ x̄.
Dạng tối tiểu của f px, y q là ȳ 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ễn
mộ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ành
phần tổ hợp được đối với các hàm boole có số biến tương đối nhỏ. Các bảng
Karnaugh cho chúng ta một phương pháp trực quan để rút gọn các khai triển
tổ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ông
việ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ủa
hàm được đánh số 1:
y ȳ
x x.y x.ȳ
x̄ x̄.y x̄.ȳ

Các ô vuông được gọi là kề nhau nếu các hội sơ cấp trong các ô đó chỉ khác
nhau 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ội
sơ 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ứa
số 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 f px, y q  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 f px, y q  x.y x̄.y là:

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


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

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ó f px, y q  y. l
Ví dụ 3.4.4 Cho f px, y q  x.ȳ x̄.y x̄.ȳ. Hãy dùng bảng Karnaugh để
tối tiểu hóa hàm boole trên.
Lời giải: Bảng Karnaugh của hàm f px, y q  x.ȳ x̄.y x̄.ȳ là:
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 ȳ,
theo chiều ngang được x̄), ta có f px, y q  x̄ ȳ. 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ấp
tương ứng không thể tổ hợp lại với nhau được và do vậy kết quả tối tiểu hóa
đành phải giữ nguyên cả hai hội sơ cấp. Ví dụ chẳng hạn x̄.y x.ȳ không thể
tổ hợp cho ta kết quả gọn hơn.

Bảng Karnaugh để tối tiểu hóa hàm boole ba biế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̄ ȳ.z̄ ȳ.z
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 cho
các khối gồm một số chẵn các ô kề nhau trong bảng Karnaugh dành cho hàm
boole ba biến (chú ý rằng bảng Karnaugh hoán vị vòng tròn tức là cột đầu của
bảng cũng có thể coi là cột kế tiếp của cột cuối cùng) mà ta cần nhận dạng để tổ
hợp:
y.z y.z̄ ȳ.z̄ ȳ.z
x 1
x̄ 1
ȳ.z̄  x.ȳ.z̄ x̄.ȳ.z̄.

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


3.4. Cực tiểu hóa các mạch

y.z y.z̄ ȳ.z̄ ȳ.z


x
x̄ 1 1
x̄.z  x̄.y.z x̄.ȳ.z.

y.z y.z̄ ȳ.z̄ ȳ.z


x 1 1
x̄ 1 1
z̄  x.y.z̄ x.ȳ.z̄ x̄.y.z̄ x̄.ȳ.z̄.

y.z y.z̄ ȳ.z̄ ȳ.z


x
x̄ 1 1 1 1
x̄  x̄.y.z x̄.y.z̄ x̄.ȳ.z̄ x̄.ȳ.z.

y.z y.z̄ ȳ.z̄ ȳ.z


x 1 1 1 1
x̄ 1 1 1 1

1  x.y.z x.y.z̄ x.ȳ.z̄ x.ȳ.z x̄.y.z x̄.y.z̄ x̄.ȳ.z̄ x̄.ȳ.z.

Mục tiêu của chúng ta là phải nhận dạng các khối (gồm một số chẵn các ô
chứa số 1 có chung biên giới với nhau có dạng trong các bảng nêu trên) có
thể lớn nhất trong bảng Karnaugh và phủ tất cả các ô chứa số 1 bằng một
số 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ải
chỉ có một cách để làm được điều này.

Ví dụ 3.4.5 Cho f px, y, z q  x.y.z̄ x.ȳ.z̄ x̄.y.z x̄.ȳ.z̄. Hãy tối tiểu
hóa hàm boole trên bằng bảng Karnaugh.

Lời giải: Bảng Karnaugh của hàm đã cho:

y.z y.z̄ ȳ.z̄ ȳ.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 ȳ.z̄. Vậy khai triển tối
tiểu hóa của hàm boole f px, y, z q là x.z̄ ȳ.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 f px, y, z q  x.ȳ.z x.ȳ.z̄ x̄.y.z x̄.ȳ.z x̄.ȳ.z̄. Hãy


tối tiểu hóa hàm boole trên bằng bảng Karnaugh.

Lời giải: Bảng Karnaugh của hàm đã cho:

y.z y.z̄ ȳ.z̄ ȳ.z


x 1 1
x̄ 1 1 1

Tổ hợp khối bốn ô mang giá trị 1 liền nhau ta được ȳ. Tổ hợp hai ô mang giá trị
1 kề nhau trên hàng ngang thứ hai (bảng Karnaugh hoán vị vòng tròn) ta được
x̄.ȳ.z x̄.y.z  x̄.z. Vậy khai triển tối tiểu hóa của hàm boole f px, y, z q
là x̄.z ȳ. l
Ví dụ 3.4.7 Cho f px, y, z q  x.y.z x.y.z̄ x.ȳ.z x.ȳ.z̄ x̄.y.z
x̄.ȳ.z x̄.ȳ.z̄. Hãy tối tiểu hóa hàm boole trên bằng bảng Karnaugh.

Lời giải: Bảng Karnaugh của hàm đã cho:

y.z y.z̄ ȳ.z̄ ȳ.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 ȳ. Tổ hợp bốn ô mang
giá 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 được
z. 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ển
tối tiểu hóa của hàm boole f px, y, z q là x ȳ 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, ta
cũng xây dựng được bảng Karnaugh cho hàm boole bốn biến. Đó là một hình
vuông được chia thành 16 ô. Các ô này biểu diễn 16 hội sơ cấp có thể:

y.z y.z̄ ȳ.z̄ ȳ.z


w.x w.x.y.z w.x.y.z̄ w.x.ȳ.z̄ w.x.ȳ.z
w.x̄ w.x̄.y.z w.x̄.y.z̄ w.x̄.ȳ.z̄ w.x̄.ȳ.z
w̄.x̄ w̄.x̄.y.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z̄ w̄.x̄.ȳ.z
w̄.x w̄.x.y.z w̄.x.y.z̄ w̄.x.ȳ.z̄ w̄.x.ȳ.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ác
khối trong một số trường hợp sau:

y.z y.z̄ ȳ.z̄ ȳ.z


w.x
w.x̄ 1 1
w̄.x̄
w̄.x
w.x̄.z  w.x̄.y.z w.x̄.ȳ.z.

y.z y.z̄ ȳ.z̄ ȳ.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̄.ȳ.z̄ w̄.x̄.ȳ.z.

y.z y.z̄ ȳ.z̄ ȳ.z


w.x 1 1
w.x̄
w̄.x̄
w̄.x 1 1
x.z  w.x.y.z w.x.ȳ.z w̄.x.y.z w̄.x.ȳ.z.

y.z y.z̄ ȳ.z̄ ȳ.z


w.x 1 1
w.x̄ 1 1
w̄.x̄ 1 1
w̄.x 1 1

z̄  w.x.y.z̄ w.x.ȳ.z̄ w.x̄.y.z̄ w.x̄.ȳ.z̄


w̄.x̄.y.z̄ w̄.x̄.ȳ.z̄ w̄.x.y.z̄ w̄.x.ȳ.z̄.

Mục tiêu mà chúng ta cần phải nhận dạng cũng giống như trường hợp hai, ba
biế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.ȳ.z̄ w.x̄.y.z w.x̄.ȳ.z w.x̄.ȳ.z̄


w̄.x.ȳ.z w̄.x̄.y.z w̄.x̄.y.z̄.

b) w.x.ȳ.z̄ w.x̄.y.z w.x̄.y.z̄ w.x̄.ȳ.z̄ w̄.x.ȳ.z̄ w̄.x̄.y.z̄


w̄.x̄.ȳ.z̄.

c) w.x.y.z̄ w.x.ȳ.z̄ w.x̄.y.z w.x̄.y.z̄ w.x̄.ȳ.z̄ w̄.x.y.z


w̄.x.y.z̄ w̄.x.ȳ.z̄ w̄.x.ȳ.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z̄.

Lời giải:

a) Bảng Karnaugh:

y.z y.z̄ ȳ.z̄ ȳ.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ột
một và dòng hai, cột một ta được w.y.z; tổ hợp hai ô ở dòng một, cột hai
và dòng một, cột ba được w.x.z̄; tổ hợp hai ô ở dòng hai, cột ba và dòng
hai, cột bốn được w.x̄.ȳ; tổ hợp hai ô ở dòng ba, cột một và dòng ba, cột
hai được w̄.x̄.y; cuối cùng là ô ở dòng bốn, cột bốn w̄.x.ȳ.z. Vậy tối
tiểu thu được là: w.y.z w.x.z̄ w.x̄.ȳ w̄.x̄.y w̄.x.ȳ.z.

b) Bảng Karnaugh:

y.z y.z̄ ȳ.z̄ ȳ.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 ȳ.z̄. Vậy tối tiểu thu được là:
w.x̄.y x̄.y.z̄ ȳ.z̄.

c) Bảng Karnaugh:

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


3.4. Cực tiểu hóa các mạch

y.z y.z̄ ȳ.z̄ ȳ.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ột
mộ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.

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ức
tố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ác
bả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ùng
bả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ấp
cầ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ểu
dạ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 boole
với số biến bất kì. Phương pháp này được W.V.Quine và E.J.McCluskey con
phát triển vào những năm 1950. Về cơ bản, phương pháp Quine - McCluskey
có 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ển
tố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ểu
tương đương với:

x.y.z x.ȳ.z x̄.y.z x̄.ȳ.z x̄.ȳ.z̄.

Lời giải: Biểu diễn các hội sơ cấp trong khai triển trên bằng những xâu bit độ
dài ba. Giả sử rằng các hội sơ cấp đã cho được viết dưới dạng tích các tín hiệu
xuấ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ứ hai
trong hội sơ cấp là y và bằng 0 nếu tín hiệu thứ hai là ȳ. Tương tự, bit thứ ba
bằ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 bit
tương ứng:

Hội sơ cấp Xâu bit Số các bit 1


x.y.z 111 3
x.ȳ.z 101 2
x̄.y.z 011 2
x̄.ȳ.z 001 1
x̄.ȳ.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ạo
những tích boole mới (tương đương). Do vậy, hai tích boole có thể được tổ hợp
nế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 boole
mớ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âu
có dấu gạch ngang nằm vào vị trí tín hiệu thiếu. Chẳng hạn x.ȳ.z và x̄.ȳ.z
được biểu diễn bằng các xâu bit 101 và 001 có thể được tổ hợp lại thành ȳ.z
được biểu diễn bằng xâu 01. Cứ tổ hợp như vậy cho đến khi không còn làm
được nữa, ta có bảng các bước tiến hành như sau:

Bước 1 Bước 2
Tích Tích Tích
1: x.y.z (111) p1, 2q: x.z (1  1) p1, 2, 3, 4q: z (  1)
2: x.ȳ.z (101) p1, 3q: y.z (11)
3: x̄.y.z (011) p2, 4q: ȳ.z (01)
4: x̄.ȳ.z (001) p3, 4q: x̄.z (0  1)
5: x̄.ȳ.z̄ (000) p4, 5q: x̄.ȳ (00)
Trong bảng trên ta cũng chỉ ra những tích đã được dùng để tạo ra những tích
có 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àm
boole. Chúng ta sẽ xem xét tất cả các tích còn lại sau cùng (chưa được sử dụng
để tổ hợp). Trong ví dụ này, những tích như thế là z và x̄.ȳ. Chúng ta sẽ lập
bả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ần
phả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ấp
ban đầ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.ȳ.z x̄.y.z x̄.ȳ.z x̄.ȳ.z̄


z    
x̄.ȳ  
Từ bảng trên ta thấy cả z và x̄.ȳ đều là cần thiết. Vậy kết quả cuối cùng là
z x̄.ȳ. 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ệc
tổ 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ấy
tổng boole những tích có thể tổ hợp. Những tích có thể tổ hợp là những
tích được biểu diễn bằng những xâu bit chỉ khác nhau đúng một vị trí. Biểu
diễ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ích
và dấu gạch ngang nếu không có tín hiệu nào liên quan đến xi xuất hiện
trong 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ành
bằ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ểu
diễn chúng có dấu gạch ngang ở cùng vị trí và khác nhau chỉ ở đúng một
vị 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ày
khô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 boole
vớ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ước
trước sao cho tổng các tích này biểu diễn hàm boole đã cho ban đầu. Điều
nà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 (trong
lậ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ển
chuẩn tắc sau:
w.x.y.z̄ w.x̄.y.z w.x̄.y.z̄ w̄.x.y.z w̄.x.ȳ.z w̄.x̄.y.z w̄.x̄.ȳ.z.

Lời giải: Biểu diễn các hội sơ cấp bằng các xâu bit, ta có bảng sau:
Tích Xâu bit Số các bit 1
w.x.y.z̄ 1110 3
w.x̄.y.z 1011 3
w̄.x.y.z 0111 3
w.x̄.y.z̄ 1010 2
w̄.x.ȳ.z 0101 2
w̄.x̄.y.z 0011 2
w̄.x̄.ȳ.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 2
Tí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.ȳ.z (0101) p3, 6q: w̄.y.z (0  11)
6: w̄.x̄.y.z (0011) p5, 7q: w̄.ȳ.z (0  01)
7: w̄.x̄.ȳ.z (0001) p6, 7q: w̄.x̄.z (00  1)
Tập các tích boole không được dùng tiếp để tạo ra tích có ít tín hiệu hơn là:
w̄.z, w.y.z̄, w.x̄.y, x̄.y.z. Ta lại lập bảng sau để xét xem các hội sơ cấp ban
đầu bị phủ bởi tập các tích nào trong số những tích trên:
w.x.y.z̄ w.x̄.y.z w̄.x.y.z w.x̄.y.z̄ w̄.x.ȳ.z w̄.x̄.y.z w̄.x̄.ȳ.z
w̄.z    
w.y.z̄  
w.x̄.y  
x̄.y.z  
Từ bảng trên ta thấy bắt buộc phải có ít nhất hai tích w̄.z và w.y.z̄ vì các tích
nà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ết
quả 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̄. c) 0̄.0.
b) 1 1̄. 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. c) x.1  x.
b) x x  0. 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, z q  x.y x.z y.z có giá trị 1 nếu và chỉ
nếu ít nhất hai trong số các biến x, y, z có giá trị 1.

III.6. Chứng minh rằng x.ȳ y.z̄ x̄.z  x̄.y ȳ.z x.z̄ với x, y, z là
các biến boole.

III.7. Tìm đối ngẫu của những biểu thức sau:

a) x y. c) x.y.z x̄.ȳ.z̄.
b) x̄.ȳ. 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ến
x1 , x2 , . . . , xn . Chứng minh rằng:
F d px1 , x2 , . . . , xn q  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ác
biểu thức boole n 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à G
tương ứng.

III.10. Có bao nhiêu hàm boole F px, y, z q khác nhau sao cho F px̄, ȳ, z̄ q 
F px, y, z q đố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, z q khác nhau sao cho F px̄, y, z q 
F px, ȳ, z q  F px, y, z̄ q đố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ó đúng
mộ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ần
tử 1 và ngược lại.

III.14. Tìm tích boole của x hoặc x̄, y hoặc ȳ, z hoặc z̄, biết rằng tích đó có
giá trị 1 nếu và chỉ nếu:

a) x  y  0, z  1. c) x  0, y  z  1.
b) x  0, y  1, z  0. 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, y q  x̄ y. e) F px, y, z q x y z.
b) F px, y q  x.ȳ.
f) F px, y, z q  px z q.y.
c) F px, y q  1.
d) F px, y q  ȳ. g) F px, y, z q  x.ȳ.

III.16. Tìm dạng tuyển chuẩn tắc của hàm boole F px, y, z q biết rằng F 1
nếu và chỉ nếu:

a) x  0. c) x y 0.
b) 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, w q biết rằng
F  1 nếu và chỉ nếu một số lẻ những giá trị trong những giá trị x, y, z, w
bằng 1.

III.18. Tìm dạng tuyển chuẩn tắc của hàm boole F px1 , x2 , x3 , x4 , x5 q biết
rằ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 ȳ, 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ặc
x  y  z  0.

III.21. Chứng minh rằng tổng y1 y2 . . . yn trong đó yi  xi hoặc


yi  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à khi
xi  0 nếu yi  xi và xi  1 nếu yi  xi . Tổng boole này được gọi là một
tuyể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ạng
tí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ác
tổ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, y q  x̄ y. e) F px, y, z q x y z.
b) F px, y q  x.ȳ.
f) F px, y, z q  px z q.y.
c) F px, y q  1.
d) F px, y q  ȳ. g) F px, y, z q  x.ȳ.
III.24. Biểu diễn các hàm boole sau bằng cách chỉ dùng toán tử tích boole và
toán tử lấy phần bù:

a) x y z. c) x ȳ.
b) x ȳ.px̄ z q. d) x̄.px ȳ z̄ q.

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. c) x ȳ.
b) x ȳ.px̄ z q. d) x̄.px ȳ z̄ q.

III.26. Chứng minh rằng:

a) x̄ x|x.
b) x.y  px|y q|px|y q.

c) x y  px|xq|py |y q.

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 Ó y q.
c) x y  px Ó y q Ó px Ó y q.

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. c) x ȳ.
b) x ȳ.px̄ z q. d) x̄.px ȳ z̄ q.

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. c) x ȳ.
b) x ȳ.px̄ z q. d) x̄.px ȳ z̄ q.

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 AN D 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. c) x.y.z x̄.ȳ.z̄.
b) px y q.x. d) px̄ z q. py z̄ q.

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ành
viên.

III.39. Hãy dùng các cổng N AN D xây dựng các mạch với các đầu ra như
sau:

a) x̄. c) x.y.
b) x y. d) x ` y.

III.40. Hãy dùng các cổng N OR xây dựng các mạch với các đầu ra như sau:

a) x̄. c) x.y.
b) x y. d) x ` y.

III.41. Vẽ bảng Karnaugh đối với một hàm hai biến và ghi số 1 vào ô biểu diễn
x̄.y. Các hội sơ cấp nào được biểu diễn bởi các ô kề với ô nói trên?

III.42. Tìm khai triển dạng tuyển chuẩn tắc được biểu diễn bởi các bảng
Karnaugh sau:

y ȳ y ȳ
a) x 1 c) x 1 1
x̄ 1 1 x̄ 1 1
y ȳ
b) 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 sau
và tìm khai triển tối tiểu của chúng:

a) x.ȳ. d) x̄.y x̄.ȳ.


b) x.y x̄.ȳ.
c) x.y x.ȳ x̄.y x̄.ȳ. e) x.y x.ȳ.

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


3.4. Cực tiểu hóa các mạ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ễn
x̄.y.z̄. Các hội sơ cấp nào được biểu diễn bởi các ô kề với ô nói trên?

III.45. Dùng bảng Karnaugh tìm khai triển tối tiểu của các biểu thức boole sau:

a) x.y.z x̄.y.z.
b) x.y.z̄ x.ȳ.z̄ x̄.y.z̄ x̄.ȳ.z̄.
c) x̄.y.z.rpx z̄ q pȳ z̄ qs.

III.46. Vẽ các bảng Karnaugh của những khai triển tổng các tích boole ba biến
sau:

a) x.ȳ.z̄.
b) x̄.y.z x̄.ȳ.z̄.
c) x.y.z x.y.z̄ x̄.y.z̄ x̄.ȳ.z.

III.47. Dùng bảng Karnaugh tìm khai triển tối tiểu của các hàm boole ba biến
sau:

a) x̄.y.z x̄.ȳ.z.
b) x.y.z x.y.z̄ x̄.y.z x̄.y.z̄.
c) x.y.z̄ x.ȳ.z x.ȳ.z̄ x̄.y.z x̄.ȳ.z.
d) x.y.z x.ȳ.z x.ȳ.z̄ x̄.y.z x̄.y.z̄ x̄.ȳ.z̄.

III.48. Vẽ bảng Karnaugh đối với một hàm bốn biến và ghi số 1 vào ô biểu
diễ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ến
sau:

a) w.x.y.z w.x.ȳ.z w.x.ȳ.z̄ w.x̄.y.z̄ w.x̄.ȳ.z.


b) w.x.y.z̄ w.x.ȳ.z w.x̄.y.z w̄.x.ȳ.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z.
c) w.x.y.z w.x.y.z̄ w.x.ȳ.z w.x̄.ȳ.z w.x̄.ȳ.z̄ w̄.x.ȳ.z
w̄.x̄.y.z̄ w̄.x̄.ȳ.z.
d) w.x.y.z w.x.y.z̄ w.x.ȳ.z w.x̄.y.z w.x̄.y.z̄ w̄.x.y.z
w̄.x̄.y.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z.

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 đa
số 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ác
hàm boole ba biến sau:

a) x̄.y.z x̄.ȳ.z.

b) x.y.z x.y.z̄ x̄.y.z x̄.y.z̄.

c) x.y.z̄ x.ȳ.z x.ȳ.z̄ x̄.y.z x̄.ȳ.z.

d) x.y.z x.ȳ.z x.ȳ.z̄ x̄.y.z x̄.y.z̄ x̄.ȳ.z̄.

III.52. Dùng phương pháp Quine - McCluskey tìm khai triển tối tiểu của các
hàm boole bốn biến sau:

a) w.x.y.z w.x.y.z̄ w.x.ȳ.z̄ w.x̄.y.z w.x̄.ȳ.z w.x̄.ȳ.z̄


w̄.x.ȳ.z w̄.x̄.y.z w̄.x̄.y.z̄.

b) w.x.ȳ.z̄ w.x̄.y.z w.x̄.y.z̄ w.x̄.ȳ.z̄ w̄.x.ȳ.z̄ w̄.x̄.y.z̄


w̄.x̄.ȳ.z̄.

c) w.x.y.z̄ w.x.ȳ.z̄ w.x̄.y.z w.x̄.y.z̄ w.x̄.ȳ.z̄ w̄.x.y.z


w̄.x.y.z̄ w̄.x.ȳ.z̄ w̄.x.ȳ.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z̄.

III.53. Dùng phương pháp Quine - McCluskey tìm khai triển tối tiểu của các
hàm boole bốn biến sau:

a) w.x.y.z w.x.ȳ.z w.x.ȳ.z̄ w.x̄.y.z̄ w.x̄.ȳ.z.

b) w.x.y.z̄ w.x.ȳ.z w.x̄.y.z w̄.x.ȳ.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z.

c) w.x.y.z w.x.y.z̄ w.x.ȳ.z w.x̄.ȳ.z w.x̄.ȳ.z̄ w̄.x.ȳ.z


w̄.x̄.y.z̄ w̄.x̄.ȳ.z.

d) w.x.y.z w.x.y.z̄ w.x.ȳ.z w.x̄.y.z w.x̄.y.z̄ w̄.x.y.z


w̄.x̄.y.z w̄.x̄.y.z̄ w̄.x̄.ȳ.z.

III.54. Hãy giải thích làm thế nào có thể dùng các bản đồ Karnaugh để rút gọn
khai triển tích boole các tổng boole ba biến. (Gợi ý: Đánh dấu các ô tương ứng
vớ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ổng
px y zq.px y z̄q.px ȳ zq.px ȳ z̄q.px̄ y zq.
III.56. Dùng các cổng OR, AN D và các bộ đảo để dựng một mạch cho đầu
ra 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 0
trong 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ọc
và 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ốc
Gia 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ốc
Gia 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ên
nghiệ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ều kiện đầu . . . . . . . . . . . . . . . . . . . . 74


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

145
Chỉ mục

cấu hình tổ hợp . . . . . . . . . . . . . . . . . . . 6 hai biểu thức boole tương đương với
cổng AND . . . . . . . . . . . . . . . . . . . . . 121 nhau . . . . . . . . . . . . . . . . . . . . 116
cổng logic . . . . . . . . . . . . . . . . . . . . . . 120 hai hàm boole bằng nhau . . . . . . . . 116
cổng NAND . . . . . . . . . . . . . . . . . . . . 121
cổng NOR . . . . . . . . . . . . . . . . . . . . . 121 K
cổng OR . . . . . . . . . . . . . . . . . . . . . . . 121 không chia hết cho . . . . . . . . . . . . . . . 13
cổng XOR . . . . . . . . . . . . . . . . . . . . . 121 khai triển
cực tiểu hóa các mạch . . . . . . . . . . . 123 bát phân . . . . . . . . . . . . . . . . . . . . . 37
chia hết . . . . . . . . . . . . . . . . . . . . . . . . . 13 Cantor . . . . . . . . . . . . . . . . . . . . . . . 11
chia hết cho . . . . . . . . . . . . . . . . . . . . . 13 nhị phân . . . . . . . . . . . . . . . . . . . . . 37
chia hết cho đa thức . . . . . . . . . . . . . . 51 thập lục phân . . . . . . . . . . . . . . . . . 37
theo hệ cơ số . . . . . . . . . . . . . . . . . 36
D khai triển tổng các tích . . . . . . . . . . 118
dãy số Fibonacci . . . . . . . . . . . . . . . . . 70 khai triển thành tích các đa thức bất khả
dạng hội chuẩn tắc . . . . . . . . . . . . . . 119 qui . . . . . . . . . . . . . . . . . . . . . . . 51
dạng khai triển tích các tổng . . . . . 119
dạng khai triển tổng các tích . . . . . 119 L
dạng tuyển chuẩn tắc . . . . . . . . . . . . 119 lớp các số nguyên đồng dư theo modulo
m . . . . . . . . . . . . . . . . . . . . . . . . 33
G lời giải của hệ thức truy hồi . . . . . . . 74
giải hệ thức truy hồi . . . . . . . . . . . . . . 79 liệt kê hoán vị . . . . . . . . . . . . . . . . . . . . . 7
liệt kê tập con . . . . . . . . . . . . . . . . . . . . 10
H liệt kê tổ hợp . . . . . . . . . . . . . . . . . . . . 10
hàm đối ngẫu của một hàm boole . 117 liệt kê xâu nhị phân . . . . . . . . . . . . . . . . 9
hàm băm . . . . . . . . . . . . . . . . . . . . . . . . 39 luật đồng nhất . . . . . . . . . . . . . . . . . . 114
hàm boole n biến . . . . . . . . . . . . . . . 115 luật bài trung . . . . . . . . . . . . . . . . . . . 114
hàm boole được cho dưới dạng bảng luật De Morgan . . . . . . . . . . . . . . . . . 114
116 luật giao hoán . . . . . . . . . . . . . . 113, 114
hàm boole được cho dưới dạng biểu luật hấp thụ. . . . . . . . . . . . . . . . . . . . .114
thức boole . . . . . . . . . . . . . . . 116 luật kết hợp . . . . . . . . . . . . . . . . 113, 114
hằng đẳng thức boole . . . . . . . . . . . . 113 luật lũy đẳng . . . . . . . . . . . . . . . . . . . 114
hệ đầy đủ . . . . . . . . . . . . . . . . . . . . . . 120 luật nuốt . . . . . . . . . . . . . . . . . . . . . . . 114
hệ mã mật Caesar . . . . . . . . . . . . . . . . 41 luật phân phối . . . . . . . . . . . . . . 113, 114
hệ thức truy hồi . . . . . . . . . . . . . . . . . . 74 luật phần bù kép . . . . . . . . . . . . . . . . 114
hệ thức truy hồi tuyến tính không thuần
nhất hệ số hằng . . . . . . . . . . . . 89 M
hệ thức truy hồi tuyến tính thuần nhất mô hình hóa bằng hệ thức truy hồi . 75
hệ số hằng số . . . . . . . . . . . . . . 79 mạch bỏ phiếu theo đa số . . . . . . . . 122
hội sơ cấp n biến . . . . . . . . . . . . . . . 119 mạch logic . . . . . . . . . . . . . . . . . . . . . 120
hợp số . . . . . . . . . . . . . . . . . . . . . . . . . . 16 mạch tổ hợp . . . . . . . . . . . . . . . . . . . . 120

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


Chỉ mục

N tính chất của đồng dư thức . . . . . . . . 30


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


tính đúng đắn . . . . . . . . . . . . . . . . . . 4 trường . . . . . . . . . . . . . . . . . . . . . . . . . . 44
tính dừng . . . . . . . . . . . . . . . . . . . . . . 3 trường các số nguyên modulo p . . . 47
tính phổ dụng . . . . . . . . . . . . . . . . . . 4 trường hữu hạn . . . . . . . . . . . . . . . . . . 48
tính xác định . . . . . . . . . . . . . . . . . . 4 trường số hữu tỉ Q . . . . . . . . . . . . . . . 45
thuật toán tìm kiếm . . . . . . . . . . . . . 4 trường số thực R . . . . . . . . . . . . . . . . 45
thuật toán chia . . . . . . . . . . . . . . . . . . . 14

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

You might also like