You are on page 1of 65

TOÁN RỜI RẠC

Biên soạn: Nguyễn Minh Trí

Ngày 16 tháng 2 năm 2011


Bài giảng TOÁN RỜI RẠC

Nguyễn Minh Trí 2


Mục lục

1 Cơ sở logic 5
1.1 Mệnh đề và các phép toán mệnh đề . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Mệnh đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Các phép toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Dạng mệnh đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Dạng mệnh đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Giá trị chân lí của dạng mệnh đề . . . . . . . . . . . . . . . . . 8
1.3 Qui tắc suy diễn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Vị từ và lượng từ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1 Vị từ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.2 Các phép toán trên vị từ . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Lượng từ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.4 Phủ định mệnh đề lượng từ hóa . . . . . . . . . . . . . . . . . . 15
1.5 Nguyên lí qui nạp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Phương pháp đếm 19


2.1 Tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Một số khái niệm . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Các phép toán trên tập hợp . . . . . . . . . . . . . . . . . . . . 19
2.2 Ánh xạ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Định nghĩa ánh xạ . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Ảnh và tạo ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 Đơn ánh - Toàn ánh - Song ánh . . . . . . . . . . . . . . . . . . 20
2.2.4 Tích các ánh xạ. Ánh xạ ngược . . . . . . . . . . . . . . . . . . 21
2.2.5 Lực lượng của tập hợp . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Giải tích tổ hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Nguyên lí cộng . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.2 Nguyên lí nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.3 Nguyên lí bù trừ . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.4 Giải tích tổ hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Nguyên lí Dirichlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Hệ thức đệ qui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.1 Khái niệm và các ví dụ . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.2 Nghiệm tổng quát và nghiệm riêng . . . . . . . . . . . . . . . . 26
2.5.3 Hệ thức đệ qui tuyến tính thuần nhất . . . . . . . . . . . . . . . 27
2.5.4 Hệ thức đệ qui tuyến tính không thuần nhất . . . . . . . . . . 28

3
Bài giảng TOÁN RỜI RẠC

3 Quan hệ 35
3.1 Quan hệ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.1 Định nghĩa quan hệ . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2 Các tính chất của quan hệ . . . . . . . . . . . . . . . . . . . . . 36
3.1.3 Biểu diễn quan hệ . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Quan hệ tương đương . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Quan hệ thứ tự . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Đại số Bool và hàm Bool 43


4.1 Đại số Bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.1 Định nghĩa và các ví dụ . . . . . . . . . . . . . . . . . . . . . . 43
4.1.2 Các định lí cơ bản . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Hàm Bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 Hàm Bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.2 Các phép toán trên hàm Bool . . . . . . . . . . . . . . . . . . . 46
4.2.3 Biểu diễn các hàm Bool . . . . . . . . . . . . . . . . . . . . . . 47
4.2.4 Dạng nối rời chính tắc . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.5 Tính đầy đủ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Mạng các cổng và công thức đa thức tổi tiểu . . . . . . . . . . . . . . . 50
4.3.1 Các cổng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2 Công thức đa thức tối tiểu . . . . . . . . . . . . . . . . . . . . . 53
4.4 Phương pháp Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1 Biểu đồ karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.2 Phương pháp tìm đa thức tối tiểu . . . . . . . . . . . . . . . . . 57

Nguyễn Minh Trí 4


Chương 1

Cơ sở logic

1.1 Mệnh đề và các phép toán mệnh đề


1.1.1 Mệnh đề
Trong toán học, ta quan tâm đến những khẳng định có giá trị chân lí xác định (đúng
hoặc sai, không thể vừa đúng vừa sai). Các khẳng định như vậy gọi là mệnh đề.
Ví dụ:
1. Các khẳng định sau là mệnh đề:
• “1 + 2 = 4” là mệnh đề sai.
• “20 là số chẵn” là mệnh đề đúng.
2. Các khẳng định sau không phải là mệnh đề:
• “Ngày mai trời mưa”
• “n là số nguyên tố”
Ta dùng các chữ cái P, Q, R, · · · để chỉ các mệnh đề.
Nếu mệnh đề P đúng thì ta nói nó có giá trị chân lí là 1 (hay chân trị là 1), viết là
P =1
Nếu mệnh đề P sai thì ta nói nó có giá trị chân lí là 0 (hay chân trị là 0), viết là
P =0
- Mệnh đề phức hợp: là mệnh đề được xây dựng từ các mệnh đề khác nhờ liên kết
bằng các liên từ (và, hay, khi và chỉ khi,. . . ) hoặc trạng từ “không”.
- Mệnh đề sơ cấp (nguyên thủy): Là mệnh đề không thể xây dựng từ các mệnh đề
khác thông qua liên từ hoặc trạng từ “không”.
Từ một hay nhiều mệnh đề, ta có thể lập các mệnh đề mới nhờ các phép toán logic
(tương tự như các phép toán đại số học)

1.1.2 Các phép toán


Phép phủ định Cho mệnh đề P , phủ định của P , kí hiệu là ¬P (đọc là "không P ").
Bảng chân trị của phép phủ định
P ¬P
1 0
0 1

Ví dụ: P : 2 + 3 = 5 thì ¬P : 2 + 3 6= 5

5
Bài giảng TOÁN RỜI RẠC

