2 Counting
2 Counting
Giới thiệu
Các nguyên lý đếm cơ bản
Quy về bài toàn con
Hệ thức truy hồi
Phương pháp hàm sinh
Bài tập
2 http://www.ptit.edu.vn
Giới thiệu bài toán đếm
Bài toán đếm
o Là bài toán đếm xem có bao nhiêu cấu hình tổ hợp có thể tạo
ra với những quy tắc đã nêu?
o Lời giải thường phụ thuộc vào số tham số ban đầu và người ta
cố gắng biểu diễn những phụ thuộc này bằng những công thức
toán học
Nguyên tắc chung giải bài toán đếm
o Để đếm các cấu hình đã cho, người ta tìm cách đưa về các cấu
hình quen thuộc bằng cách thiếp lập một quan hệ 1-1 giữa
chúng
Ứng dụng của bài toán đếm trong khoa học máy tính
o Ước lượng số phép toán thực hiện trong một giải thuật, chương
trình máy tính
o Ước lượng độ phức tạp thời gian và không gian của giải thuật
3 http://www.ptit.edu.vn
Các phương pháp giải quyết bài toán đếm
Sử dụng các nguyên lý đếm cơ bản: nguyên lý
cộng, nguyên lý nhân, nguyên lý bù trừ
Qui về các bài toán con: Phân tích lời giải bài toán
đếm phức tạp thành những bài toán con. Trong đó, mỗi
bài toán con có thể giải được bằng các nguyên lý đếm
cơ bản
Sử dụng hệ thức truy hồi: Xây dựng công thức tính
số nghiệm tổng quát bất kỳ dựa vào biểu diễn các số
hạng biết trước
Phương pháp hàm sinh: Sử dụng hàm sinh của một
dãy số để đếm các cấu hình tổ hợp
4 http://www.ptit.edu.vn
Nội dung
Giới thiệu
Các nguyên lý đếm cơ bản
Quy về bài toàn con
Hệ thức truy hồi
Phương pháp hàm sinh
Bài tập
5 http://www.ptit.edu.vn
Nguyên lý cộng (nhắc lại)
7 http://www.ptit.edu.vn
Ví dụ 1
Bài toán: Giả sử 𝑁, 𝑀 là hai số tự nhiên đã xác định giá
trị. Hãy cho biết giá trị của 𝑆 sau khi thực hiện đoạn
chương trình.
𝑆 = 0;
for (𝑖 = 1; 𝑖 <= 𝑁; 𝑖 + +)
𝑆 + +;
for (𝑗 = 1; 𝑗 <= 𝑀; 𝑗 + +)
𝑆 + +;
Lời giải: Gọi số phép toán thực hiện trong vòng lặp thứ
nhất là 𝑇1, số phép toán thực hiện trong vòng lặp thứ hai
là 𝑇2. Vì hai vòng lặp thực hiện độc lập nhau nên theo
nguyên lý cộng, giá trị của 𝑆 = 𝑇1+ 𝑇2 = 𝑁 + 𝑀 .
8 http://www.ptit.edu.vn
Nguyên lý nhân (nhắc lại)
Giả sử một nhiệm vụ nào đó được tách ra làm hai việc. Việc
thứ nhất có thể thực hiện bằng 𝑛1 cách, việc thứ hai thực hiện
bằng 𝑛2 cách sau khi việc thứ nhất đã được thực hiện. Khi đó,
sẽ có 𝑛1𝑛2 cách thực hiện nhiệm vụ nêu trên.
Nếu mỗi thành phần 𝑎𝑖 của bộ có thứ tự 𝑘 thành phần (𝑎1, 𝑎2,
… , 𝑎𝑘 ) có 𝑛𝑖 khả năng chọn, thì số bộ được tạo ra sẽ là tích
các khả năng 𝑛1𝑛2 …𝑛𝑘
Hệ quả:
o 𝐴1 × 𝐴2 × ⋯ × 𝐴𝑘 = 𝐴1 𝐴2 … 𝐴𝑘
o 𝐴 𝑘 = |𝐴|𝑘
9 http://www.ptit.edu.vn
Ví dụ 2
Bài toán: Giả sử 𝑛1, 𝑛2 là hai số nguyên dương đã xác định
giá trị. Hãy cho biết giá trị của 𝑆 sau khi thực hiện đoạn
chương trình dưới đây?
int 𝑆 = 0;
for (int 𝑖 = 1; 𝑖 <= 𝑛1; 𝑖 + +)
for (int 𝑗 = 1; 𝑗 <= 𝑛2; 𝑗 + +)
𝑆 + +;
10 http://www.ptit.edu.vn
Ví dụ 2
Bài toán: Giả sử 𝑛1, 𝑛2 là hai số nguyên dương đã xác định
giá trị. Hãy cho biết giá trị của 𝑆 sau khi thực hiện đoạn
chương trình dưới đây?
int 𝑆 = 0;
for (int 𝑖 = 1; 𝑖 <= 𝑛1; 𝑖 + +)
for (int 𝑗 = 1; 𝑗 <= 𝑛2; 𝑗 + +)
𝑆 + +;
Lời giải. Với mỗi giá trị của 𝑖 = 1,2, . . , 𝑛1 thì 𝑆 được cộng 𝑛2
đơn vị. Do vậy, theo nguyên lý nhân, sau 𝑛1 vòng lặp giá trị của
𝑆 = 𝑛1𝑛2.
11 http://www.ptit.edu.vn
Ví dụ 3
Bài toán: Có bao nhiêu số nguyên dương có 5 chữ số
không chứa chữ số 1 và không có 2 chữ số nào giống
nhau?
12 http://www.ptit.edu.vn
Ví dụ 3
Bài toán: Có bao nhiêu số nguyên dương có 5 chữ số
không chứa chữ số 1 và không có 2 chữ số nào giống
nhau?
Lời giải:
o Xét số có 5 chữ số 𝑎1𝑎2𝑎3𝑎4𝑎5
o 𝑎1 có 8 cách chọn (trừ 0 và 1)
o 𝑎2 có 8 cách chọn (trừ 𝑎1 và 1)
o 𝑎3 có 7 cách chọn (trừ 𝑎1, 𝑎2, và 1)
o 𝑎4 có 6 cách chọn (trừ 𝑎1, 𝑎2, 𝑎3, và 1)
o 𝑎5 có 5 cách chọn (trừ 𝑎1, 𝑎2, 𝑎3, 𝑎4, và 1)
o Vậy có 8x8x7x6x5 số thỏa mãn
13 http://www.ptit.edu.vn
Ví dụ 4
Bài toán: có bao nhiêu tên biến trong ngôn ngữ lập trình C
độ dài 8 chỉ chứa hai chữ cái a,b và bắt đầu bởi aaa hoặc
bbb?
14 http://www.ptit.edu.vn
Ví dụ 4
Bài toán: có bao nhiêu tên biến trong ngôn ngữ lập trình C
độ dài 8 chỉ chứa hai chữ cái a,b và bắt đầu bởi aaa hoặc
bbb?
Lời giải: Tập các biến thỏa mãn đề bài được phân hoạch làm 2
tập: một tập gồm các biến bắt đầu bằng aaa, tập kia gồm các
biến bắt đầu bằng bbb. Mỗi tên biến độ dài 8 bắt đầu bằng
aaa (hoặc bbb) có thể được xây đựng như sau:
15 http://www.ptit.edu.vn
Nhắc lại về lý thuyết tổ hợp
• Chỉnh hợp:
• Chỉnh hợp lặp: Một chỉnh hợp lặp chập k của n phần tử là
bộ có thứ tự gồm k phần tử lấy từ n phần tử của tập đã
cho, mỗi phần tử có thể lấy lặp lại
𝐴𝑘𝑛 =𝑛𝑘
𝑛!
𝑃𝑛𝑘 =n.(n−1)(n−2)…(n−k+1)=
𝑛−𝑘 !
Pnn =n.(n−1)(n−2)…1=n!
𝑛!
𝐶𝑛𝑘 =
𝑛 − 𝑘 ! 𝑘!
(𝑛+ 𝑘 − 1)!
𝑅𝑛𝑘 = 𝐶𝑛+𝑘−1 =
𝑘
𝑛 − 1 ! 𝑘!
21 http://www.ptit.edu.vn
Ví dụ 5
Bài toán: Phương trình 𝑥1 + 𝑥2 + 𝑥3 = 11 có bao nhiêu nghiệm
nguyên không âm?
Lời giải: Mỗi nghiệm của phương trình tương ứng với cách
chọn 11 phần tử từ 3 loại phần tử sao cho có 𝑥1 phần tử loại
1, 𝑥2 phần tử loại 2, 𝑥3 phần tử loại 3 được chọn.
Vì vậy số nghiệm bằng số tổ hợp lặp chập 11 phần tử từ 3 loại
phần tử.
11
13 ×12
𝐶13 = = 78
2
22 http://www.ptit.edu.vn
Ví dụ 6
Bài toán: Phương trình 𝑥1 + 𝑥2 + ⋯ + 𝑥𝑛 = 𝑘 có bao nhiêu
nghiệm nguyên không âm?
23 http://www.ptit.edu.vn
Ví dụ 6
Bài toán: Phương trình 𝑥1 + 𝑥2 + ⋯+ 𝑥𝑛 = 𝑘 có bao
nhiêu nghiệm nguyên không âm?
24 http://www.ptit.edu.vn
Ví dụ 7
Bài toán: Phương trình 𝑥1 + 𝑥2 + 𝑥3 = 11 có bao nhiêu
nghiệm nguyên không âm thỏa mãn 𝑥11, 𝑥22, 𝑥33.
25 http://www.ptit.edu.vn
Ví dụ 7
Bài toán: Phương trình 𝑥1 + 𝑥2 + 𝑥3 = 11 có bao nhiêu
nghiệm nguyên không âm thỏa mãn 𝑥11, 𝑥22, 𝑥33.
26 http://www.ptit.edu.vn
Ví dụ 8
Bài toán: Phương trình 𝑥1 + 𝑥2 + ⋯ + 𝑥𝑛 = 𝑘 có bao nhiêu
nghiệm nguyên không âm thỏa mãn 𝑥1 ≥ 𝑚 1 , …, 𝑥𝑛 ≥ 𝑚 𝑛 ?
27 http://www.ptit.edu.vn
Ví dụ 8
Bài toán: Phương trình 𝑥1 + 𝑥2 + ⋯+ 𝑥𝑛 = 𝑘 có bao
nhiêu nghiệm nguyên không âm thỏa mãn 𝑥1 ≥ 𝑚 1 , …, 𝑥𝑛
≥𝑚𝑛?
28 http://www.ptit.edu.vn
Ví dụ 9
Bài toán: Phương trình 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 = 24 có bao nhiêu
nghiệm nguyên không âm thỏa mãn 1𝑥1 5, 3 𝑥2 7?
Ví dụ 9
Bài toán: Phương trình 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 = 24 có bao nhiêu
nghiệm nguyên không âm thỏa mãn 1𝑥1 5, 3 𝑥2 7?
Lời giải: Gọi 𝑁1, 𝑁2, 𝑁3, 𝑁4 là số các nghiệm nguyên không âm của
phương trình (1), (2), (3), (4).
x1 x2 x3 x4 x5 x6 24 (1)
x1 1, x 2 3
x1 x2 x3 x4 x5 x6 24 (2)
x 6, x 3;
1 2
x1 x2 x3 x4 x5 x6 24 (3)
x 1, x 8;
1 2
x1 x2 x3 x4 x5 x6 24 (4)
x 6, x 8;
1 2
Ví dụ 9
Theo Ví dụ 8 ta có:
𝑁1 =𝐶206−1+20 = 𝐶20
25= 53130
𝑁2 =𝐶156−1+15 = 𝐶1520= 15504
𝑁3 =𝐶156−1+15 = 𝐶1520= 15504
𝑁4 = 𝐶10
6−1+10 = 𝐶10
15= 3003
31 http://www.ptit.edu.vn
Bài tập 1
Một đợt phát hành xổ số mỗi tấm vé số gồm 2 phần. Phần chữ
gồm 2 chữ cái nhận giá trị từ A đến Z, phần số gồm 4 chữ số
nhận giá trị từ 0 đến 9. Mỗi đợt phát hành như vậy có 1 giải đặc
biệt, 2 giải nhất, 5 giải nhì, và 10 giải ba. Tính xác suất 1 tấm vé
số trúng giải từ giải ba trở lên trong 2 trường hợp sau
a. Phần chữ đứng trước phần số trong mỗi tấm vé số.
b. Phần chữ đứng tùy ý trong mỗi tấm vé số.
32 http://www.ptit.edu.vn
Bài tập 2
Tính số trận đấu tại mỗi vòng chung kết World Cup bóng đá.
33 http://www.ptit.edu.vn
Nguyên lý bù trừ
Nhiều bài toán đếm phức tạp hơn có thể giải bằng nguyên lý
bù trừ
Về bản chất, nguyên lý bù trừ là trường hợp tổng quát của
nguyên lý cộng
Nguyên lý bù trừ: Nếu 𝐴 và 𝐵 là hai tập hợp, khi đó:
| A B || A | | B | | A B |
Tổng quát, nếu 𝐴1, 𝐴2, …,𝐴𝑘 là các tập hợp hữu hạn, khi
đó:
| A1 A2 ... Ak | N1 N 2 ... (1) k 1 N k ,
Trong đó, 𝑁𝑖 là tổng của tất cả các giao của 𝑖 tập lấy từ 𝑘 tập
đã cho
34 http://www.ptit.edu.vn
Ví dụ 10
Trong kỳ thi học sinh giỏi cấp thành phố,một trường PTCS
có 20 học sinh đạt giải môn Toán, 11 học sinh đạt giải môn
văn, trong số đó có 7 em đạt giải đồng thời cả Văn và Toán.
Hỏi trường có bao nhiêu học sinh đạt giải học sinh giỏi?
Ví dụ 10
Gọi A là tập các học sinh đạt giải môn Toán
B là tập các học sinh đạt giải môn Văn
Khi đó, tổng số học sinh đạt giải học sinh giỏi của trường là:
N(A⋃B)=N(A) + N(B) – N(A⋂B)
= 20 + 11 – 7 = 24
Ví dụ 11
Giả sử một trường đại học có 1503 sinh viên năm thứ nhất.
Trong số đó có 435 sinh viên tham gia CLB tin học, 267 sinh
viên tham gia CLB toán học và 99 sinh viên tham gia cả hai
CLB. Hỏi có bao nhiêu sinh viên không tham gia cả CLB toán
học cũng như CLB tin học?
Ví dụ 12
Bài toán: Trong tập hợp 𝑋 = {1,2, … , 10000} có bao
nhiêu số không chia hết cho bất kỳ số nào trong các số
3, 4, 7 ?
38 http://www.ptit.edu.vn
Ví dụ 12
Bài toán: Trong tập hợp 𝑋 = {1,2, … , 10000} có bao nhiêu
số không chia hết cho bất kỳ số nào trong các số 3, 4, 7?
Lời giải:
Khi đó
|𝐴1 ∪ 𝐴2 ∪ 𝐴3| = |𝐴1| + |𝐴2| + |𝐴3| − |𝐴1 ∩ 𝐴2| − |𝐴1 ∩ 𝐴3|
− |𝐴2 ∩ 𝐴3| + |𝐴1 ∩ 𝐴2 ∩ 𝐴3|
39 http://www.ptit.edu.vn
Ví dụ 12
Tính toán trực tiếp các giá trị ta có:
𝑁1 = |𝐴1| + |𝐴2| + |𝐴3|
= [10000/3] + [10000/4] + [10000/7]
= 3333 + 2500 + 1428 = 7261.
𝑁2 = 𝐴1 ∩ 𝐴2 + 𝐴1 ∩ 𝐴3 + |𝐴2 ∩ 𝐴3|
= [10000/(3 ∗4)] + [10000/(3 ∗7)] + [10000/(4∗7)]
= 833 + 476 + 357 = 1666.
𝑁3 = |𝐴1 ∩ 𝐴2 ∩ 𝐴3| = [10000/(3 ∗4 ∗7)] = 119
Từ đó ta có số các số hoặc chia hết cho 3, hoặc chia hết cho
4, hoặc chia hết cho 7 là
𝑁 = 𝑁1 − 𝑁2 + 𝑁3 = 7261 − 1666 + 119 = 5714.
Như vậy, số các số không chia hết cho bất kỳ số 3, 4, 7 là
𝐾 = 10000 − 𝑁 = 4286.
40 http://www.ptit.edu.vn
Bài tập 1
Có bao nhiêu cách xếp 5 người, A, B, C, D, E, đứng thành
một hàng ngang sao cho A không đứng cạnh B?
41 http://www.ptit.edu.vn
Bài tập 2
Tính số lượng số có 5 chữ số sao cho có ít nhất hai chữ số
giống nhau?
42 http://www.ptit.edu.vn
Nội dung
Giới thiệu
Các nguyên lý đếm cơ bản
Quy về bài toàn con
Hệ thức truy hồi
Phương pháp hàm sinh
Bài tập
43 http://www.ptit.edu.vn
Quy về bài toán con
Một phương pháp khác để giải bài toán đếm là quy về
các bài toán con đơn giản hơn
44 http://www.ptit.edu.vn
Ví dụ 1 3
Bài toán: Trong các số tự nhiên có 7 chữ số hãy đếm số
các số thuận nghịch (số đối xứng) có tổng các chữ số là 18?
45 http://www.ptit.edu.vn
Ví dụ 1 3
Bài toán: Trong các số tự nhiên có 7 chữ số hãy đếm số
các số thuận nghịch (số đối xứng) có tổng các chữ số là
18?
Lời giải: Một số thỏa mãn đề bài có dạng
𝑥1𝑥2𝑥3𝑥4𝑥3𝑥2𝑥1(𝑥1 ≥ 1) và
2x1 2x2 2x3 x4 18
Vì 2𝑥1, 2𝑥2, 2𝑥3 là những số chẵn nên 𝑥4 cũng phải là một
số chẵn. Do đó 𝑥4 có thể nhận các giá trị 0, 2, 4, 6, 8.
Gọi 𝑁0, 𝑁2, 𝑁4, 𝑁6, 𝑁8 là số nghiệm của pt ứng với các
trường hợp 𝑥4 nhận giá trị 0, 2, 4, 6, 8. Theo nguyên lý
cộng số cần tìm là
𝑁 = 𝑁0 + 𝑁2 + 𝑁4 + 𝑁6 + 𝑁8
46 http://www.ptit.edu.vn
Ví dụ 1 3
Ta có 𝑁0, 𝑁2, 𝑁4, 𝑁6, 𝑁8 là số nghiệm của các pt tương ứng
sau
2x1 2x2 2x3 0 18 x x x 9
x 1 1 2 3
x 1
1 1
2x1 2x 2 2x 3 2 18 x 1 x 2 x 3 8
x 1 x 1
1 1 Các bài toán con
2x1 2x 2 2x3 4 18 x1 x2 x3 7 này có thể giải
x 1 dễ dàng theo Ví
1 x1 1 dụ 8
2x1 2x 2 2x3 6 18 x1 x 2 x3 6
x 1 x 1
1 1
2x1 2x 2 2x 3 8 18 x x x 5
x 1 x1 12 3
1 1
47 http://www.ptit.edu.vn
Nội dung
Giới thiệu
Các nguyên lý đếm cơ bản
Quy về bài toàn con
Hệ thức truy hồi
Phương pháp hàm sinh
Bài tập
48 http://www.ptit.edu.vn
Hệ thức truy hồi
Định nghĩa: Hệ thức truy hồi đối với dãy số {𝑎𝑛} là công thức
biểu diễn 𝑎𝑛 qua một hay nhiều số hạng đi trước của dãy, cụ
thể là 𝑎1, 𝑎2, … ,𝑎𝑛−1 ,với 𝑛 nguyên và 𝑛𝑛0, trong đó 𝑛0 là
nguyên không âm. Dãy số được gọi là lời giải hay 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ụ 14: Cho {𝑎𝑛} là dãy số thỏa mãn hệ thức truy hồi
𝑎𝑛 = 𝑎𝑛−1 − 𝑎𝑛−2 ,với 𝑛 ≥ 2, và giả sử 𝑎0=3,𝑎1= 5.
Tìm 𝑎2 và 𝑎3?
49 http://www.ptit.edu.vn
Hệ thức truy hồi
Định nghĩa: Hệ thức truy hồi đối với dãy số {𝑎𝑛} là công thức
biểu diễn 𝑎𝑛 qua một hay nhiều số hạng đi trước của dãy, cụ
thể là 𝑎1, 𝑎2, … ,𝑎𝑛−1 ,với 𝑛 nguyên và 𝑛𝑛0, trong đó 𝑛0 là
nguyên không âm. Dãy số được gọi là lời giải hay 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ụ 14: Cho {𝑎𝑛} là dãy số thỏa mãn hệ thức truy hồi
𝑎𝑛 = 𝑎𝑛−1 − 𝑎𝑛−2 ,với 𝑛 ≥ 2, và giả sử 𝑎0=3,𝑎1= 5.
Tìm 𝑎2 và 𝑎3?
Lời giải. Từ hệ thức truy hồi ta có:
𝑎2 = 𝑎1 − 𝑎0 = 5 − 3 = 2,
𝑎3 = 𝑎2 − 𝑎1 = 2 − 5 = −3.
50 http://www.ptit.edu.vn
Mô hình hóa hệ thức truy hồi
Sử dụng hệ thức truy hồi, ta có thể mô hình hóa được lớp rất
rộng trong thực tế. Mỗi bài toán cụ thể ta có một phương pháp
mô hình hóa khác nhau. Dưới đây là một số ví dụ điển hình.
Ví dụ 14: Bài toán dân số. Giả sử năm 1995, dân số thế giới
là 7 tỉ người. Mỗi năm, dân số thế giới tăng 3%. Đến năm
2020, dân số thế giới là bao nhiêu người?
51 http://www.ptit.edu.vn
Ví dụ 1 4
Lời giải: Gọi dân số thế giới sau 𝑛 năm là 𝑃𝑛. Khi đó, dân số
năm thứ 𝑛 bằng 1.03 dân số thế giới năm trước đó. Từ đó ta
có công thức truy hồi cho dãy {𝑃𝑛}như sau.
𝑃𝑛 = 1.03𝑃𝑛−1, với𝑛1 và 𝑃0 =7.
Để tính 𝑃𝑛 ta có thể sử dụng phương pháp lặp như sau:
𝑃1 = 1.03. 𝑃0 = 1.03. 7
𝑃2 = 1.03.𝑃1 = (1.03)2 .7
................. ..........
𝑃𝑛 = 1.03𝑃𝑛−1 = (1.03)𝑛 .7
Từ đó ta có 𝑃25 =(1.03)25.7
52 http://www.ptit.edu.vn
Ví dụ 1 5
Bài toán Lãi kép: Một người gửi 𝑋 đô la vào tài khoản của
mình tại ngân hàng với lãi suất kép 11% một năm. Hỏi sau 30
năm người đó có bao nhiêu tiền trong tài khoản?
53 http://www.ptit.edu.vn
Ví dụ 1 5
Gọi 𝑃𝑛 là tổng số tiền có trong tài khoản sau n năm. Vì số tiền
có trong tàikhoản sau n năm bằng số tièn có được trong (n-1)
năm cộng lãi suất năm thứ n. Nên dãy {𝑃𝑛 } thỏa mãn hệ thức
truy hồi:
𝑃𝑛 = 𝑃𝑛−1 +0.11 𝑃𝑛−1 =1.11 𝑃𝑛−1
Chúng ta có thể dùng phương pháp lặp để tìm công thức trên
cho 𝑃𝑛 . Dễ nhận thấy rằng:
𝑃𝑛 =10000
𝑃𝑛 =1.11. 𝑃0
𝑃𝑛 =1,11. 𝑃1 = (1.11)2 𝑃0
….
𝑃𝑛 =1.11. 𝑃𝑛−1 = (1.11)𝑛 𝑃0
Ta có thể chứng minh tính đúng đắn của công thức truy hồi bằng
quy nạp.
Thay 𝑃0 = 10000, và n=30 ta được: 𝑃30 = (1.11)𝑛−1 𝑃0
54 http://www.ptit.edu.vn
Ví dụ 1 6
Họ nhà thỏ và số Fibonacci: Một cặp thỏ (một con đực và
một con cái) được nhốt trên một hòn đảo. Giả sử một cặp thỏ
chưa sinh sản được trước khi đầy hai tháng tuổi. Từ khi chúng
đầy hai tháng tuổi, mỗi tháng chúng đẻ được một cặp thỏ. Hãy
tìm công thức truy hồi tính số cặp thỏ sau 𝑛 tháng?
55 http://www.ptit.edu.vn
Ví dụ 1 6
Giải: Gọi 𝑓𝑛là số cặp thỏ sau 𝑛 tháng. Ta sẽ chỉ ra, 𝑓𝑛(𝑛 = 0, 1, 2, …)
chính là dãy số Fibonacci?
Vì sau hai tháng một cặp thỏ mới sinh sản được, do vậy số thỏ
của tháng hiện tại bằng số thỏ của tháng trước 𝑓𝑛−1 cộng với số
thỏ mới đẻ là 𝑓𝑛−2.
Do vậy, dãy {𝑓𝑛} thỏa mãn hệ thức
𝑓𝑛= 𝑓𝑛−1 + 𝑓𝑛−2; 𝑛2 với 𝑓0 = 0, 𝑓1 = 1.
Số tháng Số cặp sinh sản Số cặp thỏ con Tổng số cặp thỏ
1 0 1 1
2 0 1 1
3 1 1 2
4 1 2 3
5 2 3 5
6 3 5 8
56 http://www.ptit.edu.vn
Ví dụ 1 7
Gọi 𝑎𝑛 là số xâu nhị phân độ dài 𝑛 không có 2 số 0 liên
tiếp. Xây dựng công thức truy hồi cho 𝑎𝑛 và tính 𝑎6.
57 http://www.ptit.edu.vn
Ví dụ 1 7
Gọi 𝑎𝑛 là số xâu nhị phân độ dài 𝑛 không có 2 số 0 liên
tiếp. Xây dựng công thức truy hồi cho 𝑎𝑛 và tính 𝑎6.
Gợi ý: Xét với 𝑛 ≥ 3.
Ta chia làm 2 trường hợp
1) Xâu nhị phân độ dài 𝑛 kết thúc bằng số 1 thỏa mãn yêu
cầu bài ra
2) Xâu nhị phân độ dài 𝑛 kết thúc bằng số 0 thỏa mãn yêu
cầu bài ra, suy ra số thứ (𝑛 − 1) phải là 1.
Dễ thấy trong trường hợp 1) có 𝑎𝑛−1 xâu thỏa mãn
Trường hợp 2) có 𝑎𝑛−2 xâu thỏa mãn
Vậy 𝑎𝑛 = 𝑎𝑛−1 + 𝑎𝑛−2
58 http://www.ptit.edu.vn
Ví dụ 18
Tính số từ mã: Một hệ máy tính coi một xâu các chữ
số hệ thập phân là một từ mã hợp lệ nếu nó chứa một
số chẵn chữ số 0. Ví dụ từ 168304073 là hợp lệ, từ
103203044 là không hợp lệ. Hãy tìm hệ thức truy hồi cho
các từ mã hợp lệ có độ dài 𝑛?
59 http://www.ptit.edu.vn
Ví dụ 18
Tính số từ mã: Một hệ máy tính coi một xâu các chữ số hệ thập
phân là một từ mã hợp lệ nếu nó chứa một số chẵn chữ số 0. Ví dụ
từ 168304073 là hợp lệ, từ 103203044 là không hợp lệ. Hãy tìm hệ
thức truy hồi cho các từ mã hợp lệ có độ dài 𝑛?
Gợi ý: Gọi số từ mã hợp lệ độ dài 𝑛 là 𝑎𝑛
Xét với 𝑛 ≥ 2, Ta chia làm 2 trường hợp
1) Xâu (𝑛 − 1) chữ số đầu tiên là từ mã hợp lệ, suy ra chữ số cuối
cùng khác 0. Vậy có 9𝑎𝑛−1
2) Xâu (𝑛 − 1) chữ số đầu tiên không là từ mã hợp lệ, suy ra chữ số
cuối cùng là 0. Vậy có (10𝑛−1 − 𝑎𝑛−1)
Vậy 𝑎𝑛 = 9𝑎𝑛−1 + (10𝑛−1 − 𝑎𝑛−1) = 8𝑎𝑛−1+10𝑛−1
60 http://www.ptit.edu.vn
Bài tập
a) Hãy tìm hệ thức truy hồi và điều kiện đầu để tính số các xâu
nhị phân có độ dài n có ít nhất một dãy hai số 0 liên tiếp?
b) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị phân
có độ dài n không có dãy ba số 1 liên tiếp?
c) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị
phân có độ dài n không có dãy bốn số 1 liên tiếp?
d) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị phân
có độ dài n có ít nhất một dãy ba số 1 liên tiếp?
e) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị
phân có độ dài n có ít nhất một dãy bốn số 1 liên tiếp?
f) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị phân
có độ dài n không có dãy k số 1 liên tiếp?
g) Hãy tìm hệ thức truy hồi và điều kiện đầu tìm số các xâu nhị phân
có độ dài n có ít nhất một dãy k số 1 liên tiếp?
61 http://www.ptit.edu.vn
Phương pháp lặp giải hệ thức truy hồi
Phương pháp: Lặp đến khi gặp điều kiện đầu trong các
công thức truy hồi.
Bài tập: Hãy tìm nghiệm của công thức truy hồi với điều
kiện đầu dưới đây:
a) an = an-1 + 2 với a0 =3.
b) an = an-1 + n với a0 =1.
c) an = an-1 + 2n + 3 với a0 =4.
d) an = an-1 + 2n với a0 =1.
e) an = an-1 - 2n - 3 với a0 =4.
62 http://www.ptit.edu.vn
Hệ thức truy hồi tuyến tính thuần nhất
Định nghĩa: Một hệ thức truy hồi tuyến tính thuần nhất
bậc 𝑘 với hệ số hằng số là hệ thức truy hồi có dạng:
63 http://www.ptit.edu.vn
Ví dụ
Hệ thức truy hồi 𝑃𝑛 = (1.11)𝑃𝑛−1 là hệ thức truy hồi tuyến
tính thuần nhất bậc 1
Hệ thức truy hồi 𝑓𝑛 = 𝑓𝑛−1 + 𝑓𝑛−2 là hệ thức truy hồi
tuyến tính thuần nhất bậc 2
Hệ thức truy hồi 𝑎𝑛 = 𝑎𝑛−5 là hệ thức truy hồi tuyến tính
thuần nhất bậc 5
Hệ thức truy hồi 𝑎𝑛 = 𝑎𝑛−1 + (𝑎𝑛−2)2 là không tuyến tính
Hệ thức truy hồi 𝐻 𝑛 = 2𝐻𝑛−1 + 1 là không thuần nhất
Hệ thức B 𝑛 = nB𝑛 -1 không có hệ số hằng số
64 http://www.ptit.edu.vn
Phương pháp giải
Phương pháp chung để giải các hệ thức truy hồi tuyến tính
thuần nhẩt là tìm nghiệm dưới dạng 𝑎𝑛 = 𝑟𝑛, trong đó 𝑟 là hằng
số. Chú ý rằng, 𝑎𝑛 = 𝑟𝑛 là nghiệm của hệ thức truy hồi khi và
chỉ khi
𝑟𝑛 = 𝑐1𝑟𝑛−1 + 𝑐2𝑟𝑛−2 + ⋯+ 𝑐𝑘𝑟𝑛−𝑘 (3)
𝑟𝑘 − 𝑐1𝑟𝑘−1 − 𝑐2𝑟𝑘−2 − ⋯− 𝑐𝑘 = 0 (4)
Phương trình
đặc trưng
65 http://www.ptit.edu.vn
Trường hợp nghiệm phân biệt
Định lý: Cho 𝑐1, 𝑐2là hai số thực. Giả sử phương trình
đặc trưng
𝑟2 − 𝑐1𝑟 − 𝑐2 =0
có hai nghiệm phân biệt 𝑟1, 𝑟2. Khi đó, dãy {𝑎𝑛} là nghiệm của
hệ thức truy hồi
𝑎𝑛 = 𝑐1𝑎𝑛−1 + 𝑐2𝑎𝑛−2
khi và chỉ khi
𝑎𝑛 = 𝛼1𝑟𝑛 1+ 𝛼2𝑟𝑛 2
Trong đó 𝛼1 và 𝛼2 là các hằng số.
Để tìm 𝛼1 và 𝛼2 ta sử dụng các điều kiện ban đầu.
66 http://www.ptit.edu.vn
Ví dụ 1 9
Bài toán: Tìm nghiệm của hệ thức truy hồi
𝑎𝑛 = 𝑎𝑛−1 + 2𝑎𝑛−2
với 𝑎0 = 2, 𝑎1 =7.
67 http://www.ptit.edu.vn
Ví dụ 19
Bài toán: Tìm nghiệm của hệ thức truy hồi
𝑎𝑛 = 𝑎𝑛−1 + 2𝑎𝑛−2
với 𝑎0 = 2, 𝑎1 = 7.
Giải:
Bước 1: Tìm nghiệm của phương trình đặc trưng
𝑟2 − 𝑟− 2 = 0 ⇔ 𝑟1= 2, 𝑟2=−1.
Bước 2: Xây dựng công thức tổng quát cho {𝑎𝑛}
𝑎𝑛 = 𝛼12𝑛 + 𝛼2(−1)𝑛
Bước 3: Xác định các hằng số dựa trên điều kiện ban đầu
1 2 2 1 3
2
2 1 2 7 1
Bước 4: Hoàn chỉnh nghiệm
𝑎𝑛 = 3. 2𝑛 −(−1)𝑛
68 http://www.ptit.edu.vn
Bài tập 1
Tìm nghiệm của hệ thức truy hồi 𝐹𝑛 = 𝐹𝑛−1 + 𝐹𝑛−2, 𝑛 ≥ 2,
với điều kiện ban đầu 𝐹0 = 0, 𝐹1 = 1.
69 http://www.ptit.edu.vn
Bài tập 2
Tìm nghiệm của các hệ thức truy hồi với điều kiện đầu
dưới đây
1) 𝑎𝑛 = 𝑎𝑛−1 + 6𝑎𝑛−2 với𝑛 ≥ 2 và 𝑎0 = 3, 𝑎1 = 6.
2) 𝑎𝑛 = 7𝑎𝑛−1 − 10𝑎𝑛−2 với𝑛 ≥ 2 và 𝑎0 = 2, 𝑎1 = 1.
3) 𝑎𝑛 = 13𝑎𝑛−1 − 22𝑎𝑛−2 với𝑛 ≥ 2 và 𝑎0 = 3, 𝑎1 = 15.
4) 𝑎𝑛 = −13𝑎𝑛−1 − 22𝑎𝑛−2 với𝑛 ≥ 2 và 𝑎0 = 3, 𝑎1 = 15.
70 http://www.ptit.edu.vn
Trường hợp nghiệm kép
Định lý: Cho 𝑐1, 𝑐2 là hai số thực. Giả sử phương trình đặc trưng
𝑟2 − 𝑐1𝑟 − 𝑐2 =0
có nghiệm kép 𝑟0= 𝑟1= 𝑟2. Khi đó, dãy {𝑎𝑛} là nghiệm của hệ thức
truy hồi
𝑎𝑛 = 𝑐1𝑎𝑛−1 + 𝑐2𝑎𝑛−2
khi và chỉ khi
𝑎𝑛 = 𝛼1𝑟𝑛 0+ 𝛼2𝑛𝑟𝑛 0
Trong đó 𝛼1 và 𝛼2 là các hằng số.
Để tìm 𝛼1 và 𝛼2 ta sử dụng các điều kiện ban đầu.
71 http://www.ptit.edu.vn
Ví dụ 20
Bài toán: Tìm nghiệm của hệ thức truy hồi
𝑎𝑛 = 6𝑎𝑛−1 − 9𝑎𝑛−2
với 𝑎0 = 1, 𝑎1 =6.
72 http://www.ptit.edu.vn
Ví dụ 20
Bài toán: Tìm nghiệm của hệ thức truy hồi
𝑎𝑛 = 6𝑎𝑛−1 − 9𝑎𝑛−2
với 𝑎0 = 1, 𝑎1 = 6.
Giải:
Bước 1: Tìm nghiệm của phương trình đặc trưng
𝑟2 − 6𝑟 + 9 = 0 ⇔ 𝑟0= 𝑟1= 𝑟2=3.
Bước 2: Xây dựng công thức tổng quát cho {𝑎𝑛}
𝑎𝑛 = 𝛼13𝑛 + 𝛼2𝑛3𝑛
Bước 3: Xác định các hằng số dựa trên điều kiện ban đầu
1 1 1 1
1
3 32 6 2 1
Bước 4: Hoàn chỉnh nghiệm
𝑎𝑛 = 3𝑛 +𝑛3𝑛
73 http://www.ptit.edu.vn
Bài tập
Tìm nghiệm của các hệ thức truy hồi thỏa mãn các điều
kiện ban đầu sau đây
1) 𝑎𝑛 = 2𝑎𝑛−1 − 𝑎𝑛−2, với𝑛 ≥ 2 và 𝑎0 = 4, 𝑎1 =1.
2) 𝑎𝑛 = 4𝑎𝑛−1 − 4𝑎𝑛−2, với 𝑛 ≥ 2 và 𝑎0 = 6, 𝑎1 =8.
3) 𝑎𝑛 = −4𝑎𝑛−1 − 4𝑎𝑛−2, với𝑛 ≥ 2 và 𝑎0 = 0, 𝑎1 =1.
4) 𝑎𝑛 = −6𝑎𝑛−1 − 9𝑎𝑛−2, với𝑛 ≥ 2 và 𝑎0 = 3, 𝑎1 =−3.
5) 𝑎𝑛 = 14𝑎𝑛−1 − 49𝑎𝑛−2 với 𝑛2 và 𝑎0 = 3, 𝑎1 = 35.
6) 𝑎𝑛 = −14𝑎𝑛−1 − 49𝑎𝑛−2 với𝑛2 và 𝑎0 = 3, 𝑎1 = 35.
74 http://www.ptit.edu.vn
Trường hợp nghiệm phức
Định lý: Cho 𝑐1, 𝑐2 là hai số thực. Giả sử phương trình
đặc trưng
𝑟2 − 𝑐1𝑟 − 𝑐2=0
có hai nghiệm phức liên hợp:
r1 rcos i.sin
r2 r cos i.sin
Khi đó, dãy {𝑎𝑛}là nghiệm của hệ thức truy hồi
𝑎𝑛 = 𝑐1𝑎𝑛−1 + 𝑐2𝑎𝑛−2
khi và chỉ khi
𝑎𝑛 = 𝑟𝑛(𝛼1 cos 𝑛𝜃 + 𝛼2 sin 𝑛𝜃 )
Trong đó 𝛼1 và 𝛼2 là các hằng số.
Để tìm 𝛼1 và 𝛼2 ta sử dụng các điều kiện ban đầu.
75 http://www.ptit.edu.vn
Ví dụ 21
Bài toán: Tìm nghiệm của hệ thức truy hồi
𝑎𝑛 = 2𝑎𝑛−1 − 4𝑎𝑛−2
với 𝑎1 = 4, 𝑎2 = 4.
76 http://www.ptit.edu.vn
Ví dụ 21
77 http://www.ptit.edu.vn
Trường hợp tổng quát
78 http://www.ptit.edu.vn
Bài tập
79 http://www.ptit.edu.vn
Nội dung
Giới thiệu
Các nguyên lý đếm cơ bản
Quy về bài toàn con
Hệ thức truy hồi
Bài tập
80 http://www.ptit.edu.vn