1 [Kinh nghiệm]Chuyển các bài toán tổ hợp về hệ thức truy hồi Thu Jun 23, 2011 5:48 am
Admin
Quản trị viên
Tại sao phải chuyển các bài toán tổ hợp về hệ thức truy hồi bởi các lý do sau:
1. Tổ hợp rất dễ nhầm lẫn, hay bỏ sót
2. [You must be registered and logged in to see this link.]
Ở đây đưa ra một số bài toán mẫu, có thể áp dụng luôn cách làm vào các bài thi. Rất hay.
1. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có 3 bit 0 liên tiếp.
Đặt Sn là số chuỗi nhị phân độ dài n, có 3 bit 0 liên tiếp:
Một chuỗi dài n (n>3) thoả mãn điều kiện đầu bài sẽ thuộc một trong các dạng sau:
A1 ( A là chuỗi có độ dài n -1, A chứa 3 bit 0 liên tục) , gọi số cách là S(n-1)
B10 (B là chuỗi có độ dài n - 2, B chứa 3 bít 0 liên tục), gọi số cách là S(n-2)
C100 (C là chuỗi có độ dài n - 3, C chứa 3 bít 0 liên tục, gọi số cách là S(n-3)
D000 (D là chuỗi tùy ý dài n - 3), số cách tính được luôn là 2(n-3)
Ta có công thức truy hồi:
Sn=S(n-1)+S(n-2)+S(n-3)+2(n-3)
Khởi tạo:
S1 = S2 = 0; S3 = 1.
2. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n không có 3 bit 0 liên tiếp.
Đặt Sn là số chuỗi nhị phân độ dài n, không có 3 bit 0 liên tiếp:
Một chuỗi dài n (n>3) thoả mãn điều kiện đầu bài sẽ thuộc một trong các dạng sau:
A1 (A là chuỗi có độ dài n - 1, không có 3 bit 0 liên tiếp), gọi số cách là S(n-1)
B10 (B là chuỗi có độ dài n - 2, không có 3 bit 0 liên tiếp), gọi số cách là S(n-2)
C100 (C là chuỗi có độ dài n - 3, không có 3 bit 0 liên tiếp), gọi số cách là S(n-3)
Nên ta có hệ thức truy hồi:
Sn=Sn-1 + Sn-2 + Sn-3
Khởi tạo: S1 = 2, S2 = 4, S3 = 7
3. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có chứa chuỗi con 01.
Đặt Sn là số chuỗi nhị phân có chứa chuỗi con 01 (*) ta suy ra ngay số chuỗi nhị phân không chứa chuỗi con 01 là 2n-Sn (**)
Chuỗi nhị phân có chứa chuỗi con 01, thuộc 1 trong 2 dạng:
Ax (A là chuỗi có độ dài n - 1, A chứa chuỗi con 01, x = 0 hoặc 1) gọi số cách là S(n-1), nhưng do x có 2 trạng thái 0 và 1, nên nhớ phải nhân 2.
B01 (B là chuỗi có độ dài n - 2, B không chứa chuỗi 01) lập luận như (**) thì B là 2(n-2)-Sn-2
Ta có hệ thức truy hồi:
Sn=2 Sn-1 + (2(n-2)-Sn-2)
hay Sn = 2 Sn-1 - Sn-2 + 2(n-2)
Giá trị khởi tạo: S1 = 0;S2 = 1
Thực ra Sn có thể tính dễ dàng không truy hồi như sau:
Chuỗi không thỏa mãn (*) chỉ có thể có dạng: 111...111000...000 số chuỗi thế này = n+1
Suy ra:
Sn=2n-(n+1)
4. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số cách đi lên n bậc thang nếu có thể đi 1, 2 hoặc 3 bước một lần.
Muốn bước lên tới bậc n(n>3) có 3 cách:
Bước tới bậc thứ n-1, rồi bước 1 bậc để lên n
Bước tới bậc thứ n-2 rồi bước 2 bậc để lên tới n
Bước tới bậc thứ n-3 rồi bước 3 bậc để lên tới n
Vậy ta xậy dựng được:
Sn = Sn-1 + Sn-2 + Sn-3
Khởi tạo:
S1=1;
S2=2;
S3=3;
5. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có một số chẵn bit 0.
Gọi Sn là số chuỗi có số chẵn bit 0
Gọi Kn là số chuỗi có số lẻ bít 0
Ta có Sn + Kn = 2n
Một chuỗi dài n có số chẵn bit 0, được thành lập bằng 2 cách
* Chuỗi số chẵn bít 0 có độ dài n-1, thêm 1
* Chuỗi số lẻ bít 0 có độ dài n-1, thêm 0
Ta có hệ thức sau:
Sn=S(n-1)+K(n-1)
Tương tự ta có:
Kn = S(n-1) + K(n-1)
Suy ra: Sn = Kn
Hay hệ thức truy hồi là:
Sn = 2S(n-1)
Với giá trị khởi tạo :
S1=1
[You must be registered and logged in to see this link.]
1. Tổ hợp rất dễ nhầm lẫn, hay bỏ sót
2. [You must be registered and logged in to see this link.]
Ở đây đưa ra một số bài toán mẫu, có thể áp dụng luôn cách làm vào các bài thi. Rất hay.
1. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có 3 bit 0 liên tiếp.
Đặt Sn là số chuỗi nhị phân độ dài n, có 3 bit 0 liên tiếp:
Một chuỗi dài n (n>3) thoả mãn điều kiện đầu bài sẽ thuộc một trong các dạng sau:
A1 ( A là chuỗi có độ dài n -1, A chứa 3 bit 0 liên tục) , gọi số cách là S(n-1)
B10 (B là chuỗi có độ dài n - 2, B chứa 3 bít 0 liên tục), gọi số cách là S(n-2)
C100 (C là chuỗi có độ dài n - 3, C chứa 3 bít 0 liên tục, gọi số cách là S(n-3)
D000 (D là chuỗi tùy ý dài n - 3), số cách tính được luôn là 2(n-3)
Ta có công thức truy hồi:
Sn=S(n-1)+S(n-2)+S(n-3)+2(n-3)
Khởi tạo:
S1 = S2 = 0; S3 = 1.
2. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n không có 3 bit 0 liên tiếp.
Đặt Sn là số chuỗi nhị phân độ dài n, không có 3 bit 0 liên tiếp:
Một chuỗi dài n (n>3) thoả mãn điều kiện đầu bài sẽ thuộc một trong các dạng sau:
A1 (A là chuỗi có độ dài n - 1, không có 3 bit 0 liên tiếp), gọi số cách là S(n-1)
B10 (B là chuỗi có độ dài n - 2, không có 3 bit 0 liên tiếp), gọi số cách là S(n-2)
C100 (C là chuỗi có độ dài n - 3, không có 3 bit 0 liên tiếp), gọi số cách là S(n-3)
Nên ta có hệ thức truy hồi:
Sn=Sn-1 + Sn-2 + Sn-3
Khởi tạo: S1 = 2, S2 = 4, S3 = 7
3. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có chứa chuỗi con 01.
Đặt Sn là số chuỗi nhị phân có chứa chuỗi con 01 (*) ta suy ra ngay số chuỗi nhị phân không chứa chuỗi con 01 là 2n-Sn (**)
Chuỗi nhị phân có chứa chuỗi con 01, thuộc 1 trong 2 dạng:
Ax (A là chuỗi có độ dài n - 1, A chứa chuỗi con 01, x = 0 hoặc 1) gọi số cách là S(n-1), nhưng do x có 2 trạng thái 0 và 1, nên nhớ phải nhân 2.
B01 (B là chuỗi có độ dài n - 2, B không chứa chuỗi 01) lập luận như (**) thì B là 2(n-2)-Sn-2
Ta có hệ thức truy hồi:
Sn=2 Sn-1 + (2(n-2)-Sn-2)
hay Sn = 2 Sn-1 - Sn-2 + 2(n-2)
Giá trị khởi tạo: S1 = 0;S2 = 1
Thực ra Sn có thể tính dễ dàng không truy hồi như sau:
Chuỗi không thỏa mãn (*) chỉ có thể có dạng: 111...111000...000 số chuỗi thế này = n+1
Suy ra:
Sn=2n-(n+1)
4. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số cách đi lên n bậc thang nếu có thể đi 1, 2 hoặc 3 bước một lần.
Muốn bước lên tới bậc n(n>3) có 3 cách:
Bước tới bậc thứ n-1, rồi bước 1 bậc để lên n
Bước tới bậc thứ n-2 rồi bước 2 bậc để lên tới n
Bước tới bậc thứ n-3 rồi bước 3 bậc để lên tới n
Vậy ta xậy dựng được:
Sn = Sn-1 + Sn-2 + Sn-3
Khởi tạo:
S1=1;
S2=2;
S3=3;
5. Tìm hệ thức truy hồi và điều kiện khởi tạo để tính số chuỗi nhị phân độ dài n có một số chẵn bit 0.
Gọi Sn là số chuỗi có số chẵn bit 0
Gọi Kn là số chuỗi có số lẻ bít 0
Ta có Sn + Kn = 2n
Một chuỗi dài n có số chẵn bit 0, được thành lập bằng 2 cách
* Chuỗi số chẵn bít 0 có độ dài n-1, thêm 1
* Chuỗi số lẻ bít 0 có độ dài n-1, thêm 0
Ta có hệ thức sau:
Sn=S(n-1)+K(n-1)
Tương tự ta có:
Kn = S(n-1) + K(n-1)
Suy ra: Sn = Kn
Hay hệ thức truy hồi là:
Sn = 2S(n-1)
Với giá trị khởi tạo :
S1=1
[You must be registered and logged in to see this link.]