Phép nối liền Mệnh đề nối liền của hai mệnh đề P và Q, kí hiệu P ∧ Q (đọc là "P
và Q") là mệnh đề đúng khi cả P và Q cùng đúng và sai trong các trường hợp còn lại.

P Q P ∧Q
1 1 1
1 0 0
0 1 0
0 0 0

Ví dụ:

1. P : ”Số 5 là số nguyên tố.”


Q : ”5 là số chẵn.”
P ∧ Q : ”Số 5 là số nguyên tố và 5 là số chẵn.”

2. Q : ”π >3”
R : ”π < 34’
Q ∧ R : ”3< π <4”

Phép nối rời Mệnh đề nối rời của hai mệnh đề P và Q, kí hiệu P ∨ Q (đọc là "P
hoặc Q") là mệnh đề sai khi cả P và Q cùng sai và đúng trong các trường hợp còn
lại.

P Q P ∨Q
1 1 1
1 0 1
0 1 1
0 0 0

Ví dụ:

1. P : "Số 5 là số nguyên tố.”


Q : ”Số 5 là số chẵn.”
P ∨ Q : ”Số 5 là số nguyên tố hoặc 5 là số chẵn.”

2. Q : ”π >3”
R : ”π < 4”
Q ∨ R : ”π>3 hoặc π <4”

Phép kéo theo Mệnh đề P kéo theo Q, kí hiệu P −→ Q, đọc là "Nếu P thì Q", là
mệnh đề sai khi P đúng và Q sai; và đúng trong các trường hợp còn lại.

P Q P −→ Q
1 1 1
1 0 0
0 1 1
0 0 1

Ví dụ:

Nguyễn Minh Trí 6


Bài giảng TOÁN RỜI RẠC

1. P : ”Số 5 là số nguyên tố.”


Q : ”Số 5 là số chẵn.”
P −→ Q: ”Nếu 5 là số nguyên tố thì 5 là số chẵn.”

2. Q : ”π >3”
R : ”π < 4”
Q −→ R : "Nếu π>3 thì π <4”

Phép kéo theo hai chiều Mệnh đề nếu P thì Q và ngược lại, kí hiệu P ←→ Q,
đọc là "P khi và chỉ khi Q, P nếu và chỉ nếu Q", là mệnh đề đúng khi P, Q cùng đúng
hoặc cùng sai; và sai trong các trường hợp còn lại.

P Q P ←→ Q
1 1 1
1 0 0
0 1 0
0 0 1

Ví dụ:

1. P : ”Số 5 là số nguyên tố.”


Q : ”Số 5 là số chẵn.”
P ←→ Q : ”Số 5 là số nguyên tố khi và chỉ khi 5 là số chẵn.”

2. Q : ”π >3”
R : ”π < 4”
Q ←→ R : ”π>3 nếu và chỉ nếu π <4”

1.2 Dạng mệnh đề


1.2.1 Dạng mệnh đề
Trong các phép tính mệnh đề ta có các "biểu thức logic" tương tự như các biểu thức
đại số mà ta gọi là các dạng mệnh đề chúng được xây dựng từ:

• Các mệnh đề (hằng mệnh đề)

• Các biến mệnh đề p, q, r, . . . có thể lấy giá trị là các mệnh đề nào đó

• Các phép toán trên các hằng mệnh đề và các biến mệnh đề theo 1 thứ tự xác
định.

Ví dụ: E(p, q, r) = (p ∧ q) ∨ ((¬r) −→ P )


là một dạng mệnh đề, trong đó P là hằng mệnh đề; p, q, r là các biến mệnh đề.
Giả sử E, F là hai dạng mệnh đề, khi ấy ¬E, E ∧ F, E ∨ F, E −→ F, E ←→ F cũng
là các dạng mệnh đề.

Nguyễn Minh Trí 7


Bài giảng TOÁN RỜI RẠC

1.2.2 Giá trị chân lí của dạng mệnh đề


Với một dạng mệnh đề E(p, q, r, . . .) thì ta có được mệnh đề E(P, Q, R, . . .) khi thay
các biến mệnh đề p, q, r, . . . bởi các mệnh đề P, Q, R, . . . có giá trị chân lí xác định. Mỗi
dạng mệnh đề có 1 bảng giá trị chân lí xác định trong đó mỗi dòng cho biết chân trị
của E(p, q, r, . . .) theo các chân trị cụ thể của p, q, r, . . .
Ví dụ 1: Xây dựng bản chân trị của dạng mệnh đề p ∧ ¬(q ∨ r)
p q r q∨r ¬(q ∨ r) p ∧ ¬(q ∨ r)
1 1 1 1 0 0
1 1 0 1 0 0
1 0 1 1 0 0
1 0 0 0 1 1
0 1 1 1 0 0
0 1 0 1 0 0
0 0 1 1 0 0
0 0 0 0 1 0

Ví dụ 2: Xây dựng bản chân trị của hai dạng mệnh đề p −→ q và ¬p ∨ q


p q ¬p p −→ q ¬p ∨ q
1 1 0 1 1
1 0 0 0 0
0 1 1 1 1
0 0 1 1 1

Sự tương đương logic Hai dạng mệnh đề E và F được gọi là tương đương logic
nếu chúng có cùng bảng chân trị. Khi ấy ta viết E ⇐⇒ F (hay E ≡ F )
Ví dụ: p −→ q ⇐⇒ ¬p ∨ q

• Một dạng mệnh đề được gọi là hằng đúng nếu nó luôn có chân trị bằng 1.

• Một dạng mệnh đề được gọi là hằng sai nếu nó luôn có chân trị bằng 0.

Định lí 1 Hai dạng mệnh đề E và F tương đương logic khi và chỉ khi E ←→ F là
một hằng đúng.

Hệ quả logic F được gọi là hệ quả logic của E nếu E −→ F là hằng đúng. Kí hiệu
E ⇒ F.
Ví dụ: ¬(p ∨ q) ⇒ ¬p
Trong phép tính mệnh đề, ta thường không phân biệt các dạng mệnh đề tương
đương logic. Do đó các dạng mệnh đề phức tạp ta có thể biến đổi để nó tương đương
với các dạng mệnh đề đơn giản.

Qui tắc thay thế thứ nhất Trong dạng mệnh đề E, nếu ta thay thế biểu thức con
F bởi một dạng mệnh đề tương đương logic thì dạng mệnh đề thu được vẫn còn tương
đương logic với E.
Ví dụ: (p −→ q) ∨ r ⇐⇒ (¬p ∨ q) ∨ r

Qui tắc thay thế thứ hai Giả sử dạng mệnh đề E(p, q, r . . .) là một hằng đúng.
0 0 0
Nếu ta thay thế những nơi p xuất hiện trong E bởi một F (p , q , r ) thì dạng mệnh đề
0 0 0
nhận được theo các biến p , q , r , q, r, . . . vẫn còn là một hằng đúng.

Nguyễn Minh Trí 8


Bài giảng TOÁN RỜI RẠC

Các luật logic Với p, q, r là các biến mệnh đề, 1 là hằng đúng, 0 là hằng sai, ta có
các tương đương logic:
Phủ định 2 lần: ¬¬p ⇔ p
Luật DeMorgan: ¬(p ∧ q) ⇔ ¬p ∨ ¬q
¬(p ∨ q) ⇔ ¬p ∧ ¬q
Luật giao hoán: p ∧ q ⇔ q ∧ p
p∨q ⇔q∨p
Luật kết hợp: (p ∧ q) ∧ r ⇔ p ∧ (q ∧ r)
(p ∨ q) ∨ r ⇔ p ∨ (q ∨ r)
Luật phân phối: (p ∧ q) ∨ r ⇔ (p ∨ r) ∧ (q ∨ r)
(p ∨ q) ∧ r ⇔ (p ∧ r) ∨ (q ∧ r)
Luật lũy đẳng p∧p⇔p
p∨p⇔p
Luật kéo theo: p → q ⇔ ¬p ∨ q
p ↔ q ⇔ (p → q) ∧ (q → p
Luật thống trị: p ∧ 0 ⇔ 0; p ∨ 1 ⇔ 1
Luật trung hòa: p ∨ 0 ⇔ p; p ∧ 1 ⇔ p
Phần tử bù: p ∧ ¬p ⇔ 0; p ∨ ¬p ⇔ 1
Luật hấp thu: p ∧ (p ∨ q) ⇔ p
p ∨ (p ∧ q) ⇔ p
Ví dụ: Chứng minh rằng:

(¬p ∧ q ∧ r) ∨ (¬p ∧ ¬q ∧ r) ∨ (q ∧ r) ⇔ (p → q) ∧ r

Giải:
(¬p ∧ q ∧ r) ∨ (¬p ∧ ¬q ∧ r) ∨ (q ∧ r)
⇔ [(¬p ∧ q) ∨ (¬p ∧ ¬q)] ∧ r ∨ (q ∧ r)
⇔ [¬p ∧ (q ∨ ¬q)] ∧ r ∨ (q ∧ r)
⇔ (¬p ∧ 1) ∧ r ∨ (q ∧ r)
⇔ ¬p ∧ r ∨ (q ∧ r)
⇔ (¬p ∨ q) ∧ r
⇔ (p → q) ∧ r

1.3 Qui tắc suy diễn


Trong các chứng minh toán học, xuất phát từ một số khẳng định đúng p1 , p2 , . . . , pn
(tiền đề), ta áp dụng các qui tắc suy diễn để suy ra chân lí của một mệnh đề q mà ta
gọi là kết luận.
Nói cách khác, dùng các qui tắc suy diễn để chứng minh: (p1 ∧ p2 ∧ . . . ∧ pn ) có hệ
quả logic là q
Ta thường mô hình hóa phép suy luận đó dưới dạng: (p1 ∧ p2 ∧ . . . ∧ pn ) → q
Thông thường thì các biến logic không xuất hiện một cách tường minh và được
trừu tượng hóa (bỏ đi phần nội dung cụ thể) từ các mệnh đề nguyên thủy như ví dụ
sau đây.
Giả sử ta có các tiền đề:
p1 : Nếu An chăm học thì An đạt môn TRR.
p2 : Nếu An không đi chơi thì An chăm học.
p3 : An trượt môn TRR.
Ta muốn dùng các qui tắc suy diễn để suy ra kết luận sau là đúng:
q : An hay đi chơi.

Nguyễn Minh Trí 9


Bài giảng TOÁN RỜI RẠC

Ta trừu tượng hóa các mệnh đề nguyên thủy:


p :"An chăm học"; q :"An hay đi chơi"; r :"An đạt môn TRR".
Như vậy, các tiền đề trở thành:
p1 = p → r
p2 = ¬q → p
p3 = ¬r
Ta cần chứng minh dạng mệnh đề sau đây là một hằng đúng:

[(p → r) ∧ (¬q → p) ∧ ¬r] → q

Ta có thể dùng bảng giá trị chân lí để chứng minh dạng mệnh đề trên là một hằng
đúng. Tuy nhiên, ta có thể dùng phương pháp khác là sử dụng các qui tắc suy diễn để
chia bài toán thành các bước nhỏ. Để tiện ta mô hình hóa phép suy diễn thành sơ đồ
sau:
p1
p2
..
.
pn
∴q
Sau đây là một số quy tắc suy diễn thường dùng mà chân lý của nó có thể được kiểm
tra dễ dàng bằng cách lập bảng chân trị.

Qui tắc khẳng định (Modus Pones) Qui tắc này được thể hiện bởi hằng đúng

[(p → q) ∧ p] → q

hoặc dưới dạng sơ đồ


p→q
p
∴q
Ví dụ 1:
Nếu An chăm học thì An đạt môn TRR
An chăm học.
Suy ra An đạt môn TRR.
Ví dụ 2:
Nếu hôm nay trời nắng thì Bình đi bơi
Hôm nay trời nằng.
Suy ra Bình đi bơi.

Tam đoạn luận (Syllogism) Qui tắc này được thể hiện bởi hằng đúng

[(p → q) ∧ (q → r)] → (p → r)

hoặc dưới dạng sơ đồ


p→q
q→r
∴p→r
Ví dụ 1:
Nếu hôm nay trời mưa thì Chi không đi cắm trại.
Nếu hôm nay Chi không đi cắm trại thì Chi ở nhà xem phim.

Nguyễn Minh Trí 10


Bài giảng TOÁN RỜI RẠC

Suy ra Nếu hôm nay trời mưa thì Chi ở nhà xem phim.
Ví dụ 2:
Một con ngựa rẻ thì hiếm.
Một con ngựa hiếm thì đắt.
Suy ra Một con ngựa rẻ thì đắt. (!)

Qui tắc phủ định (Modus Tollens) Qui tắc này được thể hiện bởi hằng đúng

[(p → q) ∧ ¬q] → ¬p

hoặc dưới dạng sơ đồ


p→q
¬q
∴ ¬p
Ví dụ 1:
Nếu An chăm học thì An đạt môn TRR.
An trượt môn TRR.
Suy ra An không chăm học.
Ví dụ 2:
.
Nếu n..2 thì n có chữ số tận cùng là chữ số chẵn.
n có chữ số tận cùng là chữ số lẻ.
Suy ra n không chia hết cho 2.

Qui tắc tam đoạn luận rời Qui tắc này được thể hiện bởi hằng đúng

[(p ∨ q) ∧ ¬p] → q

hoặc dưới dạng sơ đồ


p∨q
¬p
∴q
Ví dụ 1:
Thứ bảy, An về nhà hoặc An lên thư viện đọc sách.
Thứ bảy, An không về nhà.
Suy ra An lên thư viện đọc sách.
Ví dụ 2:
Bình ham chơi hoặc Bình đạt môn TRR.
Bình không ham chơi.
Suy ra Bình đạt môn TRR.

Qui tắc cộng Qui tắc này được thể hiện bởi hằng đúng

p → (p ∨ q)

hoặc dưới dạng sơ đồ


p
∴p∨q
Ví dụ: An đang làm bài tập
Suy ra An đang làm bài tập hoặc An đang chơi game.

Nguyễn Minh Trí 11


Bài giảng TOÁN RỜI RẠC

Qui tắc đơn giản Qui tắc này được thể hiện bởi hằng đúng

p∧q →p

hoặc dưới dạng sơ đồ


p∧q
∴p
Ví dụ: An đang làm bài tập và An đang nghe nhạc
Suy ra An đang làm bài tập.

Qui tắc nối Qui tắc này được thể hiện bởi hằng đúng

(p) ∧ (q) → (p ∧ q)

hoặc dưới dạng sơ đồ


p
q
∴p∧q
Ví dụ:
An đang làm bài tập.
An đang nghe nhạc.
Suy ra An đang làm bài tập và An đang nghe nhạc.

Qui tắc mâu thuẫn Ta có tương đương logic

[(p1 ∧ p2 ∧ . . . ∧ pn ) → q]

⇔ [(p1 ∧ p2 ∧ . . . ∧ pn ∧ ¬q) → 0]
Hay nói cách khác, nếu ta thêm giả thiết phụ ¬q vào các tiền đề cho trước mà dẫn đến
một mâu thuẫn thì q là hệ quả logic của các tiền đề cho trước.
Ví dụ: Sử dụng phản chứng để chứng minh:

p→r
¬p → q
q→s
∴ ¬r → s

Phủ định của kết luận tương đương với:

¬(¬r → s) ⇔ ¬(r ∨ s) ⇔ ¬r ∧ ¬s

Như thế ta thêm các giả thiết phụ ¬r và ¬s và các tiền đề và chứng minh suy luận
sau đây là đúng:
p→r
¬p → q
q→s
¬r
¬s
∴0

Nguyễn Minh Trí 12


Bài giảng TOÁN RỜI RẠC

Ta có các bước sau đây:


¬p → q
q→s
∴ ¬p → s( Tam đoạn luận)
¬s
∴ ¬(¬p)( Phủ định)
p→r
∴ r( Khẳng định)

Kết luận r cùng với giả thiết phụ ¬r cho ta

r ∧ ¬r ⇔ 0

Qui tắc chứng minh theo từng trường hợp Qui tắc này được thể hiện bởi hằng
đúng
[(p → r) ∧ (q → r)] → [(p ∨ q) → r]
Ý nghĩa của qui tắc này là: Nếu một giả thiết có thể tách thành 2 trường hợp p đúng
hay q đúng, và ta chứng minh được riêng lẽ các trường hợp là kết luận r đúng. Khi ấy
r cũng đúng với cả 2 trường hợp.
Ví dụ: Chứng minh tích 3 số tự nhiên liên tiếp thì chia hết cho 3

Phản ví dụ Để chứng minh một phép suy luận là sai hay

(p1 ∧ p2 ∧ . . . ∧ pn ) → q

không là một hằng đúng. Ta tìm các chân trị của các biến mệnh đề làm cho các tiền
đề đều đúng nhưng kết luận q sai. Ta nói ví dụ dẫn đến các giá trị của các biến mệnh
đề như trên là một phản ví dụ của định lí cần chứng minh.
Ví dụ: Hãy tìm phản ví dụ cho suy luận dưới đây:
Ông Minh nói rằng nếu không được tăng lương thì ông ta sẽ nghỉ việc. Mặt khác,
nếu ông ấy nghỉ việc và vợ ông ấy bị mất việc thì phải bán xe. Biết rằng nếu vợ ông
Minh hay đi làm trễ thì trước sau gì cũng sẽ bị mất việc và cuối cùng ông Minh đã
được tăng lương. Suy ra nếu ông Minh không bán xe thì vợ ông ta đã không đi làm
trễ.
Ta đặt các biến mệnh đề như sau:

• p : Ông Minh được tăng lương.

• q : Ông Minh xin nghỉ việc.


• r : Vợ ông Minh bị mất việc.

• s : Ông Minh bán xe.


• t : Vợ ông Minh đi làm trễ.
Mô hình suy diễn sẽ là:
¬p → q
(q ∧ r) → s
t→r
p
∴ ¬s → ¬t

Nguyễn Minh Trí 13


Bài giảng TOÁN RỜI RẠC

Ta phải tìm phản ví dụ sau cho các tiền đề là đúng và kết luận sai, tức là:
 

 ¬p → q = 1 
 s=0
 
(q ∧ r) → s = 1 t = 1

 

 
t→r=1 do đó p = 1
 
p = 1 r=1

 


 


¬s → ¬t = 0 
q = 0

Chú ý: Nếu hệ trên vô nghiệm thì suy luận trên là đúng, nếu hệ trên có nghiệm thì
suy luận trên là sai.

1.4 Vị từ và lượng từ
1.4.1 Vị từ
Một vị từ là một khẳng định p(x, y, . . .) trong đó có chứa các biến x, y, . . . lấy giá trị
trong những tập cho trước A, B, . . . sao cho:
i.) p(x, y, . . .) không phải là mệnh đề.
ii.) Nếu thay x, y, . . . bằng những phần tử cố định nhưng tùy ý a ∈ A, b ∈ B, . . . ta
sẽ được một mệnh đề dạng p(a, b, . . .) nghĩa là ta có thể tìm được chân trị của nó.
Ví dụ:
1. p(n) ="n là số nguyên tố" là một vị từ theo biến tự do n ∈ N: với n = 2, 3, 5
thì ta có các mệnh đề đúng p(2), p(3), p(5); với n = 4, 6, 9 thì ta có các mệnh đề sai
p(4), p(6), p(9).
2. p(x, y) = ”x + y 2 là số chẵn" với x, y ∈ Z

1.4.2 Các phép toán trên vị từ


Cho các vị từ p(x), q(x) khi đó ta cũng có các phép toán:

Phủ định: ¬p(x)


Phép nối liền: p(x) ∧ q(x)
Phép nối rời: p(x) ∨ q(x)
Phép kéo theo: p(x) → q(x)
Phép kéo theo 2 chiều: p(x) ↔ q(x)

1.4.3 Lượng từ
Xét một vị từ p(x) với x ∈ A. Có 3 TH:
TH1: Khi thay x bởi một phần tử a tùy ý trong A thì ta p(a) là mệnh đề đúng.
TH2: Với một số giá trị a ∈ A thì ta p(a) là mệnh đề đúng.
TH3: Khi thay x bởi một phần tử a tùy ý trong A thì ta p(a) là mệnh đề sai.
Ví dụ: Cho vị từ p(x) với x ∈ R
p(x) = ”x2 + 1 > 0”
p(x) = ”x2 − 3x + 2 = 0”
p(x) = ”x2 − 2x + 1 < 0”
Nếu TH1 xảy ra thì mệnh đề "với mọi x ∈ A, p(x)" là mệnh đề đúng. Kí hiệu:
∀x ∈ x, p(x).
Nếu TH1 hay TH2 xảy ra thì mệnh đề "tồn tại x ∈ A, p(x)" là mệnh đề đúng. Kí
hiệu ∃x ∈ A, p(x)

Nguyễn Minh Trí 14


Bài giảng TOÁN RỜI RẠC

Lượng từ Các mệnh đề dạng ”∀x ∈ A, p(x)” và ”∃x ∈ A, p(x)” gọi chung là các
lượng từ hóa của vị từ p(x) bởi lượng từ phổ dụng (∀) và lượng từ tồn tại ∃
Ví dụ: Xét tính đúng sai của các mệnh đề sau:
∀x ∈ R, p(x) = ”x2 − 1 > 0”
∀x ∈ R, p(x) = ”x2 + 4x + 5 6= 0”
∃x ∈ R, p(x) = ”x2 + 3x − 4 = 0”
∃x ∈ R, p(x) = ”x2 + 1 < 0”
Ta xét một vị từ theo 2 biến p(x, y) với x ∈ A, y ∈ B. Ta có 4 mệnh đề:

∀x ∈ A, ∀y ∈ B, p(x, y)
∃x ∈ A, ∀y ∈ B, p(x, y)
∀x ∈ A, ∃y ∈ B, p(x, y)
∃x ∈ A, ∃y ∈ B, p(x, y)
Ví dụ: Xét vị từ p(x, y) = ”x2 + y > 0” với x, y ∈ R

∀x ∈ R, ∀y ∈ R, x2 + y > 0
∃x ∈ R, ∀y ∈ R, x2 + y > 0
∀x ∈ R, ∃y ∈ R, x2 + y > 0
∃x ∈ R, ∃y ∈ R, x2 + y > 0

Định lí 2 Nếu p(x, y) là một vị từ theo hai biến x, y thì các mệnh đề sau là đúng:

[∀x ∈ A, ∀y ∈ B, p(x, y)] ↔ [∀y ∈ B, ∀x ∈ A, p(x, y)]

[∃x ∈ A, ∃y ∈ B, p(x, y)] ↔ [∃y ∈ B, ∃x ∈ A, p(x, y)]


[∃x ∈ A, ∀y ∈ B, p(x, y)] → [∀y ∈ B, ∃x ∈ A, p(x, y)]

1.4.4 Phủ định mệnh đề lượng từ hóa


Phủ định của mệnh đề lượng từ hóa vị từ p(x, y, . . .) có được bằng các thay ∀ thành
∃, thay ∃ thành ∀ và vị từ p(x, y, . . .) thành ¬p(x, y, . . .).

¬[∀x ∈ A, p(x)] ⇔ [∃x ∈ A, ¬p(x)]


¬[∃x ∈ A, p(x)] ⇔ [∀x ∈ A, ¬p(x)]
¬[∀x ∈ A, ∀y ∈ B, p(x, y)] ⇔

Qui tắc đặc biệt hóa phổ dụng Nếu một mệnh đề có dạng lượng từ hóa trong đó
có 1 biến x ∈ A bị phụ thuộc bởi lượng từ phổ dụng ∀, khi ấy nếu thay x bởi a ∈ A
thì ta được một mệnh đề đúng.
Ví dụ: Mọi người đều chết. Socrate là người. Vậy Socrate sẽ chết.

∀x ∈ A, p(x)
a∈A
∴ p(a)

Nguyễn Minh Trí 15


Bài giảng TOÁN RỜI RẠC

1.5 Nguyên lí qui nạp


Với những bài toán chứng minh tính đúng đắn của P (n) với mọi n ≥ N0 . Quy nạp
toán học là một kỹ thuật chứng minh các bài toán thuộc loại như thế.
Quá trình chứng minh P (n) đúng với mọi n ≥ N0 gồm 2 bước:
- Bước cơ sở: Chỉ ra P (N0 ) đúng.
- Bước quy nạp: Chứng minh nếu P (k) đúng thì P (k + 1) đúng. Trong đó P (k)
được gọi là giả thiết quy nạp.
Ví dụ: Chứng minh với mọi số tự nhiên n ∈ N∗ ta có
n(n + 1)
1 + 2 + ··· + n = (∗)
2
Chứng minh

1(1 + 1)
• Với n = 1 ta có 1 = Nên (∗) đúng với n = 1.
2
• Giả sử (∗) đúng với n = k, nghĩa là ta có
k(k + 1)
1 + 2 + ··· + k =
2

Ta cần chứng minh (∗) đúng với n = k + 1, nghĩa là cần chứng minh
(k + 1)[(k + 1) + 1]
1 + 2 + · · · + k + (k + 1) =
2

k(k + 1) k(k + 1) + 2(k + 1)


Thật vậy, V T = 1+2+· · ·+k+(k+1) = +(k+1) = =
2 2
(k + 1)(k + 2) (k + 1)[(k + 1) + 1]
=
2 2
• Vậy
n(n + 1)
1 + 2 + ··· + n = , ∀n ∈ N∗
2
Bài tập

Bài 1. Gọi P, Q là các mệnh đề:


P : "Minh giỏi toán."
Q : "Minh yếu anh văn"
Hãy viết lại các mệnh đề sau đây dưới dạng hình thức trong đó có sử dụng các
phép nối.
a. Minh giỏi toán nhưng yếu anh văn.
b. Minh yếu cả toán lẫn anh văn.
c. Minh giỏi toán hay Minh vừa giỏi anh văn vừa yếu toán.
d. Nếu Minh giỏi toán thì Minh giỏi anh văn.
e. Minh giỏi toán và anh văn hay minh yếu toán nhưng giỏi anh văn.
Bài 2. Hãy lấy phủ định các mệnh đề sau:
a. Ngày mai nếu trời mưa hay trời lạnh thì tôi sẽ ở nhà.
b. 15 chia hết cho 4 nhưng không chia hết cho 4.
c. Hình chữ nhật này không phải là hình chữ nhật mà cũng không là hình thoi.
d. Nếu An không hoàn thành công việc thì An sẽ bị đuổi việc.

Nguyễn Minh Trí 16


Bài giảng TOÁN RỜI RẠC

e. Mọi tam giác đều có các góc bằng 600


Bài 3. Lập bảng chân trị của các dạng mệnh đề sau:
a. ¬p → (p ∨ q) e. (p → q) ∨ (q → p)
b. ¬p → (¬q ∨ r) f. (p ∨ ¬q) ∧ (¬p ∨ q)
c. (p ∧ q) → ¬q g. (p → ¬q) ∨ (q → ¬p)
d. (p ∨ r) → (r ∨ ¬p) h. ¬(¬p ∧ ¬q)
Bài 4. Dùng các qui tắc thay thế để kiểm tra các dạng mệnh đề sau là hằng đúng;
a. [(p ∨ q) → r] ↔ [¬r → ¬(p ∨ q)]
b. (p → q) ∧ ¬q → ¬p
c. [p → (q → r)] → (p ∧ q → r)
d. (p → r) ∧ (q → r) → (p ∨ q → r)
e. ¬[(¬p ∨ q) ∧ ¬q] ∨ ¬p
f. ¬[(¬p ∨ q) ∧ (¬q ∨ r)] ∨ ¬p ∨ r
Bài 5. Lấy phủ định rồi đơn giản các dạng mệnh đề sau:
a. p ∧ (q ∨ r) ∧ (¬p ∨ ¬q ∨ r)
b. (p ∧ q) → r
c. p → (¬q ∧ r)
d. p ∨ q ∨ (¬p ∧ ¬q ∧ r)
Bài 6. Chứng minh các dạng mệnh đề sau tương đương logic với nhau:
a. [(p ∨ q) ∧ (p ∨ ¬q)] ∨ q và p ∨ q
b. ¬(p ∨ q) ∨ [(¬p ∧ q) ∨ ¬q] và ¬(p ∧ q)
c. (p → q) ∧ [¬q ∧ (r ∨ ¬q)] và ¬(q ∨ p)
Bài 7. Chứng minh suy luận sau đây là đúng:

(¬p ∨ q) → r
p
r → (s ∨ t) p→q
p→q
¬s ¬r ∨ s
a. s∨r b. c.
¬u p∨r
r → ¬q
¬u → ¬t ∴ ¬q → s
∴s∨t
∴p

Bài 8. Hãy kiểm tra lại các qui tắc suy luận sau:

p→q p→q p → (q → r)
¬q r → ¬q ¬q → ¬p
a. b. c.
¬r r p
∴ ¬(p ∨ r) ∴ ¬p ∴r

p∧q p → (q → r)
p∨q
p → (r ∧ q) p∨s
¬p ∨ r
d. r → (s ∨ t) e. t→q f.
¬r
¬s ¬s
∴q
∴t ∴ ¬r → ¬t

Bài 9. Hãy kiểm tra các qui tắc suy luận sau có đúng không?
a. Nếu An được lên chức và làm việc nhiều thì An sẽ được tăng lương.
Nếu An được tăng lương thì An sẽ mua xe mới.
Mà An không mua xe mới.

Nguyễn Minh Trí 17


Bài giảng TOÁN RỜI RẠC

Vậy An không được lên chức hay An không làm việc nhiều.
b. Nếu muốn dự họp sáng thứ Ba thì Minh phải dậy sớm.
Nếu Minh đi nghe nhạc tối thứ Hai thì Minh sẽ về trễ.
Nếu về trễ và thức dậy sớm thì Minh phải đi họp mà chỉ ngủ dưới 7 giờ.
Nhưng Minh không thể đi họp nếu ngủ dưới 7 giờ.
Do đó hoặc là Minh không đi nghe nhạc tối thứ Hai hoặc là Minh bỏ họp sáng thứ
Ba.
c. Nếu Bình đi làm về muộn thì Vợ anh sẽ rất giận dữ.
Nếu An thường xuyên vắng nhà thì vợ anh sẽ rất giận dữ.
Nếu vợ Bình hay vợ An giận dữ thì cô Hà bạn họ sẽ nhận được lời than phiền.
Mà Hà đã không nhận được lời than phiền.
Vậy Bình đi làm về sớm và An ít khi vắng nhà.
Bài 10. Tìm các phản ví dụ cho các suy luận sau:

p↔q p
q→r p→r
a. r ∨ ¬s b. p → (q ∨ ¬r)
¬s → q ¬ ∨ ¬s
∴s ∴s

Bài 11. Lấy phủ định các mệnh đề sau:


a. Với mọi số nguyên n, nếu n không chia hết cho 2 thì n là số lẻ.
b. Nếu bình phương của một số nguyên là lẻ thì số nguyên ấy là số lẻ.
c. Nếu k, m, n là các số nguyên sao cho k − m và m − n là số lẻ thì k − n là số chẵn.
d. Nếu x là một số thực sao cho x2 > 16 thì x < −4 hay x > 4
e. Với mọi số thực x, nếu |x − 3| < 7 thì −4 < x < 10
Bài 12. Gọi p(x) và q(x) là các vị từ theo một biến, hãy lấy phủ định và đơn giản
các mệnh đề sau:
a. ∃x, p(x) ∨ q(x)
b. ∀x, p(x) ∧ ¬q(x)
c. ∀x, p(x) → q(x)
Bài 13. Chứng minh các công thức sau:
n(n + 1)(2n + 1)
a. 02 + 12 + · · · + n2 =
6
2
n (n + 1)2
b. 03 + 13 + 23 + · · · + n3 =
4
1 2 3 n 1
c. + + + ··· + =1−
2! 3! 4! (n + 1)! (n + 1)!

Nguyễn Minh Trí 18


Chương 2

Phương pháp đếm

2.1 Tập hợp


2.1.1 Một số khái niệm
Tập hợp (hay còn gọi là tập) là một khái niệm cơ bản của toán học, không được định
nghĩa. Trong toán học người ta không định nghĩa tập hợp, mà chỉ mô tả nó như là một
sự tụ tập của một số đối tượng nào đó.
Tập hợp được kí hiệu bằng các chữ cái in hoa A, B, X, Y, . . .. Những đối tượng tạo
thành tập hợp được gọi là các phần tử, kí hiệu : a, b, c, x, y, . . .
Ví dụ: Tập hợp các sinh viên của một lớp. Tập hợp các số tự nhiên. Tập hợp các
số nguyên.
Khi nói ”x là một phần tử của tập X” hay ”x thuộc vào tập X” ta viết x ∈ X.
Nếu y không là phần tử của tập hợp X hay ”y không thuộc tập X” ta viết y 6∈ X.
Để ý rằng từ “tính chất” được hiểu theo một nghĩa rộng rãi. Thông thường nó sẽ
được biểu hiện bởi một vị từ p(x) theo một biến x ∈ U . Khi ấy tập hợp được ký hiệu
bởi:
A = {x ∈ U |p(x)}
U được gọi là tập vũ trụ.
Tập rỗng là tập hợp không có chứa phần tử nào. Kí hiệu tập rỗng ∅.
Tập hợp A là con của tập hợp B khi và chỉ khi mọi phần tử thuộc A đều thuộc B.
Kí hiệu A ⊂ B. Tức là A ⊂ B ⇔ nếu x ∈ A ⇒ x ∈ B

Hai tập hợp A và B được gọi là bằng nhau nếu chúng cùng chứa những phần tử
giống nhau. Kí hiệu A = B.
Ta có định nghĩa khác của hai tập hợp bằng nhau: Nếu A ⊂ B và B ⊂ A thì A = B.
Ta có thể sử dụng các phép toán trên mệnh đề và vị từ để định nghĩa các phép toán
trên tập hợp như phép hợp (∪), phép giao (∩) và phần bù theo định nghĩa sau đây:

2.1.2 Các phép toán trên tập hợp


Giả sử A, B là hai tập hợp con của tập hợp vũ trụ U . Khi ấy:

A ∪ B = {x|x ∈ A ∨ x ∈ B}

A ∩ B = {x|x ∈ A ∧ x ∈ B}
A = {x ∈ U |x 6∈ A}

19
Bài giảng TOÁN RỜI RẠC

2.2 Ánh xạ
2.2.1 Định nghĩa ánh xạ
Một ánh xạ f từ tập X đến tập Y là một phép tương ứng với mỗi phần tử x ∈ X với
duy nhất 1 phần tử y ∈ Y .
Ta viết
f :X →Y
x 7→ y = f (x)

• Tập hợp X gọi là miền xác định hay tập nguồn của ánh xạ f .

• Tập hợp Y gọi là miền giá trị hay tập đích của ánh xạ f .

• Phần tử y gọi là ảnh của phần tử x qua ánh xạ f và kí hiệu y = f (x).

• Phần tử x gọi là tạo ảnh của phần tử y qua ánh xạ f .

Giả sử f, g là hai ánh xạ từ X đến Y . Ánh xạ f gọi là ánh xạ g nếu f (x) = g(x) với
mọi x ∈ X

2.2.2 Ảnh và tạo ảnh


f : X → Y là một ánh xạ, A ⊂ X, B ⊂ Y .
f (A) = {f (x)|x ∈ X} là ảnh của tập A qua ánh xạ f .
f −1 (B) = {x ∈ X|f (x) ∈ B} là tạo ảnh (toàn phần) của tập hợp B qua ánh xạ f
Nếu y ∈ Y ta viết f −1 ({y}) = f −1 (y)
Ví dụ: Cho ánh xạ
f :R→ R
x 7→ x + 2

Khi đó: A = {0, 1, 2} thì f (A) = {2, 3, 4}

f −1 (1) = {x ∈ R|f (x) = 1} = {−1}

f −1 ([0, 3]) = {x ∈ R|0 ≤ f (x) ≤ 3} = [−2, 1]

2.2.3 Đơn ánh - Toàn ánh - Song ánh


Toàn ánh Ánh xạ f : X → Y là một toàn ánh khi và chỉ khi ∀y ∈ Y, ∃x ∈ X; f (x) =
y.
⇔ f (X) = Y .
⇔ ∀y ∈ Y, f −1 (y) 6= ∅
Ví dụ: Chứng minh f là toàn ánh, g không là toàn ánh.

f :R→ R g:R→ R
x 7→ x3 x 7→ x2

Nguyễn Minh Trí 20


Bài giảng TOÁN RỜI RẠC

Đơn ánh Ánh xạ f : X → Y được gọi là một đơn ánh khi và chỉ khi
∀x1 , x2 ∈ X mà x1 6= x2 thì f (x1 ) 6= f (x2 )
⇔ ∀x1 , x2 ∈ X : x1 6= x2 ⇒ f (x1 ) 6= f (x2 )
⇔ ∀x1 , x2 ∈ X : f (x1 ) = f (x2 ) ⇒ x1 = x2
Ví dụ: Chứng minh f là đơn ánh, g không là đơn ánh.

f :R→ R g:R→ R
x 7→ x3 x 7→ x2

Song ánh Ánh xạ f : X → Y gọi là một song ánh khi và chỉ khi f vừa là đơn ánh
vừa là toàn ánh.
Hay ∀y ∈ Y : f −1 (y) có duy nhất 1 phần tử.

2.2.4 Tích các ánh xạ. Ánh xạ ngược


Cho hai ánh xạ f : X → Y và g : Y → Z.
Khi đó ta có thể lập một ánh xạ đi từ X đến Z như sau:
h:X→ Z
x 7→ h(x) = g[f (x)]

Ánh xạ h gọi là tích của ánh xạ f và ánh xạ g, kí hiệu h = g ◦ f hay h = g.f


Chú ý thứ tự các ánh xạ.

Ánh xạ đồng nhất Ánh xạ f : X → X được gọi là ánh xạ đồng nhất nếu f (x) = x
với mọi x ∈ X.
Kí hiệu ánh xạ đồng nhất trên tập X là 1X
Ánh xạ đồng nhất là 1 song ánh.

Ánh xạ ngược Giả sử f : X → Y, g : Y → X là hai ánh xạ sao cho:


g ◦ f = 1X , f ◦ g = 1Y
(1X , 1Y là các ánh xạ đồng nhất.
Khi đó, ánh xạ g gọi là ánh xạ ngược của ánh xạ f .
Kí hiệu ánh xạ ngược của ánh xạ f là f −1 .

2.2.5 Lực lượng của tập hợp


Mỗi tập A ta đặt tương ứng với một đối tượng, kí hiệu là |A| gọi là lực lượng của tập
A , sao cho |A| = |B| khi và chỉ khi tồn tại song ánh từ A vào B.
Lực lượng của tập A còn được gọi là bản số của A và ký hiệu là cardA. Lực lượng
của tập rỗng là số 0.
Nếu tập hợp A có đúng n phần tử phân biệt, với n là số nguyên không âm thì ta
nói A là tập hữu hạn và gọi n là bản số của A.
Tập hợp được gọi là vô hạn nếu nó không là tập hữu hạn.
Ví dụ: A là tập các số tự nhiên lẻ nhỏ hơn 10. Khi đó |A| = 5
Lực lượng của tập số tự nhiên ký hiệu là N0 (đọc là alép không) và gọi là lực lượng
đếm được, còn lực lượng của tập số thực được gọi là lực lượng continum và ký hiệu
là N (alep).
Tập hợp số hữu tỷ, tập hợp số nguyên, tập số chẵn có lực lượng đếm được.
Khoảng (0; 1), đoạn [0; 1] có lực lượng continum.

Nguyễn Minh Trí 21


Bài giảng TOÁN RỜI RẠC

2.3 Giải tích tổ hợp


2.3.1 Nguyên lí cộng
Giả sử để làm công việc A có 2 phương pháp
- Phương pháp 1 có n cách làm
- Phương pháp 2 có m cách làm
Khi đó số cách làm công việc A là n + m
Ví dụ: Có 3 viên bi trắng và 4 viên bi đen. Có bao nhiêu cách lấy ra 1 viên bi?

2.3.2 Nguyên lí nhân


Một công việc A được chia làm hai giai đoạn.
Có n cách thực hiện giai đoạn thứ nhất và có m cách thực hiện giai đoạn thứ hai.
Khi đó sẽ có tất cả n × m cách để thực hiện công việc A.
Ví dụ: Cho các chữ số 1,2,3,4. Hỏi có bao nhiêu số có 4 chữ số khác nhau được lập
nên từ 4 chữ số đó?

2.3.3 Nguyên lí bù trừ


Cho A và B là hai tập hữu hạn. Khi đó

|A ∪ B| = |A| + |B| − |A ∩ B|

Ví dụ. Trong một lớp ngoại ngữ Anh Pháp. Có 24 HS học Tiếng Pháp, 26 học sinh
học Tiếng Anh. 15 học sinh học Tiếng Anh và Tiếng Pháp. Hỏi lớp có bao nhiêu người?

2.3.4 Giải tích tổ hợp


Hoán vị: Cho một tập hợp A gồm n phần tử. Một hoán vị của n phần tử này là 1
cách sắp thứ tự của n phần tử đó.
Ví dụ 1: Các hoán vị của 3 phần tử của tập hợp A = {a, b, c} là

(a, b, c), (a, c, b), (b, a, c), (b, c, a), (c, b, a), (c, a, b)

Số các hoán vị của n phần tử là :

Pn = n(n − 1)(n − 2) . . . 3.2.1 = n!

Ví dụ 2: Với các chữ số 1,2,3,4,5. Có thể lập được bao nhiêu số có 5 chữ số khác nhau
từ các chữ số trên?

Chỉnh hợp Một tập hợp gồm n phần tử. Một nhóm gồm m phần tử lấy ra từ tập
trên và sắp theo 1 thứ tự nào đó được gọi là một chỉnh hợp chập m của n phần tử.
(m ≤ n)
Ví dụ 1: Cho tập hợp A = {a, b, c, d}. Tất cả các chỉnh hợp chập 2 của 4 phần tử
của A là
(a, b), (a, c), (a, d), (b, c), (b, d), (c, d)
(b, a), (c, a), (d, a), (c, b), (d, b), (d, c)
Có tất cả 12 chỉnh hợp chập 2 của 4 phần tử.

Nguyễn Minh Trí 22


Bài giảng TOÁN RỜI RẠC

Số chỉnh hợp chập k của n phần tử là:


n!
Akn = n(n − 1)(n − 2) . . . (n − k + 1) =
(n − k)!

Ví dụ 2: Có bao nhiêu số tự nhiên có 6 chữ số khác nhau?

Tổ hợp Một tập hợp gồm n phần tử. Một nhóm gồm k phần tử lấy ra từ tập trên
và không kể thứ tự được gọi là một tổ hợp chập k của n phần tử. (k ≤ n)
Ví dụ 1: Một tổ SV gồm 5 người: A, B, C, D, E. Một nhóm gồm 3 người là một tổ hợp
chập 3 của 5 phần tử.

(A, B, C), (A, B, D), (A, B, E), (A, C, D), (A, C, E), (A, D, E), (B, C, D), (B, C, E), (B, D, E), (
Có 10 tổ hợp chập 3 của 5 phần tử.
Số tổ hợp chập k của n phần tử là:
n!
Cnk =
(n − k)!k!

Ví dụ 2: Một hộp có 10 bóng đèn. Lấy ngẫu nhiên 3 bóng ra kiểm tra thì có bao nhiêu
cách?

Hoán vị lặp Cho n đối tượng trong đó có ni đối tượng loại i giống hệt nhau (i =
1, 2, . . . , k; n1 + n2 + · · · + nk = n). Mỗi cách sắp xếp có thứ tự n đối tượng đã cho gọi
là một hoán vị lặp của n.
Số hoán vị của n đối tượng, trong đó có
n1 đối tượng giống nhau thuộc loại 1,
n2 đối tượng giống nhau thuộc loại 2,. . . ,
nk đối tượng giống nhau thuộc loại k, là
n!
n1 !n2 ! . . . nk !

Ví dụ: Có bao nhiêu chuỗi kí tự khác nhau bằng cách sắp xếp các chữ cái của từ
SUCCESS?

Tổ hợp lặp Mỗi cách chọn ra k vật từ n loại vật khác nhau (trong đó mỗi loại vật
có thể được chọn lại nhiều lần) được gọi là tổ hợp lặp chập k của n
Số các tổ hợp lặp chập k của n được ký hiệu là

Kkn = Cn+k−1
n

Ví dụ 1: Có 3 loại nón A, B, C. An mua 2 cái nón. Hỏi An có bao nhiêu cách chọn.
Ta có mỗi cách chọn là mỗi tổ hợp lặp chập 2 của 3. Cụ thể

AA, AB, AC, BB, BC, CC

Ví dụ 2: Có k vật đồng chất giống nhau. Hỏi có bao nhiêu cách sắp chúng vào n hộp
phân biệt?
Mỗi cách sắp cũng chính là 1 tổ hợp lặp chập k của n nên số cách sắp là
k
Cn+k−1

Nguyễn Minh Trí 23


Bài giảng TOÁN RỜI RẠC

Ví dụ 3: Xét phương trình

x1 + x2 + · · · + xn = k(∗)

với xi ∈ N. Phương trình (∗) có bao nhiêu nghiệm?


Mỗi nghiệm là một bộ n số (x1 , x2 , . . . , xn ) thỏa (∗).
Một nghiệm chính là cách chia k vật vào n hộp phân biệt (xi là các hộp). Như vậy
số nghiệm của (∗) chính là số tổ hợp lặp chập k của n
Ví dụ 4: Tìm số nghiệm nguyên không âm của phương trình

x1 + x2 + x3 + x4 = 20(1)

thỏa x1 ≤ 3, x2 ≥ 2, x3 > 4(∗)


Giải:
x1 ≤ 3, x2 ≥ 2, x3 ≥ 5(∗)
Xét các điều kiện sau:
x2 ≥ 2, x3 ≥ 5(∗∗)
x1 ≥ 4, x2 ≥ 2, x3 ≥ 5(∗ ∗ ∗)
Gọi p, q, r lần lượt là số nghiệm nguyên không âm của phương trình (1) thỏa các
điều kiện (∗), (∗∗), (∗ ∗ ∗). Ta có:
p=q−r
Đầu tiên ta tìm q:
0 0 0 0
x1 = x1 ; x2 = x2 − 2; x3 = x3 − 5, x4 = x4

Phương trình (1) trở thành


0 0 0 0
x1 + x2 + x3 + x4 = 13(2)

Số nghiệm nguyên không âm của phương trình (1) thỏa điều kiện (∗∗) bằng số
nghiệm nguyên không âm của phương trình (2)
13
Vậy số nghiệm là K413 = C4+13−1 13
= C16 13
= hay q = C16
9
Lí luân tương tự ta có r = C12
13 9
p = q − r = C16 − C12 = 340
Vậy số nghiệm nguyên không âm của phương trình (1) thỏa điều kiện (∗) là 340

2.4 Nguyên lí Dirichlet


Nguyên lí Dirichlet do nhà toán học người Đức là Dirichlet đề xuất từ thế kỉ XIX.
Nguyên lí này dùng để chứng minh sự tồn tại nghiệm trong nhiều bài toán tổ hợp.
Nguyên lí này còn có tên gọi khác là "nguyên lí chuồng bồ câu": Giả sử có một đàn
bồ câu bay vào chuồng. Nếu số chim nhiều hơn số chuồng thì chắc chắn có ít nhất một
chuồng có nhiều hơn 1 con chim. Một cách tổng quát, nguyên lí Dirichlet được phát
biểu như sau:
Nếu xếp nhiều hơn n đối tượng vào n cái hộp thì tồn tại ít nhất một hộp không
chứa ít hơn 2 đối tượng.
Ví dụ 1: Một năm có nhiều nhất 366 ngày. Do đó trong 367 người bất kì bao giờ
cũng có ít nhất 2 người có ngày sinh nhật giống nhau.
Ví dụ 2: Thang điểm bài kiểm tra được cho từ 0 đến 10. Do đó, trong 12 sinh viên
sẽ có ít nhất 2 sinh viên có điểm số giống nhau.

Nguyễn Minh Trí 24


Bài giảng TOÁN RỜI RẠC

Ví dụ 3: Có 20 thành phố, giữa các thành phố có thể có đường giao thông nối trực
tiếp với nhau hoặc không. Chứng minh rằng có ít nhất 2 thành phố có số thành phố
khác nối trực tiếp với chúng là như nhau.
Giải: Ta gọi ai là số thành phố có đường giao thông nối trực tiếp với thành phố thứ
i và A = {a1 , a2 , . . . , a20 } là tập các giá trị đó. Khi đó ta có 0 ≤ ai ≤ 19. Mặt khác,
không thể có đồng thời có mặt 0 và 19 vì nếu tập A có 0 tức là có một thành phố bị
cô lập thì sẽ không có thành phố nào nối với 19 thành phố còn lại, ngược lại cũng như
vậy. Do đó tập A chỉ có tối đa 19 giá trị khác nhau. Theo nguyên lí Dirichlet thì sẽ tồn
tại 2 cặp số i 6= j sao cho ai = aj

Nguyên lí Dirichlet tổng quát: Giả sử có n vật cần đặt vào k hộp. Khi đó tồn tại
ít nhất một hộp chứa từ dn/ke vật trở lên. Trong đó dn/ke là số nguyên dương nhỏ
nhất không bé hơn n/k
(d100/12e = 9)
Ví dụ 4: Trong số 100 người luôn luôn có ít nhất d100/12e = 9 là người có sinh
nhật trong cùng một tháng.
Ví dụ 5: Cần tạo ít nhất bao nhiêu mã vùng để đảm bảo cho 84 triệu máy điện
thoại mỗi máy một số thuê bao biết rằng mỗi số thuê bao gồm 7 chữ số, mà chữ số
đầu khác 0?
Giải: Theo Nguyên lý nhân, có 9 triệu số thuê bao khác nhau có đúng 7 chữ số,
trong đó chữ số đầu khác 0. Theo nguyên lý Dirichlet, trong số 84 triệu máy điện thoại
có ít nhất là d84/9e = 10 máy có cùng một số thuê bao.
Do đó để đảm bảo mỗi máy một số thuê bao cần tạo ra ít nhất là 10 mã vùng.
Ví dụ 6: Trong một tháng 30 ngày, một công nhân làm ít nhất một sản phẩm,
nhưng cả tháng không làm quá 45 sản phẩm. Chứng minh rằng có những ngày liên
tiếp người này làm ra 14 sản phẩm.
Giải: Gọi ai là số sản phẩm người đó làm từ ngày đầu đến hết ngày thứ i. Khi đó
a1 , a2 , . . . , a30 là một dãy số nguyên dương phân biệt và tăng dần với 1 ≤ ai ≤ 45. Hơn
thế nữa a1 + 14, a2 + 14, . . . , a30 + 14 cũng là một dãy số nguyên dương phân biệt và
tăng dần với 15 ≤ ai + 14 ≤ 59
Ta có 60 số nguyên dương a1 , a2 , . . . , a30 , a1 + 14, a2 + 14, . . . , a30 + 14 đều nhỏ hơn
hoặc bằng 59. Theo nguyên lí Dirichlet có ít nhất hai trong số 60 số này bằng nhau.
Vì các dãy a1 , a2 , . . . , a30 và dãy a1 + 14, a2 + 14, . . . , a30 + 14 gồm các số phân biệt nên
tồn tại các chỉ số i, j sao cho ai = aj + 14(j < i). Điều này có nghĩa là từ ngày j + 1
đến ngày i người này làm được 14 sản phẩm.
Ví dụ 7: Chứng tỏ rằng trong n + 1 số nguyên dương không vượt quá 2n, tồn tại ít
nhất một số chia hết cho một số khác trong đó.
Giải: Ta viết mỗi số a1 , a2 , . . . , an+1 dưới dạng tích của một lũy thừa cơ số 2 với
một số lẻ. Nói cách khác ai = 2ki .qi , trong đó ki là một số nguyên không âm, qi là
một số lẻ nhỏ hơn 2n. Vì chỉ có n số nguyên dương lẻ khác nhau nhỏ hơn 2n nên theo
nguyên lí Dirichlet tồn tại hai số lẻ trong q1 , q2 , . . . , qn+1 bằng nhau, tức là có 2 chỉ số
i, j sao cho qi = qj = q. Khi đó ai = 2ki q và aj = 2kj q. Suy ra, nếu ki ≤ kj thì aj chia
hết cho ai , trong trường hợp ngược lại thì ai chia hết cho aj .

2.5 Hệ thức đệ qui


2.5.1 Khái niệm và các ví dụ
Một bài toán đếm được giải bằng các kĩ thuật đếm trong các tiết trước cũng có thể
giải được bằng cách tìm các mối quan hệ, gọi là quan hệ đệ qui, giữa các số hạng của

Nguyễn Minh Trí 25


Bài giảng TOÁN RỜI RẠC

dãy.
Ví dụ: Một cầu thang có n bậc. Mỗi bước đi gồm 1 hoặc 2 bậc. Hỏi có bao nhiêu
cách đi hết cầu thang?

Định nghĩa: Một hệ thức đệ qui tuyến tính cấp k là một hệ thức có dạng:

a0 xn + a1 xn−1 + · · · + ak xn−k = fn (1)

trong đó a0 6= 0, a1 , . . . , an là các số thực;


{fn } là một dãy số thực cho trước;
{xn } là dãy ẩn nhận các giá trị thực.
Trường hợp fn = 0 thì (1) trở thành

a0 xn + a1 xn−1 + · · · + ak xn−k = 0(2)

Ta nói (2) là một hệ thức đệ qui tuyến tính thuần nhất cấp k.
Ví dụ: xn + 2xn−1 − 3xn−2 = n2 − 3n
−2xn + 3xn−2 = n2 + 1
xn + 2xn−1 = 0

2.5.2 Nghiệm tổng quát và nghiệm riêng


Mỗi dãy {xn } thỏa (1) được gọi là một nghiệm của (1). Nhận xét rằng mỗi nghiệm
{xn } của (1) được hoàn toàn xác định bởi k giá trị ban đầu x0 , x1 , . . . , xk−1 .
Họ dãy số {xn = xn (C1 , C2 , . . . , Ck )} phụ thuộc vào k họ tham số C1 , C2 , . . . , Ck
được gọi là nghiệm tổng quát của (1) nếu mọi dãy của họ này đều là nghiệm của (1)
Với k giá trị ban đầu y0 , y1 , . . . , yk−1 , tồn tại duy nhất các giá trị của k tham số
C1 , C2 , . . . , Ck sao cho nghiệm {xn } tương ứng thỏa

x0 = y0 , x1 = y1 , . . . , xk−1 = yk−1 (∗)

Khi đó, nghiệm {xn } tương ứng được gọi nghiệm riêng ứng với điều kiện ban đầu (*).
Giải một hệ thức đệ qui là đi tìm nghiệm tổng quát của nó; nhưng nếu hệ thức đệ
qui có kèm theo điều kiện ban đầu, ta phải tìm nghiệm riêng thỏa điều kiện ban đầu
đó.
Ví dụ:  3 n
2xn − 3xn−1 = 0 có nghiệm tổng quát xn =
2  1 n
2xn − 3xn−1 + xn−2 = 0 có nghiệm tổng quát xn = C1 + C2
2
Ta quay lại bài toán trong ví dụ ban đầu. "Một cầu thang có n bậc. Mỗi bước đi
gồm 1 hoặc 2 bậc. Hỏi có bao nhiêu cách đi hết cầu thang?". Gọi xn là số cách đi hết
n bậc thang.

• Nếu n = 1 thì x1 = 1
• Nếu n = 2 thì x2 = 2
• Nếu n > 2, để khảo sát xn ta chia thành 2 trường hợp:
– TH1: Bước đầu tiên gồm 1 bậc. Khi đó cầu thang còn lại n − 1 bậc và có
xn−1 cách để đi hết n − 1 bậc thang này.
– TH2: Bước đầu tiên gồm 2 bậc. Khi đó cầu thang còn lại n − 2 bậc và có
xn−2 cách để đi hết n − 2 bậc thang này.

Nguyễn Minh Trí 26


Bài giảng TOÁN RỜI RẠC

Theo nguyên lí cộng, số cách đi hết n bậc thang này là xn−1 + xn−2 .
Do đó ta có xn = xn−1 + xn−2 hay xn − xn−1 − xn−2 = 0
Vậy ta có hệ thức đệ qui tuyến tính thuần nhất cấp 2 là:
(
xn − xn−1 − xn−2 = 0
x1 = 1; x2 = 2

Ví dụ: Có 3 cọc A, B, C và n đĩa (có lỗ để đặt vào cọc) với đường kính đôi một
khác nhau. Nguyên tắc đặt đĩa vào cọc là: mỗi đĩa chỉ được chồng lên đĩa lớn hơn nó.
Ban đầu, cả n đĩa được đặt chồng lên nhau ở cọc A, hai cọc B và C để trống. Vấn đề
đặt ra là chuyển cả n đĩa ở cọc A sang cọc C (có thể qua trung gian cọc B), mỗi lần
chỉ chuyển một đĩa. Gọi xn là số lần chuyển đĩa. Tìm một hệ thức đệ qui cho xn
Giải:

• Với n = 1 ta có x1 = 1.

• Với n > 1, trước hết ta chuyển n − 1 đĩa bên trên sang cọc B qua trung gian cọc
C (giữ nguyên đĩa thứ n dưới cùng ở cọc A). Số lần chuyển n − 1 đĩa đó là xn−1 .
Sau đó ta chuyển đĩa thứ n từ cọc A sang cọc C. Cuối cùng ta chuyển n − 1 đĩa
từ cọc B sang cọc C. Số lần chuyển n − 1 đĩa đó lại là xn−1 .
Như vậy số lần chuyển toàn bộ n đĩa từ A sang C là:

xn−1 + 1 + xn−1 = 2xn−1 + 1

Nghĩa là xn = 2xn−1 + 1, ta có hệ thức đệ qui tuyến tính không thuần nhất cấp
1: (
xn = 2xn−1 + 1
x1 = 1

2.5.3 Hệ thức đệ qui tuyến tính thuần nhất


Xét hệ thức đệ qui tuyến tính thuần nhất

a0 xn + a1 xn−1 + · · · + ak xn−k = 0(2)

Phương trình đặc trưng của (2) là phương trình bậc k định bởi:

a0 λk + a1 λk−1 + · · · + ak = 0(∗)

• Trường hợp 1: k = 1
a1
Phương trình đặc trưng (*) trở thành a0 λ + a1 = 0 nên có nghiệm là λ = − .
a0
Khi đó, (2) có nghiệm tổng quát là:

xn = Cλn

Ví dụ:
(
2xn − 3xn−1 = 0
x0 = 1

Nguyễn Minh Trí 27


Bài giảng TOÁN RỜI RẠC

3
Phương trình đặc trưng: 2λ − 3 = 0 có nghiệm λ = −
2
Nên hệ thức có nghiệm tổng quát là:
 3 n
xn = C
2
Từ điều kiện x0 = 1 ta có C = 1. Vậy nghiệm của hệ thức là:
 3 n
xn =
2

• Trường hợp k = 2
Phương trình đặc trưng (∗) trở thành

a0 λ2 + a1 λ + a2 = 0(∗∗)

Người ta chứng minh được kết quả sau:

1. Nếu (∗∗) có 2 nghiệm phân biệt λ1 và λ2 thì (2) có nghiệm tổng quát là:

xn = C1 λn1 + C2 λn2

2. Nếu (∗∗) có nghiệm kép r thì (2) có nghiệm tổng quát là:

xn = (C1 + nC2 )λn

Ví dụ: Giải các hệ thức đệ qui


( n − 3xn−1 + xn−2 = 0
a. 2x
4xn − 12xn−1 + 9xn−2 = 0
b.
x0 = 2; x1 = 4

2.5.4 Hệ thức đệ qui tuyến tính không thuần nhất


Xét một hệ thức đệ qui tuyến tính không thuần nhất

a0 xn + a1 xn−1 + · · · + ak xn−k = fn (1)(1)

Hệ thức đệ qui tuyến tính thuần nhất tương ứng là

a0 xn + a1 xn−1 + · · · + ak xn−k = 0(2)

Phương trình đặc trưng của (2) là:

a0 λk + a1 λk−1 + · · · + ak = 0(∗)

Khi đó: Nghiệm tổng quát của (1)= nghiệm tổng quát của (2) + một nghiệm riêng
của (1)
Cách tìm một nghiệm riêng của (1) khi vế phải fn của (1) có dạng đặc biệt như
sau:
Dạng 1. fn = αn Pr (n) trong đó Pr là một đa thức bậc r, α là một hằng số.

Dạng 2. fn = fn1 + fn2 + . . . + fns , trong đó các fn1 , fn2 , . . . , fns thuộc dạng 1 đã xét
ở trên

Nguyễn Minh Trí 28


Bài giảng TOÁN RỜI RẠC

Dạng 1: fn = αn Pr (n)
TH1: α không là nghiệm của phương trình đặc trưng.
(1) có một nghiệm riêng dạng:

xn = αn Qr (n)

TH2: α là nghiệm đơn của phương trình đặc trưng.


(1) có một nghiệm riêng dạng:

xn = nαn Qr (n)

TH3: α là nghiệm kép của phương trình đặc trưng.


(1) có một nghiệm riêng dạng:

xn = n2 αn Qr (n)

Trong đó Qr (n) là một đa thức bậc r

Qr (n) = Ar nr + Ar−1 nr−1 + · · · + A1 n + A0

Để xác định các hệ số Ai bên trên ta cần thế xn , xn−1 , . . . , xn−k vào (1) và cho n nhận
r + 1 giá trị nguyên nào đó hoặc đồng nhất các hệ số tương ứng ở hai vế để được một
hệ phương trình. Các hệ số trên là nghiệm của hệ phương trình này.

Dạng 2: fn = fn1 + fn2 + . . . + fns


Bằng cách như trên ta tìm được nghiệm riêng xni (1 ≤ i ≤ s) của hệ thức đệ qui:

a0 xn + a1 xn−1 + . . . + ak xn−k = fni

Khi đó xn = xn1 + xn2 + . . . + xns là nghiệm riêng của (1)


Ví dụ 1: 2xn − 3xn+1 + xn+2 = 4n − 1(1)
Giải:
Hệ thức đệ qui tuyến tính thuần nhất là

2xn − 3xn+1 + xn+2 = 0(2)

Phương trình đặc trưng của (2) là:

2λ2 − 3λ + 1 = 0
1
Có hai nghiệm thực là λ1 = 1, λ2 =
2
Do đó nghiệm tổng quát của (2) có dạng
 1 n
xn = C 1 + C 2
2
Bây giờ, ta tìm một nghiệm riêng của (1)
Vế phải của 1 là fn = 1n .(4n + 1) có dạng Pr (n) là đa thức bậc r = 1 theo n.
Vì λ = 1 là nghiệm của phương trình đặc trưng (*) nên (1) có nghiệm riêng có
dạng:
xn = n(an + b)(4)

Nguyễn Minh Trí 29


Bài giảng TOÁN RỜI RẠC

Thế (4) vào (1) ta được:

2n(an + b) − 3(n − 1)[a(n − 1) + b] + (n − 2)[a(n − 2) + b] = 4n + 1


Cho n lần lượt nhân hai giá trị n = 0; n = 1 ta được hệ:
(
a+b=1
3a + b = 5

Giải hệ trên ta được a = 2, b = −1. Thế vào (4) ta tìm được 1 nghiệm riêng của (1)

xn = n(2n − 1)(5)

Từ (3) và (5), suy ra nghiệm tổng quát của (1) là


 1 n
xn = C 1 + C 2 + n(2n − 1)
2
Ví dụ 2: Giải hệ thức đệ qui
(
xn+1 − 6xn + 9xn−1 = (18n + 12).3n
x0 = 2; x1 = 0

Giải:
Xét hệ thức đệ qui

xn+1 − 6xn + 9xn−1 = (18n + 12).3n (1)

Hệ thức đệ qui tuyến tính thuần nhất:

xn+1 − 6xn + 9xn−1 = 0(2)

Phương trình đặc trưng của (2)

λ2 − 6λ + 9 = 0

có nghiệm kép λ = 3
Do đó nghiệm tổng quát của (2) là

xn = (C1 + nC2 )3n (3)

Ta tìm một nghiệm riêng của (1).


Về phải của (1) là một đa thức f (n) = (18n + 12).3n có dạng αn .Pr (n) trong đó
α = 3 là nghiệm của phương trình đặc trưng và Pr (n) là đa thức bậc 1 theo n.
Vì α = 3 là nghiệm kép của phương trình đặc trưng nên nghiệm riêng có dạng

xn = n2 (an + b).3n (4)

Thế (4) vào (1) ta được

(n + 1)2 [a(n + 1) + b].3n+1 − 6n2 (an + b).3n + 9(n − 1)2 [a(n − 1) + b].3n−1 = (18n + 12).3n

Cho n lần lượt bằng 0 và 1 ta được


(
6b = 12
54a + 18b = 90

Nguyễn Minh Trí 30


Bài giảng TOÁN RỜI RẠC

Giải hệ trên ta được a = 1, b = 2 thế vào (4) ta được 1 nghiệm riêng của (1) là
xn = n2 (n + 2).3n (5)
Từ (3) và (5) ta được nghiệm tổng quát của (1) là
xn = (C1 + nC2 ).3n + n2 (n + 2).3n (6)
Thay điều kiện x0 = 2, x1 = 0 vào (6) ta được
(
C1 = 2
3C1 + 3C2 + 9 = 0

Ta có C1 = 2, C2 = −5
Thế vào (6), ta có nghiệm cần tìm là:
xn = (2 − 5n).3n + n2 (n + 2).3n
Ví dụ 3: Giải hệ thức đệ qui
xn − 4xn−1 + 3xn−2 = 20 + (2 − n)2n−2 + 3.4n (1)
Giải:
Hệ thức đệ qui tuyến tính thuần nhất:
xn − 4xn−1 + 3xn−2 = 0(2)
Phương trình đặc trưng của (2)
λ2 − 4λ + 3 = 0
có 2 nghiệm thực phân biệt λ1 = 1, λ2 = 3
Do đó nghiệm tổng quát của (2) có dạng:
xn = C1 + C2 .3n
Tiếp theo ta xét 1 nghiệm riêng của (1)
Ta có fn = 20 + (2 − n)2n−2 + 3.4n , do đó ta phải xét các hệ thức đệ qui sau:
• xn − 4xn−1 + 3xn−2 = 20(3)
• xn − 4xn−1 + 3xn−2 = (2 − n)2n−2 (4)
• xn − 4xn−1 + 3xn−2 = 3.4n (5)
Lí luận tương tự như ví dụ trên ta tìm được các nghiệm riêng:
• Một nghiệm riêng của (3) là xn1 = −10n
• Một nghiệm riêng của (4) là xn2 = n2n
• Một nghiệm riêng của (5) là xn3 = 4n+2
Suy ra một nghiệm riêng của (1) là
xn = −10n + n2n + 4n+2 (6)
Từ (3) và (6) ta có nghiệm tổng quát của (1) là:
xn = C1 + C2 .3n − 10n + n2n + 4n+2

Nguyễn Minh Trí 31


Bài giảng TOÁN RỜI RẠC

Bài tập
Bài 14. Cho f : R → R xác định bởi f (x) = x2 . Hãy tìm f (A) và f −1 (A) với A là
các tập hợp sau:
a. A = {4, 8}
b. A = {−8, −4, 4, 8}
c. A = [−2, 4)
d. A = {[4, 9]}
Bài 15. Với mỗi ánh xạ f : Z → Z, hãy xét xem nó có là đơn ánh hay toàn ánh
không?
a. f (x) = x + 7
b. f (x) = 2x − 3
c. f (x) = x2 + x
d. f (x) = |x|
Bài 16. Cũng câu hỏi tương tự nhưng ánh xạ đối với ánh xạ f : R → R
Bài 17. Xét ánh xạ f : R → R được định nghĩa bởi:

x + 7 nếu x ≤ 0

f (x) = −2x + 5 nếu 0 < x < 3

x − 1 nếu x ≥ 3

a. Tìm f (1), f −1 (0), f −1 (2), f −1 (6)


b. Tìm tạo ảnh của [−5, −1], [2, 4]
Bài 18. Cho S = {1, 2, 3, 4, 5, 6, 7, 8, 9.10}. Có bao nhiêu tập con A của S thỏa;
a. |A| = 5
b. |A| = 5 và phần tử bé nhất của A là 3?
c. |A| = 5 và phần tử bé nhất của A bé hơn hay bằng 3?
Bài 19. Có 7 sinh viên, có bao nhiêu cách chia họ thành 2 đội? Nếu yêu cầu mỗi đội
có ít nhất 2 sinh viên thì có bao nhiêu cách?
Bài 20. Tìm số nguyện nguyên không âm của phương trình

x1 + x2 + x3 + x4 = 32

a. Có tất cả bao nhiêu nghiệm?


b. Các nghiệm thỏa x1 , x2 ≥ 5, x3 , x4 ≥ 7
c. Các nghiệm thỏa x1 , x2 , x3 , x4 > 7
Bài 21. Bất đẳng thức
x1 + x2 + x3 ≤ 11
có bao nhiêu nghiệm nguyên không âm?
Bài 22. Một tiểu ban gồm 12 người được chọn trong số 10 đại biểu nữ và 10 đại biểu
nam. Hỏi có bao nhiêu cách chon? Biết rằng:
a. Không có hạn chế nào cả
b. Phải có 6 nam và 6 nữ
c. Số nữ phải là số chẵn
d. Phải có nhiều nữ hơn nam
e. Phải có ít nhất 8 nam
Bài 23. Có thể chia 12 quyển sách khác nhau cho 4 đứa trẻ theo bao nhiêu cách? Biết
rằng:
a. Mỗi đứa trẻ được 3 quyển sách
b. Hai đứa lớn nhất được 4 quyển sách mỗi đứa và hai đứa bé nhất được 2 quyển
mỗi đứa

Nguyễn Minh Trí 32


Bài giảng TOÁN RỜI RẠC

Bài 24. Trong tổng số 2504 sinh viên của khoa công nghệ thông tin, có 1876 theo học
môn ngôn ngữ lập trình Pascal, 999 học môn ngôn ngữ Fortran và 345 học ngôn ngữ
C. Ngoài ra còn biết 876 sinh viên học cả Pascal và Fortran, 232 học cả Fortran và C,
290 học cả Pascal và C. Nếu 189 sinh viên học cả 3 môn Pascal, Fortran và C thì trong
trường hợp đó có bao nhiêu sinh viên không học môn nào trong 3 môn ngôn ngữ lập
trình kể trên?
Bài 25. Trong lớp có 34 học sinh, khi viết chính tả em Thu đã mắc 10 lỗi, các em
khác không có em nào mắc nhiều lỗi hơn. Chứng minh rằng có ít nhất 4 em đã mắc
một số lỗi giống nhau.
Bài 26. Có 10 số tự nhiên bất kì: a1 , a2 , . . . , a10
Chứng minh rằng có 1 số hoặc tổng một số liên tiếp nhau trong dãy 10 số đã cho
chia hết cho 10.
Bài 27. Chứng minh rằng trong 35 sinh viên của lớp công nghệ phần mềm, có hai
người có số người quen như nhau. (kể cả trường hợp quen 0 người)
Bài 28. Phải tung 1 con xúc sắc bao nhiêu lần để có một mặt xuất hiện ít nhất:
a. 2 lần
b. 3 lần
c. n lần với n ≥ 4
Bài 29. Cho 10 số tự nhiên bất kì. Chứng minh rằng có 1 số hoặc tổng một số liên
tiếp nhau trong dãy 10 số đã cho chia hết cho 10.
Bài 30. a. Tìm nghiệm tổng quát của hệ thức đệ qui

xn = 6xn−1 − 9xn−2

b. Tìm nghiệm tổng quát của hệ thức đệ qui


(
xn = 6xn−1 − 9xn−2 + 2.4n
x0 = 12; x1 = 8

Bài 31. a. Tìm nghiệm tổng quát của hệ thức đệ qui

xn = 4xn−1 − 4xn−2

b. Tìm nghiệm tổng quát của hệ thức đệ qui


(
xn = 4xn−1 − 4xn−2 + 3.2n+1
x0 = 4; x1 = 4

Bài 32. a. Tìm nghiệm tổng quát của hệ thức đệ qui

xn = xn−1 + 6xn−2

b. Tìm nghiệm tổng quát của hệ thức đệ qui


(
xn = xn−1 + 6xn−2 + 50n3n−1
x0 = 1; x1 = 5

Bài 33. Một người gửi 100 triệu đồng vào một 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 đó được hưởng hai khoản tiền lãi. Khoản thứ nhất là
20% tổng số tiền có trong tài khoản cả năm, khoản lãi thứ hai là 45% của tổng số tiền

Nguyễn Minh Trí 33


Bài giảng TOÁN RỜI RẠC

có trong tài khoản của năm trước đó. Gọi Pn là số tiền có trong tài khoản vào cuối
năm thứ n.
a. Tìm công thức truy hồi cho Pn
b. Tìm biểu thức của Pn theo n.
Bài 34. Tìm hệ thức đệ qui cho xn , trong đó xn là số miền của mặt phẳng bị phân
chia bởi n đường thẳng trong đó không có hai đường nào song song và không có ba
đường nào đồng qui. Tìm xn .

Nguyễn Minh Trí 34


Chương 3

Quan hệ

3.1 Quan hệ
3.1.1 Định nghĩa quan hệ
Tích Descartes Cho hai tập hợp A và B tùy ý khác rỗng. Ta gọi tích Descartes
của hai tập hợp A và B, kí hiệu A × B là tập hợp các cặp sắp thứ tự (a, b) trong đó
a ∈ A, b ∈ B
A × B = {(a, b)|a ∈ A ∧ b ∈ B}
Ví dụ: Cho A = {1, 2, 3}, B = {x, y}

A × B = {(1, x), (1, y), (2, x), (2, y), (3, x), (3, y)}

Nhận xét:

• Ta có A × B 6= B × A

• Ta qui ước A × ∅ = ∅ × A = ∅

• Nếu B = A thì ta có thể viết A × A = A2

Quan hệ Một quan hệ hai ngôi R từ tập A đến tập B là tập con của tích Descartes
R ⊂ A × B.
Chúng ta sẽ viết aRb thay cho (a, b) ∈ R
Quan hệ từ A đến chính nó được gọi là quan hệ trên A
Ví dụ: R là quan hệ "bằng nhau" trên tập N
R = {(x, y) ∈ N2 |x = y} hay ∀x, y ∈ N : xRy ⇔ x = y
S là quan hệ "bé hơn hoặc bằng" trên tập các số thực R :

∀x, y ∈ R : xSy ⇔ x ≤ y

T là quan hệ "có cùng số dư khi chia cho m" trên tập Z :

.
∀x, y ∈ Z : xT y ⇔ (x − y)..m

Quan hệ này được gọi là đồng dư modulo m và chúng ta viết x ≡ y (mod m) thay
vì xT y

35
Bài giảng TOÁN RỜI RẠC

3.1.2 Các tính chất của quan hệ


Tính chất phản xạ Quan hệ hai ngôi S trên tập X gọi là có tính chất phản xạ nếu
∀x ∈ X : xSx
Ví dụ: Quan hệ R, S, T có tính phản xạ.

Tính chất đối xứng Quan hệ hai ngôi S trên tập X gọi là có tính chất đối xứng
∀x, y ∈ X : xSy ⇒ ySx
Ví dụ: Quan hệ R, T có tính đối xứng, quan hệ S không có tính đối xứng.

Tính chất phản đối xứng Quan hệ hai ngôi S trên tập X gọi là có tính chất phản
đối xứng 
xSy
∀x, y ∈ X : ⇒x=y
ySx
Ví dụ: Quan hệ R, S có tính phản đối xứng, quan hệ T không có tính đối xứng.

Tính chất bắc cầu Quan hệ hai ngôi S trên tập X gọi là có tính chất bắc cầu

xSy
∀x, y, z ∈ X : ⇒ xSz
ySz
Ví dụ: Quan hệ R, S, T có tính bắc cầu.

3.1.3 Biểu diễn quan hệ


Cho R là quan hệ từ A = {1, 2, 3, 4} đến B = {u, v, w}:
R = {(1, u), (1, v), (2, w), (3, w), (4, u)}
Khi đó R có thể biễu diễn như sau
u v w
1 1 1 0
2 0 0 1
3 0 0 1
4 1 0 0
Đây là ma trận cấp 4 × 3 biễu diễn cho quan hệ R

Định nghĩa Cho R là quan hệ từ A = {a1 , a2 , . . . , am } đến B = {b1 , b2 , . . . , bn }.


Matrận biểu diễn của R là ma trận cấp m × n MR = [mij ] xác định bởi
(
1 nếu (ai , bj ) ∈ R
mij =
0 nếu (ai , bj ) 6∈ R
Ví dụ: Cho R là quan hệ từ A = {a, b, c} đến B = {s, t, u, v} có ma trận biểu diễn
 
1 0 0 1
0 0 0 1
0 1 1 1
Khi đó quan hệ R gồm các cặp:
(a, s), (a, v), (b, v), (c, t), (c, u), (c, v)

Nguyễn Minh Trí 36


Bài giảng TOÁN RỜI RẠC

3.2 Quan hệ tương đương


Quan hệ hai ngôi R trên tập X gọi là quan hệ tương đương nếu nó có các tính chất
phản xạ, đối xứng và bắc cầu.
Ví dụ: Các quan hệ R (bằng nhau trên N), T (có cùng số dư khi chia cho 3 trên
tập Z) là các quan hệ tương đương.

Lớp tương đương Giả sử R là một quan hệ tương đương trên tập X và a ∈ X. Khi
đó lớp tương đương của a là tập hợp

{x ∈ X|xRa}

Lớp tương đương của a kí hiệu a hay [a].


Ví dụ:

• Xét quan hệ "bằng nhau" trên tập các số tự nhiên. Ta có [4] = {4}

• Xét quan hệ "có cùng số dư khi chia cho 3" trên tập các số tự nhiên N. Ta có
5 = {2, 5, 8, 11, 14, . . .}

Định lí 3 Giả sử R là một quan hệ tương đương trên tập X và x, y ∈ X ta có các kết
quả sau

1. ∀x ∈ X : x ∈ x hay x 6= ∅

2. x = y ⇔ xRy

3. x = y hoặc x ∩ y = ∅

Chú ý. Các lớp tương đương theo một quan hệ tương đương trên X tạo nên một phân
họach trên X, nghĩa là chúng chia tập X thành các tập con rời nhau.

3.3 Quan hệ thứ tự


Quan hệ hai ngôi R trên tập X gọi là quan hệ thứ tự nếu nó có các tính chất: phản
xạ, phản đối xứng, bắc cầu.
Ta thường kí hiệu quan hệ thứ tự bởi ≺.
Cặp (X, ≺) được gọi là một tập sắp thứ tự hay poset.
Ví dụ:

• Quan hệ "chia hết cho" trên tập N∗ (Chứng minh xem như bài tập)

• Quan hệ "bé hơn hoặc bằng" trên tập các số thực R

Các phần tử a và b của poset (X, ≺) gọi là so sánh được nếu a ≺ b hoặc b ≺ a.
Ngược lại, ta nói a, b không so sánh được.
Cho (X, ≺), nếu hai phần tử tùy ý của X đều so sánh được với nhau thì ta gọi nó
là tập sắp thứ tự toàn phần.
Ta cũng nói rằng ≺ là thứ tự toàn phần hay thứ tự tuyến tính trên X
Ví dụ: Quan hệ "≤” trên tập số thực là thứ tự toàn phần.
Quan hệ “chia hết cho” trên tập hợp số nguyên dương không là thứ tự toàn phần,
vì các số 5 và 7 là không so sánh được.

Nguyễn Minh Trí 37


Bài giảng TOÁN RỜI RẠC

Thứ tự từ điển Trên tập các chuỗi bit có độ dài n ta có thể định nghĩa thứ tự như
sau:
a1 a2 . . . nn ≤ b1 b2 . . . bn
khi và chỉ khi ai ≤ bi , ∀i.
Với thứ tự này thì các chuỗi 0110 và 1000 là không so sánh được với nhau. Chúng
ta không thể nói chuỗi nào lớn hơn.
Trong tin học chúng ta thường sử dụng thứ tự toàn phần trên các chuỗi bit.
Đó là thứ tự tự điển.
0
Cho (A, ≤) và (B, ≤ ) là hai tập sắp thứ tự toàn phần. Ta định nghĩa thứ tự ≺
trên A × B như sau
(a1 , b1 ) ≺ (a2 , b2 )
0
nếu a1 < a2 hay (a1 = a2 và b1 < b2 )
Dễ dàng thấy rằng đây là thứ tự toàn phần trên A × B. Ta gọi nó là thứ tự tự điển .
0
Chú ý rằng nếu A và B được sắp tốt bởi ≤ và ≤ ,tương ứng thì A × B cũng được
sắp tốt bởi thứ tự ≺
Chúng ta cũng có thể mở rộng định nghĩa trên cho tích Descartess của hữu hạn tập
sắp thứ tự toàn phần.
P P
ChoP là một tập hữu hạn (ta gọi là bảng chữ cái). Tập hợp các chuỗi trên , ký
hiệu là ∗ , xác định bởi
. λ ∈ ∗ , trong đó λ là chuỗi rỗng.
P

. Nếu x ∈ ∗ và w ∈ ∗ thì wx ∈ ∗ , trong đó wx là kết nối w với x.


P P P
P
Ví dụ. Chẳng hạn = {a, b, c}. Thế thì
P∗
= {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .}
P
Giả Psử ≤ là thứ tự toàn phần trên , khi đó ta có thể định nghĩa thứ tự toàn phần
≺ trên ∗ như sau.
Cho s = a1 a2 . . . am và t = b1 b2 . . . bn là hai chuỗi trên ∗
P

Khi đó s ≺ t nếu

• Hoặc ai = bi đối với 1 ≤ i ≤ m, tức là

t = a1 a2 . . . am bm+1 bm+2 . . . bn

• Hoặc tồn tại k < m sao cho


ai = bi với 1 ≤ i ≤ k và ak+1 < bk+1 , nghĩa là

s = a1 a2 . . . ak ak+1 ak+2 . . . am

t = a1 a2 . . . ak bk+1 bk+2 . . . bn
P∗
ChúngP∗ ta có thể kiểm tra ≺ là thứ tự toàn phần trên Ta gọi nó là thứ tự từ điển
trên
P
Ví dụ 1: Nếu là bảng chữ cái tiếng Anh với thứ tự: a < b < . . . < z, thì thứ tự
nói trên là thứ tự thông thường giữa các từ trong Từ điển.
P
Ví dụ P2: Nếu = {0, 1} với 0 < 1, thì ≺ là thứ tự toàn phần trên tập tất cả các

chuỗi bit .
0110 ≺ 10
0110 ≺ 01100

Nguyễn Minh Trí 38


Bài giảng TOÁN RỜI RẠC

Biểu đồ Hasse Mỗi poset có thể biễu diễn bởi đồ thị đặc biệt ta gọi là biểu đồ Hasse
Để định nghĩa biểu đồ Hasse chúng ta cần các khái niệm phần tử trội và trội trực
tiếp.
Phần tử b trong poset (X, ≺) được gọi là phần tử trội của phần tử a trong X nếu
a≺b
Chúng ta cũng nói rằng a là được trội bởi b. Phần tử b được gọi là trội trực tiếp
của a nếu b là trội của a, và không tồn tại trội c sao cho

a ≺ c ≺ b, a 6= c 6= b

Biểu đồ Hasse Biểu đồ Hasse của poset (X, ≺) là đồ thị:


i. Mỗi phần tử của X được biễu diễn bởi một điểm trên mặt phẳng.
ii. Nếu b là trội trực tiếp của a thì vẽ một cung đi từ a đến b .

Ví dụ: Biểu đồ Hasse của poset ({1, 2, 3, 4}, ≤) có thể vẽ như sau:

Chú ý: Chúng ta không vẽ mũi tên với qui ước mỗi cung đều đi từ dưới lên trên.
Ví dụ: Biểu đồ Hasse của các chuỗi bit độ dài 3 với thứ tự tự điển

Phần tử tối đại - Phần tử tối tiểu Xét poset có biểu đồ Hasse như dưới đây:
. Mỗi đỉnh màu đỏ là tối đại.
. Mỗi đỉnh màu xanh là tối tiểu.
. Không có cung nào xuất phát từ điểm tối đại.
. Không có cung nào kết thúc ở điểm tối tiểu.

Nguyễn Minh Trí 39


Bài giảng TOÁN RỜI RẠC

Chú ý: Trong một poset X hữu hạn, phần tử tối đại và phần tử tối tiểu luôn luôn
tồn tại.
.
Ví dụ 1: Tìm phần tử tối đại, tối tiểu của poset ({2, 4, 5, 10, 12, 20, 25}, ..)?
Ví dụ 2: Tìm phần tử tối đại, tối tiểu của poset các chuỗi bit độ dài 3?

Chặn trên - Chặn dưới Cho (S, ≺) là poset và A ⊂ S. Phần tử chặn trên của A
là phần tử x ∈ S (có thể thuộc A hoặc không) sao cho ∀a ∈ A, a ≺ x.
Phần tử chặn dưới của A là phần tử x ∈ S sao cho ∀a ∈ A, x ≺ a
Ví dụ: Cho S có biểu đồ Hasse như hình vẽ

Phần tử chặn trên của {g, j} là a


Cho (S, ≺) là một poset và A ⊂ S. Chặn trên nhỏ nhất của A là phần tử chặn trên
x của A sao cho mọi chặn trên y của A, ta đều có x ≺ y
Chặn dưới lớn nhất của A là phần tử chặn dưới x của A sao cho mọi chặn dưới y
của A, ta có y ≺ x.
Chặn trên nhỏ nhất của : supA
Chặn dưới lớn nhất: infA
Ví dụ: Chặn trên nhỏ nhất của {i, j} là d

Nguyễn Minh Trí 40


Bài giảng TOÁN RỜI RẠC

Chặn trên nhỏ nhất (nếu có) của A = {a, b} đựơc ký hiệu bởi a ∨ b
Chặn dưới lớn nhất (nếu có) của A = {a, b} đựoc ký hiệu bởi a ∧ b
Ví dụ: i ∨ j = d c ∧ b = f

Bài tập

Bài 35. Hãy xét các tính chất phản xạ, đối xứng, phản đối xứng và bắc cầu của các
quan hệ sau:
a. Quan hệ R trên tâp Z : xRy ⇔ x + y là số chẵn
b. Quan hệ R trên tâp Z : xRy ⇔ x − y là số lẻ
c. Quan hệ R trên tâp R : xRy ⇔ |x| = |y|
Bài 36. Quan hệ R trên tâp Z+ được định nghĩa bởi

xRy ⇔ ∃n ∈ N : x = y2n

a. Chứng minh R là một quan hệ tương đương


b. Tìm các lớp tương đương [1], [2], [3], [4], [24]
Bài 37. Vẽ biểu đồ Hasse cho tập hợp sắp thứ tự (P (E), ⊂) trong đó E = {1, 2, 3, 4}
Bài 38. Trên tập N × N cho quan hệ hai ngôi R như sau:

(a, b)R(c, d) ⇔ a + d = b + c

a. Chứng minh R là quan hệ tương đương.


b. Tìm lớp tương đương [(1, 0)], [(1, 2)]

Nguyễn Minh Trí 41


Bài giảng TOÁN RỜI RẠC

Nguyễn Minh Trí 42


Chương 4

Đại số Bool và hàm Bool

4.1 Đại số Bool


4.1.1 Định nghĩa và các ví dụ
Một đại số Bool (A, ∨, ∧) là một tập hợp A 6= ∅ với hai phép toán ∨, ∧, tức là hai ánh
xạ:
∨:A×A →A
(x, y) 7→ x ∨ y
∧:A×A →A
(x, y) 7→ x ∧ y

thỏa 5 tính chất sau:


1. Tính kết hợp: ∀a, y, z ∈ A

x ∨ (y ∨ z) = (x ∨ y) ∨ z

x ∧ (y ∧ z) = (x ∧ y) ∧ z
2. Tính giao hoán: ∀x, y ∈ A
x∨y =y∨x

x∧y =y∧x
3. Tính phân phối: ∀a, y, z ∈ A

x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)

x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∧ z)
4. Phần tử trung hòa 0 và 1: ∀x ∈ A

x ∨ 0 = x, x∧1=x

5. Phần tử bù: với mọi x ∈ A tồn tại x ∈ A sao cho:

x ∧ x = 0, x∨x=1

Nếu không dùng các dấu ngoặc thì thứ tự thực hiện các phép toán như sau: trước hết
thực hiện tất cả các phép lấy phần bù, sau đó đến ∧ rồi đến ∨

43
Bài giảng TOÁN RỜI RẠC

Ví dụ 1. Đại số logic là một đại số Bool, với A là tập hợp tất cả các mệnh đề, các
phép ∧, ∨, ¬; các hằng đúng và hằng sai tương ứng các phần tử trung hòa 1 và 0.
2. Cho B = {0, 1}. Trên B ta định nghĩa 2 phép toán ∧, ∨ như sau

x ∧ y = xy
x ∨ y = x + y − xy
x=1−x
Hay ta có bảng giá trị như sau:

∧ 0 1 ∨ 0 1
0 0 0 0 0 1
1 0 1 1 1 1

Khi đó, B trở thành một đại số Bool. (Chứng minh xem như bài tập)
3. Xét F là tập hợp tất cả các dạng mệnh đề theo n biến p1 , p2 , . . . , pn với hai phép
toán hội ∧, phép toán tuyển ∨, trong đó ta đồng nhất các dạng mệnh đề tương đương.
Khi đó F là một đại số Bool với phần tử 1 là hằng đúng 1, phần tử 0 là hằng sai 0,
phần tử bù của dạng mệnh đề E là dạng mệnh đề ¬E
4. Xét A là tập hợp tất cả các tập con của một tập không rỗng X, với các phép
toán trên S như phép giao, phép hợp và phép lấy phần bù. Khi đó S cùng với các phép
toán trên là một đại số Bool.

4.1.2 Các định lí cơ bản


1. x ∧ 0 = 0; x∨1=1

2. x ∧ x = x; x∨x=x

3. x ∨ y = x ∧ y

4. x ∧ y = x ∨ y

5. x = x

6. x ∧ (x ∨ y) = x

7. x ∨ (x ∧ y) = x

8. 0 = 1; 1 = 0

Định lí 4 Trong đại số Bool A ta định nghĩa quan hệ

x≺y ⇔x∧y =x

Khi ấy ≺ là một quan hệ thứ tự trên A.

Chứng minh xem như bài tập. (HD: Ta cần kiểm tra các tính chất phản xạ, phản
đối xứng, bắc cầu.)
Chú ý: trên một đại số Bool có thể có rất nhiều quan hệ thứ tự khác. Mặc dầu
vậy, từ đây trở về sau khi ta nói đến quan hệ thứ tự trong đại số Bool mà không nói
gì thêm thì ta hiểu rằng đấy là quan hệ thứ tự như đã định nghĩa trong định lý trên.

Nguyễn Minh Trí 44


Bài giảng TOÁN RỜI RẠC

4.2 Hàm Bool


Xét sơ đồ mạch điện gồm 3 ngắt điện

Tùy theo các cách ngắt điện A, B, C được đóng hay mở mà ta có dòng điện đi từ
M đến N hay không. Để biết các ngắt điện điều khiển việc cho dòng điện đi qua hay
không, ta vẽ sơ đồ cho tất cả các trường hợp.
Ta lấy giá trị 1 nếu ngắt đóng và 0 nếu ngắt mở. Trong ví dụ trên có 3 ngắt điện
nên ta xem như đó là ba biến a, b, c, còn toàn mạch điện liên kết với một biết f lấy giá
trị 1 nếu có dòng điện đi qua và 0 nếu không có dòng điện đi qua. Tương ứng như vậy
ta có thể liệt kê các trường hợp trong bảng giá trị như sau:

a b c f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

Trong trường hợp số ngắt điện lớn thì việc lập bảng giá trị là không thực tế. Ta cần
tìm một công thức cho phép biểu diễn hàm f (a, b, c) theo các biến a, b, c như là một
hàm đa thức. Ta nhận xét rằng bẳng giá trị trên giống như bảng giá trị chân lí của
các dạng mệnh đề. Ta có thể đồng nhất dạng mệnh đề E(p, q, r, . . .) với bảng giá trị
chân lí của nó. Thực chất là ta xem hàm E(p, q, r, . . .) theo các biến p, q, r, . . . trong
đó p, q, r, . . . chỉ nhận giá trị 0, 1. Đó là các hàm Bool.

4.2.1 Hàm Bool


Hàm Bool n biến là ánh xạ f : B n → B, trong đó B = {0, 1}.
Nhận xét.

1. Nếu đồng nhất tập B = {0, 1} với tập các mệnh đề Đúng, Sai thì hàm Boole
cũng không phải là một khái niệm quá xa lạ: một hàm Boole chính là một dạng
mệnh đề (công thức logic – xem lại chương 1). Nó nhận các biến x1 , x2 , . . . , xn
chính là các biến mệnh đề và kết quả thu được cũng là cũng là một mệnh đề
(đúng hoặc sai). Các biến xuất hiện trọng hàm Bool gọi là biến Bool.

2. Tổng quát, một hàm Boole theo n biến sẽ là một hàm số theo n biến số, mỗi biến
số sẽ nhận giá trị 0 hoặc 1 và kết quả của hàm số cũng là giá trị 0 hoặc 1. Mặc
dù không nói ra nhưng ta vẫn phải hiểu rằng các phép toán biểu diễn trong công
thức của hàm Boole vẫn chính là các phép toán trong đại số Boole B = {0, 1}.

Nguyễn Minh Trí 45


Bài giảng TOÁN RỜI RẠC

Ký hiệu Fn để chỉ tập các hàm Bool n biến.


Ví dụ: Dạng mệnh đề E = E(p1 , p2 , . . . , pn ) theo n biến p1 , p2 , . . . , pn là một hàm
Bool n biến.
Xét hàm Bool n biến f (x1 , x2 , . . . , xn )
Vì mỗi biến xi chỉ nhận hai giá trị 0, 1 nên chỉ có 2n trường hợp của bộ biến
(x1 , x2 , . . . , xn ).
Do đó, để mô tả f ta có thể lập bảng gồm 2n hàng ghi tất cả các giá trị của f tùy
theo 2n trường hợp của biến. Ta gọi đây là bảng chân trị của f
Ví dụ: Xét kết quả f trong việc thông qua một quyết định dựa vào 3 phiếu bầu
x, y, z
Mỗi phiếu chỉ lấy một trong hai giá trị: 1 (tán thành) hoặc 0 (bác bỏ).
Kết quả f là 1 (thông qua quyết định) nếu được đa số phiếu tán thành, là 0 (không
thông qua quyết định) nếu đa số phiếu bác bỏ.
Khi đó f là hàm Bool theo 3 biến x, y, z có bảng chân trị như sau:
x y z f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Như vậy, mỗi hàm Boole sẽ tương ứng với một và chỉ một bảng chân trị. Nói cách khác,
hai hàm Boole có cùng bảng chân trị sẽ là hai hàm Boole bằng nhau (thực chất chỉ
được coi như là một hàm Boole duy nhất).
Nhận thấy rằng, việc xây dựng bảng chân trị của một hàm Boole hoàn toàn giống
như xây dựng bảng chân trị của một dạng mệnh đề (xem lại chương 1). Câu hỏi đặt
ra là: “Từ một bảng chân trị, làm thể nào ta xây dựng lại được công thức tường minh
của hàm Boole?”. Đây là một câu hỏi được đặt ra rất thực tế, chúng ta phải thường
xuyên xây dựng công thức của hàm Boole khi biết bảng chân trị của nó. Để thực hiện
được điều này, chúng ta phải quay lại kiến thức của đại số Boole đã học trong phần
trước.

4.2.2 Các phép toán trên hàm Bool


Phép cộng Bool ∨: Với f, g ∈ Fn , tổng Bool của f và g
f ∨ g = f + g − fg
∀x = (x1 , x2 , . . . , xn ) ∈ Bn : (f ∨ g)(x) = f (x) + g(x) − f (x)g(x) Ta chứng minh được:
f ∨ g ∈ Fn :
(f ∨ g)(x) = max{f (x), g(x)}

Phép nhân Bool ∧: Với f, g ∈ Fn , tích Bool của f và g


f ∧ g = fg
∀x = (x1 , x2 , . . . , xn ) ∈ Bn : (f ∧ g)(x) = f (x)g(x) Ta chứng minh được: f ∧ g ∈ Fn :
(f ∧ g)(x) = min{f (x), g(x)}
Ta thường viết f g thay cho f ∧ g

Nguyễn Minh Trí 46


Bài giảng TOÁN RỜI RẠC

Phép lấy hàm bù: Với f ∈ Fn , ta định nghĩa hàm bù của f như sau:

f =1−f

∀x = (x1 , x2 , . . . , xn ) ∈ Bn : f (x) = 1 − f (x)


Ta thấy rằng Fn với hai phép toán định nghĩa như trên sẽ là một đại số Boole. Đây
là một điều cũng hết sức thú vị khi các hàm Boole được định nghĩa thông qua đại số
Boole B = {0, 1} và bây giờ, tập hợp những hàm Boole theo n biến cũng sẽ lại là một
đại số Boole.

Thứ tự trên Fn : Với f, g ∈ Fn thì

f ≺ g ⇔ ∀x = (x1 , x2 , . . . , xn ) ∈ B n : F (x) ≤ g(x)

Để ý rằng, thông qua định nghĩa trên, một hàm Boole f được nói là “bé hơn” một hàm
Boole g nếu và chỉ nếu tại cùng một dòng trên bảng chân trị, giá trị của f (x) luôn bé
hơn hay bằng giá trị của g(x).

4.2.3 Biểu diễn các hàm Bool


Các hàm Bool cũng có thể thu được biểu diễn bằng cách dùng các biểu thức tạo bởi
các biến và các phép toán Bool. Các biểu thức Bool với các biến x1 , x2 , . . . , xn được
định nghĩa như sau:

• 0, 1, x1 , x2 , . . . , xn là các biểu thức Bool.

• Nếu E1 , E2 là các biểu thức Bool thì E1 , E1 ∧ E2 , E1 ∨ E2 cũng là các công thức
Bool

Mối một công thức Bool biểu diễn một hàm Bool. Các giá trị của hàm nhận được bằng
cách thay 0 và 1 bởi các biến có trong biểu thức.
Hai bài toán quan trọng của đại số Bool sẽ được nghiên cứu trong tiết này. Bài
toán thứ nhất: cho các giá trị của một hàm Bool, làm thế nào để tìm được biểu thức
Bool biểu diễn hàm đó? Bài toán này sẽ được giải bằng cách chứng minh rằng mọi hàm
Bool đều có thể biểu diễn bởi tổng các tích Bool của các biến và phần bù của chúng.
Lời giải của bài toán này chứng tỏ rằng mọi hàm Bool đều có thể biểu diễn bằng 3
toán tử Bool là ∨, ∧, −. Bài toán thứ hai là: liệu có một tập hợp nhỏ hơn các toán
tử biểu diễn hàm Bool hay không? Chúng ta sẽ trả lời bài toán này bằng cách chứng
minh rằng mọi hàm Bool đều có thể biểu diễn bằng cách chỉ dùng 1 toán tử. Cả hai
bài toán đều quan trọng trong việc thiết kế các mạch.

4.2.4 Dạng nối rời chính tắc


Chúng ta dùng các ví dụ để minh họa một phương pháp quan trọng để tìm biểu thức
Bool biểu diễn một hàm Bool.

Ví dụ 1: Tìm các biểu thức Bool biểu diễn các hàm Bool F (x, y, z) và G(x, y, z) có
các giá trị cho trong bảng

Nguyễn Minh Trí 47


Bài giảng TOÁN RỜI RẠC

x y z F G
0 0 0 0 0
0 0 1 0 0
0 1 0 0 1
0 1 1 0 0
1 0 0 0 0
1 0 1 1 0
1 1 0 0 1
1 1 1 0 0
Giải: Ta cần một biểu thức có giá trị 1 khi x = z = 1 và y = 0 và có giá trị băng
0 trong các trường hợp còn lại để biểu diễn hàm F . Có thể lập một biểu thức như vậy
bằng cách lấy tích của x, y và z. Tích xyz có giá trị 1 nếu và chỉ nếu x = y = z = 1
Tương tự, hàm G = xyz ∨ xyz

Định nghĩa Xét tập hợp các hàm Bool của n biến Fn theo n biến x1 , x2 , . . . , xn
. Mỗi hàm bool xi hay xi được gọi là từ đơn.
. Đơn thức là tích khác không của một số hữu hạn từ đơn.
. Từ tối tiểu là tích khác không của đúng n từ đơn.
. Công thức đa thức là biểu thức biểu diễn hàm Bool thành tổng của các đơn
thức.
. Dạng nối rời chính tắc là biểu thức biểu diễn hàm Bool thành tổng của các từ
tối tiểu.
Ví dụ: Xét tập hợp F3 theo 3 biến x, y, z
. x, y, y, z là các từ đơn.
. xy, yz, xyz là các đơn thức.
. xyz, xyz, xyz là các từ tối tiểu.
. f = yz ∨ xyz ∨ xyz là biểu thức hàm Bool
. f = xyz ∨ xyz ∨ xyz dạng nối rời chính tắc.

Ví dụ 2: Cho hàm Boole f (x, y, z) có bảng chân trị như sau:

Hãy thiết lập công thức biểu diễn của hàm f .


Giải: Đầu tiên ta xác định các từ tối tiểu tương ứng với các dòng mà tại đó giá trị
của f bằng 1. Do f có giá trị bằng 1 tại 4 dòng nên ta chọn 4 từ tối tiểu tương ứng
với 4 dòng đó: f1 = x.y.z, f2 = x.y.z, f4 = x.y.z, f8 = x.y.z
Kế tiếp, nối chúng lại bằng phép hợp, ta được công thức của hàm f . Ta có:
f = x.y.z ∨ x.y.z ∨ x.y.z ∨ x.y.z
Đó là công thức cần tìm.

Nguyễn Minh Trí 48


Bài giảng TOÁN RỜI RẠC

Ví dụ 3: Tìm dạng nối rời chính tắc của hàm F (x, y, z) = (x ∨ y)z
Giải: Bước đầu ta tìm các giá trị của hàm f . Các giá trị này được cho trong bảng

x y z x∨y z F
0 0 0 0 1 0
0 0 1 0 0 0
0 1 0 1 1 1
0 1 1 1 0 0
1 0 0 1 1 1
1 0 1 1 0 0
1 1 0 1 1 1
1 1 1 1 0 0

Như vậy dạng nối rời chính tắc của hàm F là:

F (x, y, z) = xyz ∨ xy.z ∨ xyz

Công thức biểu diễn hàm Boole được xác định theo quy tắc trên được gọi là dạng nối
rời chính tắc của nó. Sở dĩ ta nói đây là dạng nối rời vì nó được nối bởi phép nối rời –
phép hợp và ta nói là chính tắc vì trong tất cả các số hạng (các từ tối tiểu) đều luôn
có sự xuất hiện của tất cả các biến.
Chú ý:

• Dạng nối rời chính tắc đôi khi còn được gọi là dạng tổng các tích vì trong công
thức này ta lấy tổng (phép ∨ ) của các số hạng là tích (phép ∧) của các biến.

• Dạng nối rời chính tắc có ưu điểm là dễ thiết lập, mặc dù vậy công thức này
thường sẽ rất dài.

4.2.5 Tính đầy đủ


Tất cả các hàm Bool đều có thể biểu diễn thành dạng tổng của các đơn thức. Mỗi đơn
thức là tích của các biến Bool hoặc các phần bù của chúng. Điều này chứng tỏ rằng
hàm Bool có thể được biểu diễn bằng cách dùng các phép toán ∨, ∧, −. Vì tất cả các
hàm Bool đều được biểu diễn bằng cách dùng các phép toán đó nên ta nói rằng tập
hợp {∨, ∧, −} là đầy đủ. Liệu chúng ta có thể tìm được một tập đầy đủ các phép toán
nhỏ hơn thế không? Chúng ta có thể làm được điều đó nếu 1 phép toán có thể được
biểu diễn bằng hai phép toán kia.
Chúng ta có thể loại bỏ tổng Bool bằng cách dùng đẳng thức

x ∨ y = x.y

Chúng ta có thể loại bỏ tích Bool bằng cách dùng đẳng thức

xy = x ∨ y

Điều này cho thấy hai tập {∨, −} và {∧, −} cũng đầy đủ. Tập {∧, ∨} không đầy
đủ và ta không thể biểu diễn x thông qua 2 phép toán này.
Ở trên chúng ta đã tìm được các tập đầy đủ chứa 2 phép toán. Liệu chúng ta có
thể tìm được tập đầy đủ các phép toán nhỏ hơn nữa không? Những tập như vậy là tồn
tại.

Nguyễn Minh Trí 49


Bài giảng TOÁN RỜI RẠC

Ta định nghĩa 2 phép toán: Phép toán ↑ hay NAND và phép toán ↓ hay NOR như
sau:
1 ↑ 1 = 0; 1 ↑ 0 = 0 ↑ 1 = 0 ↑ 0 = 1
1 ↓ 1 = 1 ↓ 0 = 0 ↓ 1 = 0; 0 ↓ 0 = 1
Cả hai tập {↑} và {↓} đều đầy đủ.
Mỗi cái ra (output) của một mạch logic là một hàm Bool f (x1 , x2 , . . . , xn ) của các
cái vào (input). Có thể có nhiều mạch cùng thực hiện một hàm Bool nhưng trong đó
sẽ có thể có những mạch đơn giản hơn. Vấn đề tìm mạch đơn giản hơn thực hiện một
hàm f cho trước là vấn đề tìm công thức đơn giản nhất biểu diễn hàm đó. Nếu chỉ
dùng một hệ đầy đủ có 1 phép toán thì một mạch logic chỉ cần dùng 1 cổng để xây
dựng nên mạch logic đó.

4.3 Mạng các cổng và công thức đa thức tổi tiểu


4.3.1 Các cổng
Đại số Bool được dùng để mô hình hóa sơ đồ các mạch trong các dụng cụ điện tử. Mỗi
đầu vào và mỗi đầu ra của một dụng cụ như vậy có thể xem như là một phần tử của
tập {0, 1}. Một máy tính cũng như một dụng cụ điện tử khác được tạo ra bởi nhiều
mạch. Mỗi mạch có thể được thiết kế bằng cách dùng các qui tắc của đại số Bool. Các
phần tử cơ bản của mạch 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
Bool.

Cổng NOT (Bộ đảo) Chấp nhận biến đầu Bool đầu vào và tạo ra phần bù của giá
trị đó ở đầu ra. Kí hiệu

Cổng OR Đầu vào là 2 hay nhiều biến Bool, đầu ra là tổng Bool các giá trị đó. Kí
hiệu

Cổng AND Đầu vào là 2 hay nhiều biến Bool, đầu ra là tích Bool các giá trị đó. Kí
hiệu

Từ những sự tương ứng giữa mạch điện tử với hàm Boole ở trên, ta thấy rằng việc
thiết kế các mạch điện tử cũng sẽ tương ứng với việc xây dựng các hàm Boole.
Ví dụ 1: Xác định hàm ngõ của các mạch sau:

a.

Nguyễn Minh Trí 50


Bài giảng TOÁN RỜI RẠC

b.
Ví dụ 2: Dựng các mạch tạo các đầu ra như sau:
a. (x ∨ y)x
b. x(y ∨ z)
c. (x ∨ y ∨ z)(x y z)
Ví dụ 3: Trong một trận thi đấu võ thuật có 3 trọng tài sẽ cho điểm các đòn đánh
được thực hiện trong một trận đấu. Mỗi trọng tài sẽ có một nút bấm để chấm điểm
các đòn đánh. Mỗi đòn đánh sẽ được tính điểm nếu có từ 2 trọng tài bấm nút trở lên.
Mạch điện dùng cho việc chấm điểm này sẽ gồm có 3 đầu vào tương ứng với 3 nút
bấm của các trọng tài. Nếu trọng tài nào bấm nút thì tín hiệu 1 từ đường dây đó sẽ
được truyền vào mạch, nếu không bấm thì tín hiệu trên đường dây vẫn là 0. Đầu ra
của mạch sẽ là một tín hiệu nhị phân (0/1) thể hiện việc đòng đánh đó có được tính
điểm hay không. (0 – không tính điểm, 1 – tính điểm).
Gọi f là hàm Boole thể hiện tín hiệu đầu ra, bảng chân trị của f theo mô tả trên
sẽ như sau:

x y z f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Theo quy tắc xây dựng dạng nối rời chính tắc của hàm Boole, ta có công thức của hàm
Boole f là:
f (x, y, z) = x.y.z ∨ x.y.z ∨ x.y.z ∨ x.y.z

Từ đó, mạch điện được thiết kế như sau:

Thông qua các ví dụ trên, chúng ta thấy rằng việc xây dựng công thức của hàm Boole
liên quan mật thiết đến việc xây dựng các mạch điện tử. Với việc xây dựng được công
thức dạng nối rời chính tắc của các hàm Boole, ta đã có một cơ sở lý thuyết và một
công cụ hữu dụng cho việc thiết kế các mạch điện.

Nguyễn Minh Trí 51


Bài giảng TOÁN RỜI RẠC

Bài toán tối ưu đầu tiên là tìm cách giảm số cổng từ 3 xuống 2, hoặc nếu được
chỉ dùng 1 loại cổng.
Do hệ {∧, −} là hệ đầy đủ nên có thể thực hiện một hàm Bool bất kì bằng một
mạch chỉ dùng các cổng NOT và AND
Do hệ {∨, −} là hệ đầy đủ nên có thể thực hiện một hàm Bool bất kì bằng một
mạch chỉ dùng các cổng NOT và OR
Do cả hai tập {↑} và {↓} đều đầy đủ nên có thể thực hiện một hàm Bool bất kì
bằng một mạch chỉ dùng 1 cổng NAND hay NOR.

Cổng NAND Là cổng bù của cổng AND coi như là sự nối tiếp của 2 cổng AND và
NOT Kí hiệu

Cổng NOR Là cổng bù của cổng OR coi như là sự nối tiếp của hai cổng OR và
NOT Kí hiệu

Các cổng được lắp với nhau thành các mạch logic (gọi tắt là mạch) thực hiện các
hàm logic phức tạp hơn.

Bài toán tối ưu thứ hai là tối ưu hóa 2 mục tiêu:

• Cực tiểu hóa thời gian chậm trễ (delay): tuy thời gian chậm trễ khi qua các cổng
là không đáng kể nhưng nếu tích lũy qua nhiều lớp cổng thì nó trở thành đáng
kể, nhất là các máy tính có tốc độ cao.

• Cực tiểu hóa số cổng sử dụng

Do thời gian chậm trễ khi qua cổng NOT là không đáng kể, dưới đây khi phân tích
các mạch, ta có thể bỏ qua cổng NOT. Nói cách khác các biến x, y, . . . có thể xem như
các biến input tương tự như x, y, . . .
Thật ra hai mục tiêu trên là không thể đồng thời tối ưu hóa được. Do đó trước hết
ta tối ưu hóa theo thời gian. Ta thiết kế các mạch chỉ có tối đa hai lớp cổng: lớp cổng
AND rồi lớp cổng OR hay lớp cổng OR rồi lớp cổng AND. Tuy nhiên trường hợp sau
có thể đưa về trường hợp đầu nếu ta xét f . Do đó chỉ xét các công thức có dạng OR
(∨) của các số hạng là AND (∧) của các từ đơn. Đây chính là các công thức đa thức.
Đối với mục đích thiết kế mạch điện, công thức hàm Boole càng ngắn thì mạch điện
thiết kế sẽ có chi phí càng thấp (do sử dụng ít cổng điện tử). Chính vì thế, ta cần phải
tìm công thức hàm Boole dưới dạng ngắn nhất có thể.
Trong lớp các công thức đa thức, ta có một số thuật toán cho phép tìm công thức
đa thức tối tiểu.

Nguyễn Minh Trí 52


Bài giảng TOÁN RỜI RẠC

4.3.2 Công thức đa thức tối tiểu


Đơn giản hơn Cho hai công thức đa thức của một hàm Bool :

f = m1 ∨ m2 ∨ . . . ∨ mp (F )

f = M1 ∨ M2 ∨ . . . ∨ Mq (G)

Ta nói rằng công thức F đơn giản hơn công thức G nếu tồn tại đơn ánh h : {1, 2, .., p} →
{1, 2, . . . , q} sao cho với mọi i ∈ {1, 2, .., k} thì số từ đơn của mi không nhiều hơn số
từ đơn của Mh(i)
Ví dụ:
f = xz ∨ yz ∨ xt ∨ yt ∨ xyz(F )

f = xz ∨ yz ∨ xt ∨ xyt ∨ xyz(G)

Công thức F đơn giản hơn công thức G


Chú ý:
. F đơn giản hơn G thì p ≤ q
. Quan hệ "đơn giản hơn" có tính phản xạ và tính bắc cầu.

Đơn giản như nhau Nếu F đơn giản hơn G và G đơn giản hơn F thì ta nói F và
G đơn giản như nhau.
Ví dụ:
f = xz ∨ yz ∨ xt ∨ xyz(F )

f = xy ∨ xz ∨ xt ∨ xyz(G)

Công thức đa thức tối tiểu Công thức F của hàm Bool f được gọi là tối tiểu nếu
với bất kỳ công thức G của f mà đơn giản hơn F thì F và G đơn giản như nhau.
Một hàm Bool bất kì f có thể viết như là tổng Bool của các đa thức tối tiểu và mỗi
đa thức tối tiểu này được viết như là tích của đầy đủ n biến. Công thức này là dạng
chuẩn tắc tuyển của f .

4.4 Phương pháp Karnaugh


Như ta đã thấy ở trên mô hình các mạch điện được thiết kế dựa theo công thức của
hàm Boole (các cổng đều tương ứng với các phép toán). Mặt khác, cũng cần để ý rằng,
đối với một hàm Boole, có thể có nhiều dạng công thức biểu diễn khác nhau. Công
thức dạng nối rời chính tắc của một hàm Boole, như phân tích ở trên, rất dễ thiết lập,
tuy vậy trong thực tế, công thức dạng nối rời chính tắc không phải là công thức dạng
ngắn nhất của một hàm Boole.
Có nhiều phương pháp khác nhau nhằm rút gọn công thức của hàm Boole như: sử
dụng các tính chất của đại số Boole biến đổi, rút gọn . . . mỗi phương pháp có những
ưu khuyết riêng và sẽ hữu dụng cho một số trường hợp nào đó.
Trong phần này chúng ta sẽ giới thiệu phương pháp Karnaugh, một phương pháp
hữu hiệu cho việc tìm công thức dạng đơn giản nhất của hàm Boole có 3 hoặc 4 biến.
Trước hết, ta tìm hiểu khái niệm biểu đồ Karnaugh của một hàm Boole f

Nguyễn Minh Trí 53


Bài giảng TOÁN RỜI RẠC

4.4.1 Biểu đồ karnaugh


Phương pháp biểu đồ Karnaugh cho phép tìm nhanh công thức đa thức tối tiểu của
hàm Bool 3, 4 biến.
Xét một hàm Bool f theo 3 biến x, y, z. Khi đó bảng chân trị của f gồm 8 hàng.
Thay cho bảng chân trị của f ta vẽ một bảng chữ nhật gồm 8 ô, tương ứng với 8 hàng
của bảng chân trị, được đánh dấu như sau:

Qui ước:
. Khi một ô nằm trong dãy được đánh dấu bởi x thì tại đó x = 1, bởi x thì tại đó
x = 0, tương tự cho y, z.
. Các ô tại đó f bằng 1 sẽ được đánh dấu (tô đậm hoặc gạch chéo). Tập các ô được
đánh dấu được gọi là biểu đồ Karnaugh của f , ký hiệu là kar(f ).
f là hàm Bool theo 4 biến x, y, z, t. Khi đó bảng chân trị của f gồm 16 hàng. Thay
cho bảng chân trị của f ta vẽ một bảng chữ nhật gồm 16 ô, tương ứng với 16 hàng của
bảng chân trị, được đánh dấu như sau:

Qui ước:
. Khi một ô nằm trong dãy được đánh dấu bởi x thì tại đó x = 1, bởi x thì tại đó
x = 0, tương tự cho y, z, t.
. Các ô tại đó f bằng 1 sẽ được đánh dấu (tô đậm hoặc gạch chéo). Tập các ô được
đánh dấu được gọi là biểu đồ Karnaugh của f , ký hiệu là kar(f ).
Trong cả hai trường hợp, hai ô được gọi là kề nhau (theo nghĩa rộng), nếu chúng là
hai ô liền nhau hoặc chúng là ô đầu, ô cuối của cùng một hàng (cột) nào đó. Nhận xét
rằng, do cách đánh dấu như trên, hai ô kề nhau chỉ lệch nhau ở một biến duy nhất.

Định lí 5 Cho f, g là các hàm Bool theo n biến x1 , x2 , . . . , xn . Khi đó:


a) kar(f g) = kar(f )∩ kar(g).
b) kar(f ∨ g) = kar(f )∪kar(g).
c) kar(f ) gồm đúng một ô khi và chỉ khi f là một từ tối tiểu

Nguyễn Minh Trí 54


Bài giảng TOÁN RỜI RẠC

Tế bào Biểu đồ Karnaugh của một đơn thức có dạng tích của p (1 ≤ p ≤ p) từ đơn
là một hình chữ nhật (theo nghĩa rộng) gồm 24−p , mà ta gọi là tế bào.
Nếu T là một tế bào thì T là biểu đồ karnaugh của một đơn thức duy nhất m, cách
xác định m như sau: lần lượt chiếu T lên các cạnh, nếu toàn bộ hình chiếu nằm trọn
trong một từ đơn nào thì từ đơn đó mới xuất hiện trong m.
Ví dụ 1: Xét các hàm Bool theo 4 biến x, y, z, t.
Biểu đồ karnaugh của đơn thức xyzt

Ví dụ 2: Xét các hàm Bool theo 4 biến x, y, z, t.


Biểu đồ karnaugh của đơn thức yzt

Ví dụ 3: Xét các hàm Bool theo 4 biến x, y, z, t.


Biểu đồ karnaugh của đơn thức yt

Ví dụ 4: Xét các hàm Bool theo 4 biến x, y, z, t.


Biểu đồ karnaugh của đơn thức t

Nguyễn Minh Trí 55


Bài giảng TOÁN RỜI RẠC

Ví dụ 5: Xét các hàm Bool theo 4 biến x, y, z, t.


Tế bào

là biểu đồ karnaugh của đơn thức nào?


Là biểu đồ karnaugh của đơn thức yt

Tế bào lớn Cho hàm Bool f . Ta nói T là một tế bào lớn của kar(f ) nếu T thoả hai
tính chất sau:
a) T là một tế bào và T ⊂ kar(f ).
0 0
b) Không tồn tại tế bào T nào thỏa T 6= T và
0
T ⊂ T ⊂ kar(f )

Ví dụ: Xét hàm Bool f theo 4 biến x, y, z, t có biểu đồ karnaugh như sau:

Kar(f ) có 6 tế bào lớn như sau:

Nguyễn Minh Trí 56


Bài giảng TOÁN RỜI RẠC

4.4.2 Phương pháp tìm đa thức tối tiểu


B1: Vẽ biểu đồ karnaugh của f .
B2: Xác định tất cả các tế bào lớn của kar(f )
B3: Xác định các tế bào lớn m nhất thiết phải chọn.
Ta nhất thiết phải chọn tế bào lớn T khi tồn tại một ô của kar(f ) mà ô này chỉ
nằm trong tế bào lớn T và không nằm trong bất kỳ tế bào lớn nào khác.
B4: Xác định các phủ tối tiểu gồm các tế bào lớn
Nếu các tế bào lớn chọn được ở bước 3 đã phủ được kar(f ) thì ta có duy nhất một
phủ tối tiểu gồm các tế bào lớn của kar(f ).
Nếu các tế bào lớn chọn được ở bước 3 chưa phủ được kar(f ) thì:
Xét một ô chưa bị phủ, sẽ có ít nhất hai tế bào lớn chứa ô này, ta chọn một trong
các tế bào lớn này. Cứ tiếp tục như thế ta sẽ tìm được tất cả các phủ gồm các tế bào
lớn của kar(f ).
Loại bỏ các phủ không tối tiểu, ta tìm được tất cả các phủ tối tiểu gồm các tế bào
lớn của kar(f ).
Bước 5: Xác định các công thức đa thức tối tiểu của f

Nguyễn Minh Trí 57


Bài giảng TOÁN RỜI RẠC

Từ các phủ tối tiểu gồm các tế bào lớn của kar(f ) tìm được ở bước 4 ta xác định
được các công thức đa thức tương ứng của f
Loại bỏ các công thức đa thức mà có một công thức đa thức nào đó thực sự đơn
giản hơn chúng.
Các công thức đa thức còn lại chính là các công thức đa thức tối tiểu của f .
Ví dụ 1: Tìm tất tất cả các công thức đa thức tối tiểu của hàm Bool:

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xy(z ∨ t)

= xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt


f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

Nguyễn Minh Trí 58


Bài giảng TOÁN RỜI RẠC

Bước 1: Vẽ Kar(f )

f (x, y, z, t) = xyzt ∨ xy ∨ xz ∨ yz ∨ xyz ∨ xyt

Bước 2: Kar(f ) có các tế bào lớn như sau:

Bước 3: Xác định các tế bào lớn nhất thiết phải chọn:
- Ô 1 nằm trong một tế bào lớn duy nhất x. Ta chọn x.
- Ô 3 nằm trong một tế bào lớn duy nhất yz. Ta chọn yz

Bước 4: Xác định các phủ tối tiểu gồm các tế bào lớn

Nguyễn Minh Trí 59


Bài giảng TOÁN RỜI RẠC

Bước 5: Xác định các công thức đa thức tối tiểu của f .
Ứng với phủ tối tiểu gồm các tế bào lớn tìm được ở bước 4 ta tìm được duy nhất
một công thức đa thức tối tiểu của f :

x ∨ yz

Ví dụ 2: Xét hàm f có biểu đồ Karnaugh như sau:

Bước 2: Biểu đồ Karnaugh của f có 4 tế bào lớn:

Bước 3:
Ô (2,4) nằm trong tế bào lớn duy nhất xzt
Ô (4,2) nằm trong tế bào lớn duy nhất xyz
Gạch chéo hai tế bào lớn này ta có sơ đồ:

Còn lại ô (3,3) chưa được phủ, nằm trong 2 tế bào lớn nên ta qua bước 4.
Bước 4: Ô (3,3) nằm trong 2 tế bào lớn xyt và yzt. Chọn tùy ý một trong 2 tế bào
trên phủ kín biểu đồ Karnaugh của f .
Bước 5: Ta được phép phủ tối thiểu tương ứng với 2 công thức đa thức:

f = xzt ∨ xyz ∨ xyt

f = xzt ∨ xyz ∨ yzt


Cả hai công thức đều đơn giản như nhau nên ta được 2 công thức đa thức tối tiểu.
Ví dụ 3: Xét hàm f có biểu đồ Karnaugh như sau:

Bước 2: Biểu đồ Karnaugh của f có 8 tế bào lớn:

Nguyễn Minh Trí 60


Bài giảng TOÁN RỜI RẠC

Bước 3: Các ô (1,2) và (2,4) nằm trong các tế bào lớn duy nhất là xz và yz tương
ứng. Sau khi chọn các tế bào lớn này thì phần còn lại của biểu đồ Karnaugh f đều có
mỗi ô nằm đúng trong 2 tế bào lớn nên ta qua bước 4.

Bước 4: Ta có sơ đồ cách chọn các tế bào lớn còn lại để phủ kín biểu đồ Karnaugh
của f theo nhánh (của hình cây):

• Chọn xy: còn lại 4 ô chưa phủ

– Chọn yzt: còn lại 2 ô chưa phủ.


∗ Chọn xzt: phủ kín biểu đồ Karnaugh

f = xz ∨ yz ∨ xy ∨ yzt ∨ xzt (F1 )

∗ Không chọn xzt: để phủ kín 2 ô (4,3) và (4,4) ta buộc phải chọn xyz và
yt
f = xz ∨ yz ∨ xy ∨ yzt ∨ xyz ∨ yt (F2 )
– Không chọn yzt: để phủ 2 ô (3,2) và (3,3) ta buộc phải chọn xt và xyz

Lúc này chỉ còn lại 1 ô (4,4). Nếu chọn yt ta sẽ được 1 phép phủ không tối
tiểu vì có thể loại bỏ tế bào lớn xy mà vẫn được 1 phép phủ. Do đó ta phải
chọn xz t
f = xz ∨ yz ∨ xy ∨ xt ∨ xyz ∨ xzt (F3 )

Nguyễn Minh Trí 61


Bài giảng TOÁN RỜI RẠC

• Không chọn xy: để phủ 2 ô (3,1) và (4,1) ta buộc phải chọn các tế bào lớn xt và
yt

Lúc này còn lại 2 ô (3,3) và (4,3).

– Chọn xyz: phủ kín biểu đồ Karnaugh

f = xz ∨ yz ∨ xt ∨ yt ∨ xyz (F4 )

– Không chọn xyz: để phủ 2 ô (3,3) và (4,3) ta phải chọn các tế bào lớn yzt
và xz t
f = xz ∨ yz ∨ xt ∨ yt ∨ yzt ∨ xz t (F5 )

Bước 5: Ta có 5 công thức đa thức. Tuy nhiên công thứ F4 đơn giản hơn F1 , F2 , F3 , F5
mà không tương đương
Vậy công thức đa thức tối tiểu duy nhất của hàm f là:

f = xz ∨ yz ∨ xt ∨ yt ∨ xyz (F4 )

Trường hợp hàm 3 biến Đối với các hàm Bool 3 biến, ta sẽ sử dụng hình chữ nhật
có 8 ô để biểu diễn:
Khi đó định nghĩa biểu đồ Karnaugh, tế bào, tế bào lớn hoàn toàn tương tự và ta
có thể áp dụng qui trình như trên để tìm công thức đa thức tối tiểu.
Ví dụ: Xét hàm Bool

f = (x ∨ y ∨ z)(x ∨ y ∨ z)(x ∨ yz)

Bước 1: Vẽ biểu đồ Karnaugh


Biểu đồ Karnaugh của 3 thừa số là:

Do đó biểu đồ Karnaugh của f có dạng:

Bước 2: Tìm các tế bào lớn. Có 4 tế bào lớn

Bước 3: Ô (1,3) nằm trong tế bào lớn duy nhất yz


Ô (2,4) nằm trong tế bào lớn duy nhất y z
Chọn các tế bào lớn này cho phép ta phủ được:

Nguyễn Minh Trí 62


Bài giảng TOÁN RỜI RẠC

Bước 4: Còn lại ô (1,1) nằm trong 2 tế bào lớn xy và xz. Chọn 1 trong 2 tế bào
này ta đều phủ kín biểu đồ Karnaugh của f
Bước 5: Ta có 2 công thức đều là công thức đa thức tối tiểu
f = yz ∨ y z ∨ xy
f = yz ∨ y z ∨ xz
Bài tập
Bài 39. Cho S là tập hợp các ước nguyên dương của 70, với các phép toán •, +.−
được định nghĩa như sau:
a • b = UCLN(a, b), a + b = BCNN(a, b), a = 70/a
Chứng minh rằng S cùng với các phép toán •, +, − lập thành một đại số Bool.
Bài 40. Tìm giá trị các hàm Bool dưới đây khi các biến x, y, z, t lấy các giá trị 1, 1, 0, 0
a. xy ∨ xy
b. t ∨ xy
c. tx ∨ y ∨ yz
d. xt ∨ xy ∨ yz
e. (tx ∨ yz) ∨ ty ∨ (t ∨ y)(x ∨ y)
Bài 41. Tìm tất cả các giá trị y, z để các biểu thức dưới đây luôn luôn nhận giá trị 1
biết rằng x = 1
a. x ∨ xy ∨ z
b. xy ∨ z
c. xy ∨ xz
d. xy ∨ z
Bài 42. Tìm dạng nối rời chính tắc của các hàm Bool theo 3 biến:
a. xy ∨ xz e. x(y ∨ x)z
b. xy ∨ yz ∨ xz f. xy(z ∨ xy)
c. xyz ∨ xz g. [x(y ∨ z) ∨ x] ∨ y
d. (x ∨ yz)(x ∨ y z) h. x(y ∨ xz) ∨ z
Bài 43. Tìm dạng nối rời chính tắc của hàm Bool theo 4 biến:
a. (xy ∨ zt)(x ∨ z)(xz ∨ yt)(xt ∨ yz)
b. (xz ∨ yz ∨ xt)xyt ∨ yz ∨ zt ∨ xt
Bài 44. Hãy sử dụng các cổng NOT, AND, OR để tổng hợp các hàm Bool
a. (x ∨ y)(x ∨ y)(x ∨ y) c. (x ∨ z)(y ∨ z)x
b. xz ∨ yz ∨ x d. x ∨ y(x ∨ z)
Bài 45. Tìm công thức đa thức tối tiểu của các hàm Bool có biểu đồ Karnaugh dưới
đây:

a b c d
Bài 46. Tìm công thức đa thức tối tiểu của các hàm sau:
a. z(xy ∨ yt) ∨ y(xz ∨ xz)
b. xyzt ∨ xy ∨ xzt ∨ yzt
c. y(zt ∨ zt) ∨ y(zt ∨ xzt) ∨ xzt
d. xyzt ∨ xy ∨ xz ∨ yz ∨ xy(z ∨ t)

Nguyễn Minh Trí 63


Bài giảng TOÁN RỜI RẠC

Nguyễn Minh Trí 64


Tài liệu tham khảo

[1] Nguyễn Hữu Anh, Toán rời rạc. NXB Lao động xã hội, 2007

[2] Hoàng Chúng, Đại cương về Toán học hữu hạn, NXB Giáo dục, 1999.

[3] Nguyễn Viết Đông, Slide bài giảng Toán Rời Rạc, Trường Đại học Khoa học tự
nhiên TPHCM.

[4] Kennth H.Rosen, Discrete Mathematics and Its Applications, Sixth Edition, Pub-
lished by McGraw-Hill, 2007

[5] Bùi Minh Trí, Giáo trình toán ứng dụng trong tin học, NXB Giáo dục, 2006

65

You might also like