Tài liệu Giáo trình Toán rời rạc - Chương 2: Tổ hợp - Nguyễn Đức Nghĩa: Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2
TỔ HỢP
(Combinatorics)
Chap02-1 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nội dung
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-2
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-3 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1 Hoán vị
• 2.1.1. Chỉnh hợp lặp chập m (m-permutation with repetition)
• 2.1.2. Chỉnh hợp không lặp chập m (m-permutation)
• 2.1.3. Hoán vị (permutation)
• 2.1.4. Liệt kê hoán vị
Chap02-4
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1.1. Hoán vị lặp (Chỉnh hợp lặp)
• Giả sử X là tập n phần tử.
• Định nghĩa. Ta gọ...
38 trang |
Chia sẻ: quangot475 | Lượt xem: 2059 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Toán rời rạc - Chương 2: Tổ hợp - Nguyễn Đức Nghĩa, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2
TỔ HỢP
(Combinatorics)
Chap02-1 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nội dung
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-2
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-3 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1 Hoán vị
• 2.1.1. Chỉnh hợp lặp chập m (m-permutation with repetition)
• 2.1.2. Chỉnh hợp không lặp chập m (m-permutation)
• 2.1.3. Hoán vị (permutation)
• 2.1.4. Liệt kê hoán vị
Chap02-4
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1.1. Hoán vị lặp (Chỉnh hợp lặp)
• Giả sử X là tập n phần tử.
• Định nghĩa. Ta gọi chỉnh hợp lặp chập m từ n phần tử của
X là bộ có thứ tự gồm m thành phần, mỗi thành phần đều là
phần tử của X.
• Chú ý: Trong tài liệu tiếng Anh, thuật ngữ "m-permutation
with repetition" được dùng để chỉ chỉnh hợp lặp chập m. Vì
thế có tài liệu dịch là hoán vị lặp.
• Ký hiệu số lượng chỉnh hợp lặp chập m từ n phần tử là Anm
• Theo định nghĩa, một chỉnh hợp lặp chập m từ n phần tử
của X có thể biểu diễn bởi
(a1, a2, ..., am), ai Î X, i = 1, 2, ..., m.
Chap02-5 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chỉnh hợp lặp
• Dễ thấy tập tất cả các chỉnh hợp lặp chập m từ n phần tử của X chính là
Xm. Vì vậy, theo nguyên lý nhân ta có
• Định lý. Anm = nm.
• Ví dụ 1. Tính số ánh xạ từ tập m phần tử U = {u1, u2, ..., um} vào tập n
phần tử V.
• Giải: Mỗi ánh xạ f cần đếm được xác định bởi bộ ảnh (f(u1), f(u2), ...,
f(um)), trong đó f(ui) Î V, i=1, 2, ..., m. Từ đó nhận được số cần tìm là
nm.
• Ví dụ 2. Tính số dãy nhị phân độ dài n.
• Giải: Mỗi dãy nhị phân độ dài n là một bộ gồm n thành phần, trong đó
mỗi thành phần chỉ nhận một trong hai giá trị (1 hoặc 0). Từ đó suy ra
số các dãy nhị phân độ dài n là 2n.
• Do mỗi tập con của tập n phần tử tương ứng với một vectơ đặc trưng là
một xâu nhị phân độ dài n, nên ta có
• Hệ quả: Số lượng tập con của tập n phần tử là 2n.
Chap02-6
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chỉnh hợp lặp
• Ví dụ 3. Cần phải phân bố 100 sinh viên vào 4 nhóm
thực tập ACCESS, FOXPRO, EXCEL, LOTUS. Mỗi
sinh viên phải tham gia vào đúng một nhóm và mỗi
nhóm có thể nhận một số lượng không hạn chế sinh
viên
• Giải: 4100 hay 1004 ?
• Mỗi cách phân bố cần tìm có thể biểu diễn bởi bộ có
thứ tự gồm 100 thành phần (b1, ..., b100) trong đó bi Î
{A, F, E, L} là nhóm thực tập của sinh viên thứ i. Từ
đó suy ra số cách phân bố cần đếm là 4100.
Chap02-7 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1.2. Chỉnh hợp không lặp
• Định nghĩa. Ta gọi chỉnh hợp không lặp chập m (m-permutation)
từ n phần tử của X là bộ có thứ tự gồm m thành phần, mỗi thành
phần đều là phần tử của X, các thành phần khác nhau từng đôi.
• Ký hiệu số lượng chỉnh hợp không lặp chập m từ n phần tử là
P(n,m). Rõ ràng, để tồn tại chỉnh hợp không lặp, thì m £ n.
• Theo định nghĩa, một chỉnh hợp không lặp chập m từ n phần tử
của X có thể biểu diễn bởi
(a1, a2, ..., am), ai Î X, i = 1, 2, ..., m, ai ¹ aj, i ¹ j.
• Việc đếm số lượng chỉnh hợp không lặp chập m từ n phần tử có
thể thực hiện theo nguyên lý nhân. Ta có
• Định lý.
!
( , ) ( 1)...( 1)
( )!
n
P n m n n n m
n m
= - - + =
-
Chap02-8
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chỉnh hợp không lặp
• VÝ dô 1. TÝnh sè đơn ¸nh tõ tËp m phÇn tö U = {u1, u2, ..., um}
vµo tËp n phÇn tö V.
• Gi¶i: Mçi đơn ¸nh f cÇn ®Õm ®îc x¸c ®Þnh bëi bé ¶nh (f(u1),
f(u2), ..., f(um)), trong ®ã f(ui) Î V, i=1, 2, ..., m, f(ui)¹ f(uj), i¹ j.
Tõ ®ã nhËn ®îc sè cÇn tìm lµ n(n-1)...(n-m+1).
• Ví dụ 2. Có bao nhiêu cách xếp 4 học sinh vào ngồi sau một cái
bàn có 10 chỗ ngồi với điều kiện không được phép ngồi lòng.
• Giải. Đánh số các học sinh từ 1 đến 4, các chỗ ngồi từ 1 đến 10.
Mỗi cách xếp học sinh cần đếm có thể biểu diễn bởi bộ có thứ tự
(g1, g2, g3, g4), trong đó gi Î {1, 2, ..., 10} là chỗ ngồi của học
sinh i. Từ điều kiện đầu bài gi¹ gj, i¹ j; do đó mỗi cách xếp cần
đếm là một chỉnh hợp không lặp chập 4 từ 10. Vậy số cách xếp
cần đếm là P(10,4) = 10.9.8.7 = 5040.
Chap02-9 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chỉnh hợp không lặp
• Chú ý: Để giải ví dụ 2 có thể lập luận trực tiếp theo nguyên
lý nhân:
• Ta lần lượt xếp các học sinh vào chỗ ngồi.
ΏHọc sinh thứ nhất có 10 cách xếp
ΏTiếp đến học sinh thứ hai có thể xếp vào 1 trong 9 chỗ còn
lại, ...
• Theo nguyên lý nhân có 10.9.8.7 = 5040 cách xếp
Chap02-10
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.1.3. Hoán vị
• Định nghĩa. Ta gọi hoán vị từ n phần tử của X là bộ có
thứ tự gồm n thành phần, mỗi thành phần đều là phần
tử của X, các thành phần khác nhau từng đôi.
• Ký hiệu số lượng hoán vị từ n phần tử là P(n).
• Theo định nghĩa, một hoán vị từ n phần tử của X có thể
biểu diễn bởi
(a1, a2, ..., an), ai Î X, i = 1, 2, ..., n, ai ¹ aj, i ¹ j.
• Rõ ràng P(n) = P(n,n). Vì vậy, ta có
• Định lý.
( ) ( , ) ( 1) ... 2 1 !P n P n n n n n= = ´ - ´ ´ ´ =
Chap02-11
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Hoán vị
• Ví dụ 1. 6 người đứng xếp thành một hàng ngang
để chụp ảnh. Hỏi có thể bố trí bao nhiêu kiểu?
• Giải: Mỗi kiểu ảnh là một hoán vị của 6 người. Từ
đó nhận được số kiểu ảnh có thể bố trí là 6! = 720.
• Ví dụ 2. Cần bố trí việc thực hiện n chương trình
trên một máy vi tính. Hỏi có bao nhiêu cách?
• Giải: Đánh số các chương trình bởi 1, 2,..., n. Mỗi
cách bố trí việc thực hiện các chương trình trên
máy có thể biểu diễn bởi một hoán vị của 1, 2, ...,
n. Từ đó suy ra số cách bố trí cần tìm là n!
Chap02-12
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Hoán vị
• Ví dụ 3. Có bao nhiêu song ánh từ tập n phần tử X
vào chính nó?
• Giải. Mỗi song ánh f cần đếm được xác định bởi
bộ ảnh (f(u1), f(u2), ..., f(un)), trong đó f(ui) Î X,
i=1, 2, ..., n, f(ui)¹ f(uj), i¹ j.
• Từ đó nhận được số cần tìm là n!
• Ví dụ 4. Có bao nhiêu cách bố trí n thợ thực hiện n
việc sao cho mỗi thợ thực hiện một việc và mỗi
việc do đúng một thợ thực hiện
• Giải: n!
Chap02-13 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
b
2.1.4. Liệt kê hoán vị
• Xét hai phương pháp liệt kê:
ΏCây liệt kê
ΏThuật toán sinh hoán vị
• Cây liệt kê. Ví dụ, liệt kê các hoán vị của {a, b, c}
Chap02-14
a c
cb
c
a c a
b
b
c
-
a b a
(a,b,c) (a,c,b) (b,a,c) (b,c,a) (c,a,b) (c,b,a)
Thành phần thứ 1
Thành phần thứ 2
Thành phần thứ 3
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Thuật toán sinh hoán vị
• Bµi to¸n ®Æt ra lµ: Cho X = {1, 2, ... , n}. H·y liÖt kª c¸c
ho¸n vÞ tõ n phÇn tö cña X.
• Mçi ho¸n vÞ tõ n phÇn tö cña X cã thÓ biÓu diÔn bëi bé cã
thø tù gåm n thµnh phÇn a = (a1, a2, ... , an) tho¶ m·n
ai Î X , i = 1, 2,..., n , ap ¹ aq, p ¹ q.
• Tríc hÕt ta xÐt quan hÖ thø tù tõ ®iÓn trªn tËp c¸c ho¸n vÞ.
• Ta nãi ho¸n vÞ a = (a1, a2,..., an) ®i tríc ho¸n vÞ a' = (a'1,
a'2, ... , a'n) trong thø tù tõ ®iÓn vµ ký hiÖu lµ a p a', nÕu
tìm ®îc chØ sè k (1 £ k £ n) sao cho:
a1 = a'1 , a2 = a'2, ... , ak-1 = a'k-1, ak < a'k .
Chap02-15 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• C¸c ho¸n vÞ tõ 3 phÇn tö cña X ={1, 2, 3} ®îc liÖt kª theo
thø tù tõ ®iÓn nh sau:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
• Ho¸n vÞ ®Çu tiªn trong thø tù tõ ®iÓn lµ (1, 2, ... , n)
• Ho¸n vÞ cuèi cïng lµ (n, n-1, ..., 1).
• Ta cÇn tm c¸ch tõ mét ho¸n vÞ ®ang cã a = (a1, a2, ... , an)
nÕu cha ph¶i lµ ho¸n vÞ cuèi cïng, ®a ra ho¸n vÞ kÕ tiÕp.
Chap02-16
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Thuật toán sinh kế tiếp
• Gi¶ sö a = (a1, a2, ... , an) lµ ho¸n vÞ cha ph¶i cuèi cïng,
khi ®ã ho¸n vÞ kÕ tiÕp nã cã thÓ x©y dùng nhê thùc hiÖn c¸c
biÕn ®æi sau:
ΏTìm tõ ph¶i qua tr¸i ho¸n vÞ ®ang cã chØ sè j ®Çu tiªn
tho¶ m·n aj < aj+1 (nãi c¸ch kh¸c: j lµ chØ sè lín nhÊt
tho¶ m·n aj < aj+1);
ΏTìm ak lµ sè nhá nhÊt cßn lín h¬n aj trong c¸c sè ë bªn
ph¶i aj ;
ΏĐổi chỗ aj víi ak ;
ΏLËt ngîc ®o¹n tõ aj+1 ®Õn an .
Chap02-17 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Gi¶ sö ®ang cã ho¸n vÞ (3, 6, 2, 5, 4, 1), cÇn x©y dùng ho¸n
vÞ kÕ tiÕp nã trong thø tù tõ ®iÓn.
• Ta cã chØ sè j = 3 (a3 =2 < a4 = 5).
• Sè nhá nhÊt cßn lín h¬n a3 trong c¸c sè bªn ph¶i cña a3 lµ
a5 = 4. Đæi chç a3 víi a5 ta thu ®îc (3, 6, 4, 5, 2, 1),
• Cuèi cïng, lËt ngîc thø tù ®o¹n a4 a5 a6 ta thu ®îc ho¸n vÞ
kÕ tiÕp (3, 6, 4, 1, 2, 5).
Chap02-18
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-19 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.2. Tổ hợp
• 2.2.1. Tổ hợp
• 2.2.2. Tổ hợp lặp
• 2.2.3. Tính chất của hệ số tổ hợp
• 2.2.4. Liệt kê
Chap02-20
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.2.1. Tổ hợp (m-combination)
• Định nghĩa. Ta gọi tổ hợp chập m từ n phần tử của X là bộ
không có thứ tự gồm m thành phần, mỗi thành phần đều là phần
tử của X, các thành phần khác nhau từng đôi.
• Ký hiệu số lượng tổ hợp chập m từ n phần tử là Cnm (đôi khi ta
sẽ sử dụng ký hiệu C(n,m))
• Theo định nghĩa, một tổ hợp chập m từ n phần tử của X có thể
biểu diễn bởi bộ không có thứ tự
{a1, a2, ..., am}, ai Î X, i = 1, 2, ..., m, ai ¹ aj, i ¹ j.
• Với giả thiết X={1, 2,...,n}, một tổ hợp chập m từ n phần tử của
X có thể biểu diễn bởi bộ có thứ tự
(a1, a2, ..., am), ai Î X, i = 1, 2, ..., m, 1 £ a1 < a2 < ...<am £ n.
Chap02-21
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tổ hợp
• Định lý.
• C(n,m) được gọi là hệ số tổ hợp.
• Chứng minh. Gọi Q là tập hợp tất cả các chỉnh hợp không
lặp chập m của n phần tử.
ΏPhân Q thành các lớp sao cho hai chỉnh hợp thuộc cùng một
lớp chỉ khác nhau về thứ tự.
ΏRõ ràng các lớp này tạo thành một phân hoạch của tập Q và
mỗi lớp như thế là tương ứng với một tổ hợp chập m của n.
Ώ Số chỉnh hợp trong mỗi lớp là bằng nhau và bằng m! (số
hoán vị).
ΏSố các lớp là bằng số tổ hợp chập m của n: C(n,m).
C
n
m
=
n!
m!(nÿm)!
(co the ky hieu la C(n,m) hay
n
m
ÿ
ÿ
ÿ
ÿ
ÿ
÷)
Chap02-22
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tổ hợp
• Theo nguyên lý cộng, ta có
|Q| = m! C(n,m)
suy ra
n(n-1)...(n-m+1) = m! C(n,m).
• Từ đó nhận được
• Định lý được chứng minh.
• Khi nhËn xÐt r»ng, gi¸ trÞ cña phÐp chia trong công thức của
định lý lµ mét sè nguyªn, ta nhËn ®îc mét kÕt qu¶ lý thó
trong sè häc: TÝch cña k sè tù nhiªn liªn tiÕp bao giê còng
chia hÕt cho k!.
( 1)( 2)...( 1) !
! !( )!
m
n
n n n n m n
C
m m n m
- - - +
= =
-
Chap02-23 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• VÝ dô 1. Cã n ®éi bãng thi ®Êu vßng trßn. Hái ph¶i tæ chøc
bao nhiªu trËn ®Êu?
• Gi¶i: Cø 2 ®éi thi ̀ cã mét trËn. Tõ ®ã suy ra sè trËn ®Êu sÏ
b»ng sè c¸ch chän 2 ®éi tõ n ®éi, nghÜa lµ b»ng
C(n,2) = n(n-1)/2.
• VÝ dô 2. Hái cã bao nhiªu giao ®iÓm cña c¸c ®êng chÐo cña
mét ®a gi¸c låi n (n ³ 4) ®Ønh n»m ë trong ®a gi¸c, nÕu biÕt
r»ng kh«ng cã ba ®êng chÐo nµo ®ång quy t¹i ®iÓm ë trong
®a gi¸c?
• Gi¶i: Cø 4 ®Ønh cña ®a gi¸c thi ̀ cã mét giao ®iÓm cña hai ®-
êng chÐo n»m trong ®a gi¸c. Tõ ®ã suy ra sè giao ®iÓm cÇn
®Õm lµ
C(n,4) = n(n-1)(n-2)(n-3)/24.
Chap02-24
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.2.2. Tổ hợp lặp. Bài toán chia kẹo
Xét bài toán: "Giả sử k và n là các số nguyên không
âm. Hỏi phương trình sau đây có bao nhiêu nghiệm?
Nội dung thực tế:
Cần chia n cái kẹo cho k em bé B1, B2, ,Bk. Hỏi có
bao nhiêu cách chia khác nhau?
Chap02-25 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Bài toán chia kẹo
• Cần thả n quả bóng giống nhau vào k phòng:
Room1, Room2, , Roomk. Hỏi có bao nhiêu cách
phân bổ khác nhau?
• Nếu gọi tj là số lượng quả bóng thả vào Roomj, j =
1, 2, ..., n; thì vấn đề đặt ra dẫn về bài toán: Hỏi
phương trình sau đây
có bao nhiêu nghiệm nguyên không âm?
Chap02-26
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Xét dãy n+k-1 hộp. Tô k-1 hộp nào đó bởi màu xám;
các hộp xám này sẽ là vách ngăn: D1, D2, D(k-1).
• Ví dụ: với n=16, k=6
• Thả n quả bóng vào n hộp còn lại, mỗi hộp 1 quả.
Giải bài toán chia kẹo
D1 D2 D3 D5D4
Chap02-27 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Ví dụ, với n=16, k=6
• Thả các quả bóng trước vách ngăn D1 vào Room1, các quả bóng
giữa vách ngăn D1 và D2 vào Room2, vân vân, và cuối cùng các
quả bóng sau D(k-1) vào Room(k).
Giải bài toán chia kẹo
Room1 Room2 Room3 Room4 Room5 Room6
D1 D2 D3 D5D4
Chap02-28
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Như vậy, rõ ràng tồn tại tương ứng 1-1 giữa một cách phân bổ
các quả bóng và một cách chọn k-1 hộp trong số n+k-1 hộp
làm vách ngăn.
• Do có tất cả
cách chọn k-1 hộp từ n+k-1 hộp, nên đó cũng chính là số cách
phân bổ n quả bóng vào k phòng, cũng chính là số cách chia n
cái kẹo cho k em bé và cũng chính là số nghiệm nguyên không
âm của phương trình: t1 + t2 + . . . + tk = n.
• Con số nói trên cũng được gọi là số tổ hợp lặp chập k từ n (k-
combination with repetition from n elements).
Giải bài toán chia kẹo
1
1
k
n k
C
-
+ -
Chap02-29 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Bài toán chia kẹo 2: Có bao nhiêu cách chia n cái kẹo cho
k em bé mà trong đó mỗi em được ít nhất một cái? Hay
tương đương: Hỏi phương trình sau đây :
t1 + t2 + ... + tk = n.
có bao nhiêu nghiệm nguyên dương?
• Trước hết chia cho mỗi em 1 cái kẹo, n-k cái kẹo còn lại sẽ
được chia cho k em bé. Bài toán dẫn về: Hỏi có bao nhiêu
cách chia n-k cái kẹo cho k em bé. Sử dụng kết quả bài
trước, ta có đáp số cần tìm là
Giải bài toán chia kẹo
1
1
k
n
C
-
-
Chap02-30
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.2.3. Tính chất của hệ số tổ hợp
• Díi ®©y lµ mét vµi tÝnh chÊt cña c¸c hÖ sè tæ hîp:
a) Đèi xøng
C(n,m) = C(n,n-m)
b) ĐiÒu kiÖn ®Çu
C(n,0) = 1; C(n,n) = 1, n ³ 0
c) C«ng thøc ®Ö qui
C(n,m) = C(n-1,m) + C(n-1, m-1), n > m > 0
• Điều kiện đầu suy trực tiếp từ định nghĩa của hệ số tổ hợp.
C¸c tính chất còn lại có thể chứng minh nhờ sử dụng công
thức trong định lý 4.
Chap02-31 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tam giác PASCAL
• Tõ b) vµ c), ta cã thÓ tÝnh tÊt c¶ c¸c hÖ sè tæ hîp chØ b»ng phÐp
céng. C¸c hÖ sè nµy ®îc tÝnh vµ viÕt lÇn lît theo tõng dßng (mçi
dßng øng víi mét gi¸ trÞ n=0, 1, ...), trªn mçi dßng chóng ®îc
tÝnh vµ viÕt lÇn lît theo tõng cét (mçi cét øng víi mét gi¸ trÞ m =
0, 1, ..., n) theo b¶ng tam gi¸c díi ®©y:
B¶ng nµy ®îc gäi lµ tam gi¸c Pascal.
m
Chap02-32
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tam giác PASCAL
• Tam giác Pascal, n=8
Chap02-33 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tam giác PASCAL
• Mỗi số trong ô lục giác bằng tổng của hai số của hai ô
chung cạnh ở phía trên nó
Chap02-34
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Khai triển nhị thức
• C¸c hÖ sè tæ hîp cã liªn quan chÆt chÏ víi viÖc khai triÓn
luü thõa cña mét nhÞ thøc. ThËt vËy, trong tÝch
(x+y)n = (x+y) (x+y) . . . (x+y)
hÖ sè cña xm yn-m sÏ lµ sè c¸ch chän m nh©n tö (x + y) mµ
tõ ®ã ta lÊy ra x vµ ®ång thêi trong n-m nh©n tö cßn l¹i ta
lÊy ra y, nghÜa lµ
0
0
... ...( )
=
n n n m nm m n
n n n
n
i i n i
n
i
xx y y yC C x C
C x y
-
-
=
= + + + ++
å
C«ng thøc trên ®îc gäi lµ khai triÓn nhÞ thøc Newton vµ c¸c hÖ
sè tæ hîp cßn ®îc gäi lµ c¸c hÖ sè nhÞ thøc.
Chap02-35 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tổng quát hóa
• Định lý khai triển nhị thức có thể tổng quát cho trường hợp
phải khai triển lũy thừa của tổng nhiều hơn hai số hạng. Khi
khai triển (x+y+z)n, ta có n!/(i!´j!´k!) cách tạo ra số hạng
chứa i thừa số là x, j thừa số là y và k thừa số là z. Vì thế số
này chính là hệ số của số hạng xi yj zk trong khai triển đang
xét.
• Ví dụ: Xét khai triển (x+y+z)7. Hệ số của xy2z4 là số cách
tạo ra số hạng dạng xyyzzzz. Số đó là bằng
7! / (1!2!4!) = 105.
Chap02-36
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Multinomials
Xét cách xây dựng dãy gồm n đối tượng từ k loại đối tượng sao cho trong đó có
n1 đối tượng loại 1, n2 đối tượng loại 2,..., nk đối tượng loại k (n1++nk = n).
Ký hiệu C(n; n1,...,nk) là số cách tạo dãy như vậy. Số này được gọi là hệ số bội
thức (multinomial).
Định lý.
CM. Ta lần lượt chọn các đồ vật. Đồ vật loại 1 có C(n,n1) cách chọn. Sau khi
đồ vật 1 đã chọn, đồ vật loại 2 có C(n-n1,n2) cách chọn, ..., cuối cùng đồ vật loại
k có C(nk,nk) cách chọn. Theo nguyên lý nhân
C(n; n1,...,nk) = C(n,n1)´C(n-n1,n2)´ ...´C(nk,nk),
từ đó suy ra kết quả cần chứng minh.
æ ö
= =ç ÷
è ø
1
1 2 1 2
!
( ; ,..., )
, ,..., ! !.... !
k
k k
n n
C n n n
n n n n n n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Multinomials
Khi k=2 ta có hệ số nhị thức C(n,n1).
Có thể chứng minh bằng cách khác: Nếu các đối tượng là không phân
biệt thì có n! cách. Chúng ta đã tính lặp lại n1!´´nk! lần, từ đó suy ra
định lý.
Ví dụ: Có bao nhiêu từ gồm 11chữ cái lấy từ 11 chữ cái của từ
“MISSISSIPPI”?
Giải: Trong từ “MISSISSIPPI” có tất cả có 1 chữ cái “M”, 4 chữ “I”, 4
chữ “S”, và 2 chữ “P”. Ta xét cách xếp vị trí cho các chữ cái này trong
từ cần xây dựng. Có C(11,1) vị trí để xếp "M", tiếp đến có C(10,4) để
xếp vị trí cho 4 chữ "I", 4 chữ "S" được xếp vào 6 vị trí còn lại bởi
C(6,4) cách và cuối cùng có C(2,2) cách xếp 2 chữ "P".
Theo nguyên lý nhân có:
C(11,1)C(10,4)C(6,4)C(2,2) = 11!/(1! 4! 4! 2!) = 34650.
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tổ hợp
• Trong c«ng thøc Niuton đặt y=1 ta có:
(*)
• RÊt nhiÒu ®¼ng thøc vÒ hÖ sè tæ hîp ®îc suy tõ (*). Ch¼ng h¹n,
trong (*) chän x =1 ta ®îc:
C(n,0) + C(n,1) + ...+ C(n,n) = 2n,
tøc lµ nhËn ®îc kÕt qu¶ ®· biÕt: sè c¸c tËp con cña mét n-tËp
b»ng 2n, cßn nÕu chän x = -1 ta ®îc:
C(n,0) – C(n,1) + C(n,2) - ...+(-1)nC(n,n) = 0,
tøc lµ sè c¸c tËp con ch½n (cã sè phÇn tö lµ sè ch½n) b»ng c¸c sè
tËp con lÎ vµ b»ng 2n-1.
• Nhiều tính chất của hệ số tổ hợp có thể thu được từ (*) bằng cách
lấy đạo hàm hoặc tích phân theo x hai vế của đẳng thức này một
số hữu hạn lần, sau đó gán cho x những giá trị cụ thể.
0 1 1 1...(1 )
n nn n n
n n n nx xx C C C x C
- -= + + + ++
Chap02-39 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.2.4. Liệt kê m-tập con
• Bµi to¸n ®Æt ra lµ: Cho X = {1, 2, ... , n}. H·y liÖt kª c¸c tËp
con m phÇn tö cña X.
• Mçi tËp con m phÇn tö cña X cã thÓ biÓu diÔn bëi bé cã thø
tù gåm m thµnh phÇn a = (a1, a2, ... , am) tho¶ m·n
ai Î X , i = 1, 2,..., m ; a1 < a2 < ... < am
• Xét hai phương pháp liệt kê tất cả m-tập con của X:
ΏCây liệt kê
ΏThuật toán sinh m-tập con
Chap02-40
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2
2.2.4. Cây liệt kê m-tập con
• Cây liệt kê. Ví dụ, liệt kê các tập con 3 phần tử của {1,...,5}
Chap02-41
1
3
32
3
4 3 4
4
4
5
-
4 5 5
123 124 125
Thành phần thứ 1
Thành phần thứ 2
Thành phần thứ 3 54 5 5
134 135 145 234 235 245 345
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội 42
Thuật toán sinh m-tập con
• Mçi tËp con m phÇn tö cña X cã thÓ biÓu diÔn bëi bé cã thø
tù gåm m thµnh phÇn a = (a1, a2, ... , am) tho¶ m·n
ai Î X , i = 1, 2,..., m ; a1 < a2 < ... < am
• Tríc hÕt ta ®a vµo quan hÖ thø tù tõ ®iÓn trên tập tất cả m-
tập con của X :
• Ta nãi tËp con a = (a1, a2,..., an) ®i tríc tËp con a' = (a'1,
a'2, ... , a'n) trong thø tù tõ ®iÓn vµ ký hiÖu lµ a p a', nÕu
tìm ®îc chØ sè k (1 £ k £ m) sao cho:
a1 = a'1 , a2 = a'2, ... , ak-1 = a'k-1, ak < a'k .
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• C¸c tËp con 3 phÇn tö cña X = {1, 2, 3, 4, 5} ®îc liÖt kª theo
thø tù tõ ®iÓn nh sau
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
Chap02-43 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Thuật toán sinh kế tiếp
• TËp con ®Çu tiªn trong thø tù tõ ®iÓn lµ (1, 2, ... , m)
• TËp con cuèi cïng lµ (n-m+1, n-m+2, ..., n).
• Gi¶ sö a=(a1, a2, ... , am) lµ tËp con ®ang cã cha ph¶i cuèi
cïng, khi ®ã tËp con kÕ tiÕp trong thø tù tõ ®iÓn cã thÓ x©y
dùng b»ng c¸ch thùc hiÖn c¸c quy t¾c biÕn ®æi sau ®èi víi
tËp ®ang cã:
ΏTìm từ bên phải dãy a1, a2,..., am phÇn tö ai ¹ n-m+i,
ΏThay ai bëi ai + 1;
ΏThay aj bëi ai + j - i, víi j = i+1, i+2,..., m.
Chap02-44
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ: n = 6, m = 4. Giả sử đang có tập con (1, 2, 5, 6), cần
xây dựng tập con kế tiếp nó trong thứ tự từ điển.
• 1 2 5 6
3 4 5 6 (tập con cuối cùng)
• Ta có i=2, thay a2 = 3, và a3 = 4, a4 = 5, ta được tập con kế
tiếp (1, 3, 4, 5).
Chap02-45 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-46
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.3. Nguyên lý bù trừ
(The inclusion-exclusion principle)
2.3.1. Phát biểu nguyên lý
2.3.2. Các ví dụ áp dụng
Chap02-47 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.3.1. Phát biểu nguyên lý
• Nguyên lý bù trừ trong trường hợp hai tập:
|A È B| = |A| + |B| - |A Ç B| (1)
Ví dụ: Giả sử A có 5 phần tử, B có 4 phần tử và có 2 phần tử
thuộc vào cả A lẫn B. Khi đó số phần tử của hợp hai tập là
5+4-2 = 7, chứ không phải là 5+4 = 9.
• CM:
Chap02-48
A B
U
1 lần
2 lần
AÇB
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ
• Mở rộng cho trường hợp 3 tập: Giả sử A, B, C là ba tập bất
kỳ. Khi đó:
|AÈB ÈC|
= |(A ÈB)ÈC)|
= |AÈB| + |C| - |(AÈB)ÇC|
= |A| +|B| + |C| - |AÇB| - |(AÇC)È(BÇC)|
= |A| +|B| + |C| - |AÇB| - |AÇC|- |BÇC)|+ |AÇBÇC)|
Vậy
|AÈBÈC| =
|A| +|B| + |C| - |AÇB| - |AÇC|- |BÇC)|+ |AÇBÇC)| (2)
Chap02-49 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ
|AÈB ÈC| = |A| +|B| + |C| - |AÇB| - |AÇC|- |BÇC)|+ |AÇBÇC)| (2)
Có thể chứng minh bằng lập luận trực tiếp:
• Trong tổng của ba số hạng đầu tiên các phần tử chung của A và
B được tính hai lần, vì vậy phải trừ bớt đi một lần. Tương tự
như vậy đối với các phần tử chung của A và C và các phần tử
chung của B và C.
• Thế nhưng, trừ như vậy là hơi quá, bởi vì những phần tử chung
của cả ba tập A, B và C chưa được tính đến trong tổng của 6 số
hạng đầu tiên. Vì vậy phải cộng bù lại.
Chap02-50
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ minh họa
• Giả sử mỗi hình tròn có diện tích là 4. Giao của hai hình tròn có diện
tích 2, Giao của cả ba hình tròn có diện tích 1. Hỏi tổng diện tích bị phủ
bởi ba hình tròn là bao nhiêu?
• A=4+4+4 – 2 -2 -2 + 1 = 12 – 6 + 1 = 7.
Chap02-51
A
C
ÇA B
ÇA C ÇB C
Ç ÇA B C
U
dt = 2-1=1
dt = 1
dt = 4-3=1
| | | | | | | | | | | | | | | |È È = + + - Ç - Ç - Ç + Ç ÇA B C A B C A B B C C A A B C
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• §Þnh lý. Gi¶ sö A1, A2, ... , Am lµ c¸c tËp h÷u h¹n. Khi ®ã
trong ®ã
(Nk lµ tæng sè phÇn tö cña tÊt c¶ c¸c tËp lµ giao cña k tËp
lÊy tõ m tËp ®· cho, nãi riªng
N1 = N(A1) + ... + N(Am),
Nm = N(A1 Ç A2 Ç ... Ç Am) ).
Nguyên lý bù trừ
1 2
1 21 ...
( ... ), 1,2,...,
k
k
k i i i
i i i m
N N A A A k m
£ < < < £
= Ç Ç Ç =å
1
1 2 1 2( ... ) ... ( 1)
m
m mN A A A N N N
-È È È = - + + -
Chap02-52
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ
• Chøng minh.
• Chó ý r»ng, sè c¸c giao cña k tËp lÊy tõ m tËp b»ng C(m,k), k=1,2,..., m.
• §Ó chøng minh c«ng thøc cña nguyªn lý bï trõ, ta sÏ tÝnh xem mçi phÇn
tö cña tËp A1 È A2 È . . . È Am ®îc ®Õm bao nhiªu lÇn trong vÕ ph¶i:
• XÐt mét phÇn tö tuú ý a Î A1 È A2 È . . . È Am. Gi¶ sö a lµ phÇn tö cña
k tËp trong sè m tËp ®· cho. Khi ®ã a ®îc ®Õm ë vÕ ph¶i cña c«ng thøc
C(k,1) – C(k,2)+ ... + (-1)k-1C(k,k)
lÇn. Do
C(k,1) – C(k,2)+ ... + (-1)k-1C(k,k)
= 1 – [C(k,0) – (C(k,1) – C(k,2)+ ... + (-1)k-1C(k,k))] = 1 – (1 –
1)k = 1
Tõ ®ã suy ra ®¼ng thøc cÇn chøng minh lµ ®óng
Chap02-53 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ
• B©y giê ta ®ång nhÊt tËp Ak víi tÝnh chÊt Ak cho trªn mét tËp X
nµo ®ã vµ ®Õm xem cã bao nhiªu phÇn tö cña X kh«ng tho¶ m·n
bÊt cø mét tÝnh chÊt Ak nµo c¶.
• Gäi`N lµ sè cÇn ®Õm. Do A1 È A2 È . . . È Am lµ tËp tÊt c¶ c¸c
phÇn tö cña X tho¶ m·n Ýt nhÊt mét trong sè m tÝnh chÊt ®· cho,
nªn ta cã:
`N = N(X ) N(A1 È A2 È . . . È Am)
= N(X ) N1 + N2 -...+( 1)
mNm
trong ®ã Nk lµ tæng c¸c phÇn tö cña X tho¶ m·n k tÝnh chÊt lÊy tõ
m tÝnh chÊt ®· cho.
• C«ng thøc thu ®îc cho phÐp tÝnh`N qua c¸c Nk trong trêng hîp
c¸c sè nµy dÔ tÝnh to¸n h¬n.
Chap02-54
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Các ví dụ áp dụng
• VÝ dô 1. Hái trong tËp X = {1, 2, ..., 10000} cã bao nhiªu sè
kh«ng chia hÕt cho bÊt cø sè nµo trong c¸c sè 3, 4, 7?
• Gi¶i. Gäi
Ai ={ x Î X : x chia hÕt cho i} , i = 3, 4, 7.
• Khi ®ã A3 È A4 È A7 lµ tËp c¸c sè trong X chia hÕt cho Ýt nhÊt mét
trong 3 sè 3, 4, 7, suy ra sè lîng c¸c sè cÇn ®Õm sÏ lµ
N(X) – N(A3 È A4 È A7) = 10000 – (N1– N2 + N3).
• Ta cã
N1 = N(A3) + N(A4) + N(A7)
= [10000/3] + [10000/4] + [10000/7]
= 3333 + 2500 + 1428 =7261,
Chap02-55 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
N2 = N(A3 Ç A4) + N(A3 Ç A7) + N(A4 Ç A7)
= [10000/(3´4)] + [10000/(3´7)] + [10000/(4´7)]
= 833 + 476 + 357 = 1666,
N3 = N(A3 Ç A4 Ç A7) = [10000/(3´4´7) ] = 119,
ë ®©y ký hiÖu [ r ] ®Ó chØ sè nguyªn lín nhÊt kh«ng vît qu¸ r.
• Tõ ®ã sè lîng c¸c sè cÇn ®Õm lµ
10000 - 7261 + 1666 - 119 = 4286.
Chap02-56
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• VÝ dô 2. Cã bao nhiªu x©u nhÞ ph©n ®é dµi 10 hoÆc lµ b¾t
®Çu bëi 00 hoÆc lµ kÕt thóc bëi 11?
• Gi¶i. Ta cã
ΏSè x©u nhÞ ph©n ®é dµi 10 b¾t ®Çu bëi 00 lµ 28 = 256
ΏSè x©u nhÞ ph©n ®é dµi 10 kÕt thóc bëi 11 lµ 28 = 256.
ΏSè x©u nhÞ ph©n ®é dµi 10 b¾t ®Çu bëi 00 vµ kÕt thóc bëi
11 lµ 26 = 64.
• Theo nguyªn lý bï trõ suy ra sè x©u nhÞ ph©n hoÆc b¾t ®Çu
bëi 00 hoÆc kÕt thóc bëi 11 lµ
256 + 256 - 64 = 448.
Chap02-57 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Ví dụ 3. Đếm số nghiệm nguyên không âm của phương
trình x1 + x2 + x3 = 11, thỏa mãn x1 £ 3, x2 £ 4, x3 £ 6.
• Giải. Xét các tính chất
P1: x1 > 3 ; P2: x2 > 4; P3: x3 > 6.
• Lời giải cần đếm là lời giải không thỏa mãn bất cứ tính chất
nào trong P1, P2, P3. Theo nguyên lý bù trừ số lượng lời giải
cần đếm là bằng
N – N1 + N2 – N3.
• Ta cần tính các số N, N1 , N2 , N3.
• Tổng số nghiệm nguyên không âm của phương trình là
bằng N = C(3+11–1, 11) = 78.
Chap02-58
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Để đếm số lời giải thỏa mãn tính chất x1 > 3 ta lập luận như sau: Đổi
biến y1 = x1 - 4, số nghiệm nguyên không âm của phương trình x1 + x2 +
x3 = 11 thỏa mãn tính chất x1 > 3 chính là bằng số nghiệm nguyên
không âm của phương trình y1 + x2 + x3 = 11 – 4 = 7. Vậy
N(P1) = C(3+7–1,7) = 36.
• Tương tự như vậy ta có
• Số lời giải thỏa mãn tính chất x2>4: N(P2) = C(3+6-1,6) = 28.
• Số lời giải thỏa mãn tính chất x3>6: N(P3) = C(3+4-1,4) = 15.
• Số lời giải thỏa mãn tính chất x1>3 và x2>4: N(P1ÇP2)=C(3+2-1,2)=6.
• Số lời giải thỏa mãn tính chất x1>3 và x3>6: N(P1ÇP3)=C(3+0-1,0)=1.
• Số lời giải thỏa mãn tính chất x2>4 và x3>6: N(P2ÇP3)=0.
• Số lời giải thỏa mãn tính chất x1>3, x2>4 và x3>6: N(P1ÇP2ÇP3)=0.
• Ta thu được số lượng lời giải thỏa mãn điều kiện đầu bài là
78 – 36 – 28 –15 + 6 + 1 + 0 – 0 = 6.
Chap02-59 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Bài toán bỏ thư
• Bµi to¸n bá th. Cã n l¸ th vµ n phong b× ghi s½n ®Þa chØ. Bá
ngÉu nhiªn c¸c l¸ th vµo c¸c phong b×. Hái x¸c suÊt ®Ó x¶y
ra kh«ng mét l¸ th nµo bá ®óng ®Þa chØ lµ bao nhiªu?
• Gi¶i: §¸nh sè c¸c l¸ th tõ 1 ®Õn n, c¸c phong b× t¬ng øng
víi chóng còng ®îc ®¸nh sè tõ 1 ®Õn n. Mçi c¸ch bá th vµo
phong b× cã thÓ biÓu diÔn bëi bé cã thø tù
(p1, p2, ..., pn),
trong ®ã pi lµ phong b× bá l¸ thø thø i. Tõ ®ã suy ra tån t¹i t-
¬ng øng 1-1 gi÷a mét c¸ch bá th vµo phong b× víi mét ho¸n
vÞ cña n sè. VËy cã tÊt c¶ n! c¸ch bá th.
Chap02-60
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ: Bài toán bỏ thư
• VÊn ®Ò cßn l¹i lµ ®Õm sè c¸ch bá th sao cho kh«ng cã l¸ th
nµo ®óng ®Þa chØ.
• Gäi X lµ tËp hîp tÊt c¶ c¸c c¸ch bá th vµ Ak lµ tÝnh chÊt l¸ th
thø k bá ®óng ®Þa chØ. Khi ®ã, theo nguyªn lý bï trõ ta cã:
`N = N(X ) N1 + N2 ...+( 1)nNn
trong ®ã`N lµ sè cÇn t×m, N(X) = n!, cßn Nk lµ sè tÊt c¶ c¸c
c¸ch bá th sao cho cã k l¸ th ®óng ®Þa chØ.
Chap02-61 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ: Bài toán bỏ thư
• Chó ý lµ
nghÜa lµ, Nk lµ tæng theo mäi c¸ch lÊy k l¸ th tõ n l¸, víi mçi c¸ch
lÊy k l¸ th, cã (n-k)! c¸ch bá trong ®ã k l¸ nµy ®óng ®Þa chØ, ta nhËn
®îc:
Nk = C(n, k).(n-k)! = n! / k!
• Do ®ã
• VËy x¸c suÊt cÇn t×m lµ:
N n
n
n
= - + - +
-
! (
! !
...
( )
!
)1
1
1
1
2
1
1
1
1
1
2
1
- + - +
-
! !
...
( )
!
n
n
1 2
1 21 ...
( ... ), 1,2,...,
k
k
k i i i
i i i n
N N A A A k n
£ < < < £
= Ç Ç Ç =å
Chap02-62
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý bù trừ
• Mét ®iÒu lý thó lµ x¸c suÊt nµy dÇn ®Õn e-1 (nghÜa lµ cßn lín
h¬n 1/3) khi n kh¸ lín. Sè thu ®îc trong bµi to¸n trªn ®îc
gäi lµ sè mÊt thø tù (number of derangements) vµ ®îc ký
hiÖu lµ Dn.
• Díi ®©y lµ mét vµi gi¸ trÞ cña Dn, cho ta thÊy Dn t¨ng nhanh
nh thÕ nµo khi n t¨ng:
Chap02-63
n 2 3 4 5 6 7 8 9 10 11
Dn 1 2 9 44 265 1854 14833 133496 1334961 4890741
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Số lượng toàn ánh
A
f
B
Không tồn tại điểm không có mũi tên đi vào
Toàn ánh: Ánh xạ f từ A vào B là toàn ánh nếu với mỗi phần tử b thuộc B
đều tìm được a thuộc A sao cho f(a)=b.
Giả sử A={a1, a2, ..., am } và B={b1, b2, ..., bn }, m ³ n.
Hỏi có bao nhiêu toàn ánh từ A vào B?
Ta muốn tất cả bi đều thuộc miền giá trị của f.
Gọi Pi là tính chất "bi không nằm trong
miền giá trị của f ".
Khi đó ta cần đếm số ánh xạ không có bất
cứ tính chất nào trong số các tính chất P1,..., Pn.
Ký hiệu:
Pi = tập các ánh xạ từ A vào B có tính chất Pi , i=1, 2, ...,n.
Chap02-64
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Số lượng toàn ánh
• Theo nguyên lý bù trừ số lượng toàn ánh cần đếm là:
N – N1 + N2 – ... +(–1)n Nn.
• Ta có:
ΏN - số ánh xạ từ m-tập A vào n-tập B: nm
ΏDo N(Pi) - số ánh xạ không có bi trong miền giá trị,
nên N(Pi) = (n-1)
m, do đó N1 = C(n,1) (n-1)m
ΏDo N(PiÇPj) - số ánh xạ không có bi và bj trong miền giá trị,
nên N(PiÇPj) = (n-2)m , do đó N2 = C(n,2) (n-2)m.
ΏTổng quát ta có
dó đó Nk = C(n,k) (n - k)m.
• Từ đó ta có số lượng toàn ánh là:
nm – C(n,1)(n-1)m + C(n,2)(n-2)m – ...+ (-1)n-1C(n,n-1)1m.
Chap02-65
1 2
( ... ) ( )
k
m
i i i
N P P P n kÇ Ç Ç = -
1 2
1 21 ...
( ... ), 1,2,...,
k
k
k i i i
i i i n
N N P P P k n
£ < < < £
= Ç Ç Ç =å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Số lượng toàn ánh
• Ta viết gọn công thức
nm – C(n,1)(n-1)m + C(n,2)(n-2)m – ...+ (-1)n-1C(n,n-1)1m.
dưới dạng sau đây:
Chap02-66
1 2
0
1 1
0 1 2 1 1
( 1) ( 2) ... ( 1) 1
( 1) (
( 0) ( 1) ( 2) ... ( 1) 1 ( 1)
)
0
m m m n n m
n n n
m m
n
k k m
m n n m n n m
n n n n n
n
k
n C n C n C
C
C n k
n C n C n C C
- -
-
=
-
- - + - - + -
= - - - + - - + - +
= - -
-
å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-67 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4 Công thức đệ qui và hàm sinh
2.4.1. Xây dựng công thức đệ qui
2.4.2. Giải công thức đệ qui
2.4.3. Hàm sinh và công thức đệ qui
Chap02-68
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1. Xây dựng công thức đệ qui
• Công thức đệ qui là công thức cho phép tính giá trị
của các đại lượng theo từng bước, dựa vào các giá
trị tính ở các bước trước và một số giá trị đầu.
• Là một kỹ thuật quan trọng cho phép giải nhiều bài
toán đếm
Chap02-69 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Ví dụ 1. Công thức đệ qui cho C(n,k) - số lượng tập con k
phần tử của tập n phần tử X.
• Theo định nghĩa
C(n,0) = 1 và C(n,n) = 1 (1)
• Giả sử n > k > 0, ta xây dựng công thức đệ qui để tính
C(n,k). Cố định một phần tử x Î X. Phân tập các tập con k
phần tử của X ra thành 2 tập:
ΏA – tập các tập con k phần tử có chứa x;
ΏB – tập các tập con k phần tử không chứa x.
• Rõ ràng A và B tạo thành phân hoạch của tập tất cả các tập
con k phần tử của X.
Chap02-70
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Rõ ràng A và B tạo thành phân hoạch của tập tất cả các tập con
k phần tử của X. Do đó, theo nguyên lý cộng:
C(n,k) = |A| + |B|.
• Ta có:
ΏDo mỗi tập con trong A có chứa x, nên k-1 phần tử còn lại
của nó là một tập con k-1 phần tử của tập X \ {x}, suy ra
|A| = C(n-1,k-1)
ΏTương tự như vậy,
|B| = C(n-1, k)
• Vậy,
C(n,k) = C(n-1, k-1) + C(n-1,k), n > k > 0 (2)
Chap02-71 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Công thức đệ qui (2) cùng với điều kiện đầu (1) cho phép
tính giá trị của C(n, k) với mọi giá trị của n và k.
• Công thức đệ qui (2) cho phép viết hàm đệ qui sau đây để
tính giá trị của C(n,k):
function C(n,k: integer): longint;
begin
if (k=0) or (k=n) then C:=1
else C:= C(n-1,k-1) + C(n-1,k);
end;
Chap02-72
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Hàm vừa xây dựng không cho một cách tính hiệu quả. Thực
vậy, nếu gọi C*(n,k) là số phép toán “gán giá trị” phải thực
hiện bởi lệnh gọi hàm C(n,k), dễ thấy
C*(n,0) =1; C*(n,n) = 1
C*(n,k) = C*(n-1, k-1) + C*(n-1,k)+1, n > k > 0
tức là C*(n,k) thoả mãn công thức đệ qui như hệ số tổ hợp
C(n, k), do đó:
C*(n,k) ~ n!/[k!(n-k)!]
và giá trị này là rất lớn khi n lớn và k = n/2.
• Dễ dàng xây dựng một hàm lặp để tính giá trị của C(n, k)
một cách hiệu quả hơn.
Chap02-73 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• VÝ dô 2. Trªn mÆt ph¼ng, kÎ n ®êng th¼ng sao cho kh«ng cã 2 ®êng nµo song
song vµ 3 ®êng nµo ®ång quy. Hái mÆt ph¼ng ®îc chia thµnh mÊy phÇn ?
• Gi¶i: Gäi sè phÇn mÆt ph¼ng ®îc chia bëi n ®êng th¼ng lµ Sn. Râ ràng
S1 = 2, (3)
• XÐt n > 1, ta tìm c«ng thøc ®Ö qui cho Sn.
• Gi¶ sö ®· kÎ n-1 ®êng th¼ng, khi ®ã mÆt ph¼ng ®îc chia ra lµm Sn-1 phÇn. B©y
giê kÎ thªm ®êng th¼ng thø n. Đêng th¼ng nµy c¾t n-1 ®êng th¼ng ®· vÏ t¹i n-
1 giao ®iÓm. C¸c giao ®iÓm nµy chia ®êng th¼ng thø n ra lµm n phÇn, mçi
phÇn nh vËy sÏ chia mét phÇn nµo ®ã sinh bëi n-1 ®êng th¼ng vÏ tríc ®ã ra
lµm hai phÇn. Tõ ®ã suy ra, sau khi vÏ ®êng th¼ng thø n sè phÇn tăng thªm lµ
n. Tõ ®ã nhËn ®îc c«ng thøc ®Ö qui
Sn = Sn-1 + n, n ³ 2 (4)
Chap02-74
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
G41
G21
G32
2.4.1 Xây dựng công thức đệ qui
l1
l2
l3
l4
G11
G22
G31
phần 1
phần 2
phần 3
phần 4
Chap02-75
G42
G12
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Để tìm công thức trực tiếp, ta cộng các hệ thức Sk = Sk-1 + k víi
k = 2, ..., n.
S1 = 2
S2 = S1 + 2
S3 = S2 + 3
...
Sn-1= Sn-2 + (n-1)
Sn = Sn-1 + n
Sn = 2 + 2 + 3 + ...+(n-1) + n = n(n+1)/2 + 1 = (n
2+n+2)/2
Chap02-76
Phương pháp thế:
Sn = Sn-1+n
= Sn-2+(n-1)+n
= Sn-3 +(n-2)+(n-1) +n
= ....
= S1+2+3+....+(n-1)+n
= 2+2+3+....+(n-1)+n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Ví dụ 3. Xây dựng công thức đệ qui cho fn là số chỉnh hợp lặp
chập n từ hai phần tử 0, 1 (cũng chính là xâu nhị phân độ dài n)
không chứa hai số 0 liền nhau.
• Giải. Ta có
f1 = 2; f2 = 3
Giả sử n > 2. Phân tập các chỉnh hợp cần đếm ra thành 2 tập:
ΏA – tập các chỉnh hợp cần đếm chứa 1 ở vị trí đầu tiên;
ΏB – tập các chỉnh hợp cần đếm chứa 0 ở vị trí đầu tiên;
• Rõ ràng A và B tạo thành phân hoạch của tập tất cả các chỉnh
hợp cần đếm.
Chap02-77 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Do đó, theo nguyên lý cộng:
fn = |A| + |B|.
• Ta có:
ΏDo mỗi chỉnh hợp trong A chứa 1 ở vị trí đầu tiên, nên n-1 phần tử còn lại
sẽ tạo thành một chỉnh hợp cần đếm độ dài n-1, suy ra
|A| = fn-1
ΏDo mỗi chỉnh hợp trong B chứa 0 ở vị trí đầu tiên, nên vị trí thứ hai của
nó phải là 1 còn n-2 phần tử còn lại sẽ tạo thành một chỉnh hợp cần đếm
độ dài n-2, suy ra
|B| = fn-2
• Vậy, ta thu được công thức đệ qui
f1 = 2; f2 = 3;
fn = fn-1 + fn-2, n > 2 (5)
Chap02-78
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Ví dụ 4. Xây dựng công thức đệ qui cho Qn là số lượng cách phủ
lưới ô vuông kích thước 2´n bằng các quân bài domino.
• Giải. Ta có
Q1 = 1; Q2 = 2 (xem hình vẽ)
• Giả sử n > 2. Phân tập các cách phủ cần đếm ra thành 2 tập:
ΏA – tập các cách phủ trong đó ô ở góc trên trái được phủ bởi
quân bài nằm đứng;
ΏB – tập các cách phủ trong đó ô ở góc trên trái được phủ bởi
quân bài nằm ngang.
• Rõ ràng A và B tạo thành phân hoạch của tập tất cả các cách phủ
cần đếm.
Chap02-79 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Do đó, theo nguyên lý cộng:
Qn = |A| + |B|.
• Ta có:
Ώ|A| = Qn-1
Ώ|B| = Qn-2
• Vậy, ta thu được công thức đệ qui
Q1 = 1; Q2 = 2;
Qn = Qn-1 + Qn-2, n > 2 (6)
...
...
...
...
A
B
Chap02-80
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Ví dụ 5. (Bài toán tháp Hà nội). Trò chơi tháp Hà nội được
trình bày như sau: “Có 3 cọc a, b, c. Trên cọc a có một chồng
gồm n cái đĩa đường kính giảm dần từ dưới lên trên. Cần
phải chuyển chồng đĩa từ cọc a sang cọc c tuân thủ qui tắc:
mỗi lần chỉ chuyển 1 đĩa và chỉ được xếp đĩa có đường kính
nhỏ hơn lên trên đĩa có đường kính lớn hơn. Trong quá trình
chuyển được phép dùng cọc b làm cọc trung gian”.
• Bài toán đặt ra là: Tìm công thức đệ qui cho hn là số lần di
chuyển đĩa ít nhất cần thực hiện để hoàn thành nhiệm vụ đặt
ra trong trò chơi tháp Hà nội.
Chap02-81 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Gi¶i: Râ rµng:
h1 = 1.
• Gi¶ sö n ≥ 2. ViÖc di chuyÓn ®Üa gåm c¸c bíc:
(i) ChuyÓn n-1 ®Üa tõ cäc a ®Õn cäc b sö dông cäc c lµm
trung gian. Bíc nµy ®îc thùc hiÖn nhê gi¶ thiÕt quy n¹p.
(ii) ChuyÓn 1 ®Üa (®Üa víi ®êng kÝnh lín nhÊt) tõ cäc a ®Õn
cäc c.
(iii) ChuyÓn n-1 ®Üa tõ cäc b ®Õn cäc c (sö dông cäc a lµm
trung gian). Bíc nµy ®îc thùc hiÖn nhê gi¶ thiÕt quy
n¹p.
Chap02-82
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Bíc (i) vµ (iii) ®ßi hái gi¶i bµi to¸n th¸p Hµ néi víi n-1
®Üa, vì vËy sè lÇn di chuyÓn ®Üa Ýt nhÊt cÇn thùc hiÖn trong
hai bíc nµy lµ 2hn-1. Do ®ã ta cã c«ng thøc ®Ö qui sau:
hn = 2hn-1 + 1, n ≥ 2.
• Sö dông c«ng thøc ®Ö qui vµ ®iÒu kiÖn ®Çu võa tìm ®îc
®èi víi hn ta cã thÓ dÔ dµng chøng minh b»ng qui n¹p lµ
hn = 2
n– 1, n ≥ 1.
Chap02-83 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1 Xây dựng công thức đệ qui
• Ta có thể tìm được công thức trực tiếp cho hn bằng phương
pháp thế:
hn = 2 hn−1 + 1
= 2 (2 hn−2 + 1) + 1 = 2
2 hn−2 + 2 + 1
= 22(2 hn−3 + 1) + 2 + 1 = 2
3 hn−3 + 2
2 + 2 + 1
= 2n−1 h1 + 2
n−2 + + 2 + 1
= 2n−1 + 2n−2 + + 2 + 1 (do h1 = 1)
= 2n − 1
Chap02-84
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tháp Hà nội với n=5
Cọc c Cọc b
Chap02-85
Chuyển
vào cọc
này
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.2. Hàm sinh (Generating Function)
• Giả sử {hn | n = 0, 1, 2, ....} là một dãy số. Ta viết dãy này
như là dãy vô hạn phần tử, tuy nhiên ta coi rằng nó bao
gồm cả trường hợp dãy hữu hạn. Nếu h0, h1, ..., hm là dãy
hữu hạn, thì ta sẽ biến nó thành dãy vô hạn bằng cách đặt hi
= 0, i > m .
• Định nghĩa. Hàm sinh g(x) của dãy số {hn | n = 0, 1, 2, ....}
là chuỗi vô hạn
g(x) = h0 + h1 x + h2 x
2 + ... = .
• Như vậy hàm g(x) sinh ra dãy số đã cho như là dãy các hệ
số của nó.
• Nếu dãy là hữu hạn thì sẽ tìm được m sao cho hi = 0, i > m.
Trong trường hợp này g(x) là một đa thức bậc m.
Chap02-86
0
i
i
i
h x
¥
=
å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ 1. Một trong những nguồn gốc dẫn đến định nghĩa hàm sinh
chính là định lý về khai triển nhị thức: Hàm g(x) = (1 + x)m sinh ra dãy
các hệ số tổ hợp
{hk = C(m, k), k=0, 1,..., m}.
Bởi vì
• Ví dụ 2. Hàm
g(x) = 1/(1-x)
sinh ra dãy
1, 1, 1, ...
• Dễ dàng chứng minh điều đó bằng cách thực hiện phép chia:
1/(1- x) = 1 + x + x2 + ...
Chap02-87
k
m
k
m xkmCx å
=
=+
0
),()1(
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Ví dụ 3. Với k > 0, hàm
g(x) = 1/(1-x)k
sinh ra dãy
{C(n+k-1, n): n = 0, 1, 2, ...}.
• Như vậy hệ số thứ n sẽ là số khả năng chọn n vật từ k loại đồ vật.
• Chứng minh. Thực vậy, ta có
1/(1-x)k =[ 1/(1-x)]k = (1 + x + x2 + ...)k.
• Nếu ta khai triển biểu thức này bằng cách thực hiện nhân phá
ngoặc, thì số lần xuất hiện số hạng xn sẽ bằng số nghiệm nguyên
không âm của phương trình
t1 + t2 + ... + tk = n,
mà như đã biết là bằng C(n+k-1, n).
Chap02-88
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Ví dụ này có thể gợi ý cho ta cách giải nhiều bài toán đếm.
Chẳng hạn xét hàm sinh
g(x) = (1 + x + x2 + x3) (1 + x + x2) (1 + x + x2 + x3 + x4).
• Giả sử xa, xb, xc tương ứng là các số hạng lấy từ các thừa số
thứ nhất, hai, ba của vế phải, điều đó có nghĩa là 0 £ a £ 3,
0 £ b £ 2, 0 £ c £ 4. Khi khai triển vế phải, các thừa số này
sẽ cho ta số hạng xn, với n = a + b + c.
• Như vậy hệ số của xn trong g(x) sẽ là số nghiệm nguyên
không âm của phương trình
n=a + b + c thoả mãn 0 £ a £ 3, 0 £ b £ 2, 0 £ c £ 4.
• Suy ra hệ số này cũng cho ta số cách chọn n bông hoa từ 3
bông cúc, 2 bông layơn và 4 bông hồng.
Chap02-89 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Tất nhiên việc sử dụng hàm sinh để giải bài toán đếm sẽ đòi
hỏi nhiều tính toán khi thực hiện phép nhân các đa thức, và
không thích hợp cho việc tính tay. Tuy nhiên, việc đó lại có
thể thực hiện nhanh chóng trên máy tính, và vì thế hàm sinh
sẽ là một công cụ hữu hiệu để giải nhiều bài toán đếm trên
máy tính.
• Ta dẫn ra một số khai triển đại số rất hay sử dụng trong
việc sử dụng hàm sinh:
• xk/(1-x) = xk (1 + x + x2 + ...) = xk + xk+1 + xk+2 + ...
• (1-xk+1)/(1-x) = 1 + x + x2 + ... + xk.
• 1/(1-x2) = 1 + x2 + x4 + x6 + ...
• x/(1-x2) = x(1 + x2 + x4 + x6 + ...) = x + x3 + x5 + x7 + ...
Chap02-90
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 4
• Ví dụ 4. Có bao nhiêu cách chọn ra n quả từ 4 loại quả: táo, chuối, cam
và đào (mỗi loại đều có số lượng ít ra là n) mà trong đó có một số chẵn
quả táo, số lẻ quả chuối, không quá 4 quả cam và ít ra 2 quả đào?
• Giải. Hàm sinh để giải bài toán này là
(1+ x2+x4+x6+ ...) (x+x3+x5+x7+ ...) (1+x+x2+x3+x4) (x2+x3+x4+ ...)
• Trong công thức trên có 4 thừa số để đếm số quả táo (các số mũ chẵn),
chuối (số mũ lẻ), cam (chỉ có đến số mũ 4) và đào (số mũ bắt đầu từ 2).
Hàm sinh sẽ là
g(x) = [1/(1-x2)] [x/(1-x2)] [(1-x5)/(1-x)] [x2/(1-x)]
= [x3(1-x5)]/[(1-x2)2(1-x)2].
• Câu trả lời là: Số cách cần đếm là hệ số thứ n trong khai triển g(x)
dưới dạng chuỗi luỹ thừa. Tuy là chúng ta không có câu trả lời bằng số,
nhưng sử dụng hàm xây dựng được ta có thể lập trình trên máy tính để
đưa ra bảng đáp số cho các giá trị của n mong muốn.
Chap02-91 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
• Ví dụ 5. Tìm hàm sinh cho hn là số cách chọn ra n quả từ 4
loại quả: táo, chuối, cam và đào (mỗi loại đều có số lượng ít ra
là n) mà trong đó có một số chẵn quả táo, số lượng chuối chia
hết cho 5, không quá 4 quả cam và không quá 1 quả đào?
• Giải. Hàm sinh có dạng
g(x)=(1+x2+x4+x6+...)(1+x5+x10+x15+...)(1+x+x2+x3+x4)(1+x)
= [1/(1-x2)] [1/(1-x5)] [(1-x5)/(1-x)] (1+x)
= [1/((1-x)(1 +x)] [1/(1-x)] (1+x) = 1/(1-x)2
• Từ đó ta có thể tìm công thức hiện cho lời giải, bởi vì, theo ví
dụ 3, ta có
.
• Vậy hn = n + 1.
Chap02-92
2 1 12
0 0 0
1
( 1)
(1 )
n n n n n
n n
n n n
C x C x n x
x
¥ ¥ ¥
+ - +
= = =
= = = +
- å å å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Hàm sinh và công thức đệ qui
• Hàm sinh có thể sử dụng để tìm công thức dưới dạng hiện
cho số hạng tổng quát của dãy số {hn , n=0,1,2,...} xác
định bởi công thức đệ qui. Nội dung của phương pháp có
thể trình bày như sau:
ΏXây dựng hàm sinh g(x) của dãy số này theo công thức
g(x) = h0 + h1 x + h2 x
2 + ... =
ΏTìm công thức giải tích cho hàm sinh g(x). (Sử dụng các tính
chất của dãy số suy từ công thức đệ qui xác định nó).
ΏTheo công thức tìm được, tìm khai triển hàm g(x) dưới dạng
chuỗi luỹ thừa (chuỗi Maclaurin).
ΏSo sánh hệ số ở các số hạng với cùng số mũ của x ta tìm được
công thức cho hn.
Chap02-93
¥
=
å
0
i
i
i
h x
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Phép toán với hàm sinh
• Trước hết ta đưa ra một số phép toán đối với hàm sinh. Giả sử
là hai hàm sinh còn a là số thực, khi đó
• Tích Côsi của hai hàm sinh g(x) và f(x):
trong đó
ck = a0 bk + a1 bk-1 + ... + ak b0 = .
Chap02-94
0 0
( ) , ( )
i i
i i
i i
f x a x g x b x
¥ ¥
= =
= =å å
0 0
( ) ( ) ( ) , ( )
i i
i i i
i i
f x g x a b x f x a xa a
¥ ¥
= =
+ = + =å å
0
( ) ( )
i
i
i
f x g x c x
¥
=
=å
0
k
i k i
i
a b -
=
å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chuỗi Maclaurin
• Từ giải tích ta biết rằng nếu chuỗi g(x) = hội tụ ở lân cận
điểm 0 thì tổng g(x) luôn là hàm giải tích trong lân cận này và
hk = g
(k)(0)/k! , k = 0, 1, ...
• Khi đó chuỗi chính là khai triển Maclaurin của hàm g(x).
Như vậy có một tương ứng 1-1 giữa một hàm giải tích và một
chuỗi hội tụ trong lân cận 0.
• Trong việc áp dụng hàm sinh ta thường sử dụng công thức sau:
mà trường hợp riêng của nó là
1/(1 - rx) = 1 + rx + r2 x2 + r3 x3 + ....
Chap02-95
0
i
i
i
h x
¥
=
å
0
i
i
i
h x
¥
=
å
1
0
1
(1 )
k k k
n kn
k
C r x
rx
¥
+ -
=
=
- å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Dãy số Fibonaci
• Dãy số Fibonaci. Dãy số Fibonaci là dãy số được xác định bởi công
thức đệ qui
fn = fn-1 + fn-2, n ³ 2,
f0 = 0, f1 = 1.
• Ta sẽ tìm công thức cho số hạng tổng quát của dãy số nhờ phương pháp
hàm sinh.
• Xét hàm sinh . Ta có
Chap02-96
0
( )
n
n
n
F x f x
¥
=
=å
Leonardo Pisano Fibonacci
1170 - 1250
0 1
0 2
0 1 1 2
2
1 2
0 1
0 0
2
( )
( )
( ) ( ).
n n
n n
n n
n
n n
n
n n
n n
n n
F x f x f f x f x
f f x f f x
f f x f x f x
x xF x x F x
¥ ¥
= =
¥
- -
=
¥ ¥
+ +
= =
= = + +
= + + +
= + + +
= + +
å å
å
å å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Từ đó suy ra
• Ta có (1- x - x2) = (1 - a x) (1 - b x), với
• Viết lại F(x) dưới dạng
• Từ đó tìm được
• Do đó
• Suy ra
Chap02-97
2
( ) .
1
x
F x
x x
=
- -
a b
+ -
= =
1 5 1 5
, .
2 2
( ) ,
1 1
A B
F x
x xa b
= +
- -
1 1
, .
5 5
A B= = -
0
1 1 1 1
( ) ( ) .
1 15 5
n n n
n
F x x
x x
a b
a b
¥
=
é ù
= - = -ê ú- -ë û
å
1 1 1 5 1 5
( ) , 0.
2 25 5
n n
n n
n
f na b
é ùæ ö æ ö+ -ê ú= - = - ³ç ÷ ç ÷ç ÷ ç ÷ê úè ø è øë û
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-98
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5 Số Stirling
• 2.5.1. Số Stirling
• 2.5.2. Số Bell
• 2.5.3. Số Catalan
Chap02-99 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Có bao nhiêu ánh xạ?
Cho các tập hữu hạn A = {a1,, am} và B = {b1,, bn}.
Hỏi có bao nhiêu ánh xạ f: A ® B ?
Như ta đã chứng minh:
• Tổng số ánh xạ có thể: |B||A| = nm.
• Số lượng đơn ánh:
P(n,m) = n∙(n–1)∙∙∙(n–m+1) = n!/(n–m)!.
• Số lượng song ánh là P(n,n) = n! nếu |A| = |B| = n.
• Số lượng toàn ánh: với m ≥ n:
Chap02-100
0
( 1) ( )
n
k n k m
n
k
C n k
-
=
- -å
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.1. Số Stirling loại 2
• Số lượng toàn ánh từ tập A = {a1,,am} vào tập B = {b1,,bn}
liên quan đến một con số tổ hợp nổi tiếng đó là số Stirling loại 2
(Stirling Numbers of the 2nd Kind).
• Định nghĩa. Số Stirling loại 2, ký hiệu bởi S2(m,n), là số cách
phân hoạch tập m phần tử thành n tập con (m ³ n).
• Ví dụ: Ta đếm số cách phân hoạch tập {1,2,3,4} ra thành 2 tập
con. Ta có thể kể ra tất cả các cách phân hoạch như vậy:
{{1,2,3},{4}}, {{1,2,4},{3}}, {{1,3,4},{2}}, {{2,3,4},{1}},
{{1,2},{3,4}}, {{1,3},{2,4}},{{1,4},{2,3}}.
• Vậy S2(4,2)=7.
Chap02-101 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Trong nhiều tài liệu, số Stirling còn được ký hiệu bởi
Chap02-102
S
m
(n)
hoac
m
n
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
James Stirling
1692 – 1770
Scotland
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.1. Số Stirling loại 2
• Ta sẽ xây dựng công thức đệ qui để đếm số S2(m,n).
• Ta có:
ΏS2(0,0)=1.
ΏNếu m > 0, thì
S2(m,0) = 0,
S2(m,1)=1,
và S2(m,m)=1.
Định lý. Với m, n > 1,
S2(m,n) = S2(m–1,n–1) + n∙S2(m–1,n).
Chứng minh. Ta cần đếm số cách phân hoạch tập m phần tử
X = {x1, x2, , xm} ra thành n tập con.
Chap02-103 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Công thức đệ qui
• Tập các cách phân hoạch như vậy có thể phân hoạch thành 2 tập:
A = Tập các cách phân hoạch X ra thành n tập con trong đó có
một tập con là {xm};
B = Tập các cách phân hoạch X ra thành n tập con trong đó không
có tập con nào là {xm} (tức là xm không đứng riêng một mình!).
• Ta có:
|A| = S2(m–1,n–1) .
|B| = n∙S2(m–1,n), bởi vì có S2(m–1,n) cách phân hoạch X \{xm} ra
thành n tập con và có n cách xếp xm vào một trong số các tập
con này.
• Từ đó
S2(m,n)= |A| + |B| = S2(m–1,n–1) + n∙S2(m–1,n).
Định lý được chứng minh.
Chap02-104
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Công thức tính số Stirling
Chap02-105
• Từ công thức đệ qui có thể chứng minh bằng qui nạp toán
học công thức sau đây:
• Nói chung để tính S2(m,n) người ta thường dùng công thức
đệ qui, chứ không sử dụng công thức này. Điều này được
giải thích tương tự như để tính hệ số tổ hợp người ta thường
dùng tam giác Pascal.
2
0
1
( , ) ( 1)
!
-
=
= -å
n
n k k m
n
k
S m n C k
n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Liên hệ giữa số lượng toàn ánh và số Stirling
Chap02-106
• Ta xét mối liên hệ giữa số Stirling loại 2 với số lượng toàn ánh từ
tập m phần tử A vào tập n phần tử B (ký hiệu là S'(m,n)).
• Giả sử cho f là toàn ánh từ A vào B. Đặt
Ai = {aÎA| f(a) = bi}, i = 1, 2, ..., n,
Rõ ràng các tập A1, A2, ..., An tạo thành một phân hoạch của tập
A.
• Ngược lại, cho một phân hoạch của tập A ra thành n tập con A1,
A2, ..., An và p(1), p(2), ...,p(n) là hoán vị của 1, 2, ..., n, thì ta có
thể xây dựng được toàn ánh f từ A vào B theo qui tắc
f(a) = bp(i) , aÎAp(i) , i = 1,2, ..., n,
• Như vậy mỗi phân hoạch cho ta n! toàn ánh. Vì thế, số lượng
toàn ánh từ tập m phần tử vào tập n phần tử là bằng n! nhân với
số cách phân hoạch tập m phần tử ra thành n tập con, nghĩa là
bằng n!S2(m,n)
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Liên hệ giữa số lượng toàn ánh và số Stirling
Chap02-107
• Như vậy ta có đẳng thức cho mối liên hệ giữa số toàn ánh
từ tập m phần tử vào tập n phần tử S'(m,n) và số Stirling
loại 2 sau đây:
S'(m,n) = n! S2(m,n) .
• Do đó từ công thức đã chứng minh ở mục trước
• Ngược lại, nếu coi công thức của S2(m,n) đã biết thì
2
0 0
1
'( , ) ( 1) ( ) ( , ) ( 1) ( )
!= =
= - - Þ = - -å å
n n
k k m k k m
n n
k k
S m n C n k S m n C n k
n
2
0 0
1
( , ) ( 1) '( , ) ( 1)
!
- -
= =
= - Þ = -å å
n n
n k k m n k k m
n n
k k
S m n C k S m n C k
n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Bảng giá trị của số Stirling loại 2
Chap02-108
S2(n,k) 0 1 2 3 4 5 6 7 8 9 10
0 1
1 0 1
2 0 1 1
3 0 1 3 1
4 0 1 7 6 1
5 0 1 15 25 10 1
6 0 1 31 90 65 15 1
7 0 1 63 301 350 140 21 1
8 0 1 127 966 1701 1050 266 28 1
9 0 1 255 3025 7770 6951 2646 462 36 1
10 0 1 511 9330 34105 42525 22827 5880 750 45 1
k
n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.2. Số Bell
• Định nghĩa. Số Bell (Bell numbers) là số cách phân hoạch
tập n phần tử ra thành các tập con khác rỗng.
• Các phần tử đầu tiên của dãy số này là
1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975, 678570, ...
• Ví dụ: Tập {1, 2, 3} có các cách phân hoạch sau đây:
{{1}, {2}, {3}} , {{1, 2}, {3}}, {{1, 3}, {2}} ,
{{1}, {2, 3}}, {{1, 2, 3}}.
• Số Bell thứ n được tính bởi công thức
trong đó S2(n,k) là số Stirling loại 2.
Chap02-109
2
1
( , )
n
k
S n k
=
å
Eric Temple Bell
Born: 1883, Scotland
Died: 1960, USA
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Số Bell
• Tập {1, 2, 3} có 5 cách phân hoạch:
• Tập {1, 2, 3, 4, 5} có 52 cách phân hoạch:
Chap02-110
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.2. Số Catalan
• Định nghĩa. Số Catalan thứ n, ký hiệu là Cn , là số cách đặt
dấu ngoặc để tổ chức thực hiện việc tính tích của n+1 thừa
số: P0..n = x0 x1 x2 ... xn.
• Ví dụ:
• Có 2 cách để tính P0..2 : x0*x1*x2 = (x0*(x1*x2)) = ((x0*x1)*x2)
• Có 5 cách để tính P0..3: 1*2*3*4 =
(1*(2*(3*4))) = (1*((2*3)*4)) = ((1*2)*(3*4)) = ((1*(2*3))* 4) =
(((1*2)*3)*4)
• Có 14 cách để tính P0..4 : 1*2*3*4*5 =
(1 (2 (3 (4 5)))) = (1 (2 ((3 4) 5))) = (1 ((2 3) (4 5))) = (1 ((2 (3 4)) 5)) =
(1 (((2 3) 4) 5)) = ((1 2) (3 (4 5))) = ((1 2) ((3 4) 5)) = ((1 (2 3)) (4 5)) =
((1 (2 (3 4))) 5) = ((1 ((2 3) 4)) 5) = (((1 2) 3) (4 5)) = (((1 2) (3 4)) 5) =
(((1 (2 3)) 4) 5) = ((((1 2) 3) 4) 5)
Chap02-111 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.2. Số Catalan
• Ta xây dựng công thức đệ qui để tính Cn.
• Rõ ràng
C0 = 1 và C1 = 1.
• Giả sử n > 1. Sau khi đặt dấu ngoặc phân tách đầu tiên, tích
x0 x1 x2 ... xn được chia làm hai tích con.
• Ví dụ: P0..4 = P0..2 P3..4 = (x0 x1 x2) (x3 x4)
• Giả sử dấu ngoặc phân tách đầu tiên được đặt sau thừa số xk:
P0..n = P0..k Pk+1..n = (x0 x1 x2 ... xk) (xk+1 xk+2 ... xn)
• Khi đó ta có Ck cách tính P0..k , Cn-k-1 cách tính Pk+1..n , và do
đó việc tính P0..n có thể thực hiện bởi Ck Cn-k-1 cách .
Chap02-112
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.2. Số Catalan
• Do dấu ngoặc phân tách đầu tiên có thể đặt vào sau bất cứ
thừa số nào trong các thừa số x0, x1, ..., xn-1, suy ra tổng số
cách tính P0..n là:
Cn = C0 Cn-1 + C1Cn-2+ ... +Cn-1C0 .
• Như vậy ta thu được công thức đệ qui:
• Sử dụng công thức này có thể chứng minh công thức sau:
Chap02-113
1
1
0
0 1
, 1,
1, 1
n
n k n k
k
C C C n
C C
-
- -
=
= >
= =
å
1
1
0
21 (2 )!
, 0.
1 !( 1)!
-
- -
=
æ ö
= = = ³ç ÷+ +è ø
å
n
n k n k
k
n n
C C C n
nn n n
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.5.2. Số Catalan
• Một số phần tử đầu tiên của dãy số Catalan:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012,
742900, 2674440, 9694845, 35357670, 129644790, 477638700,
1767263190, 6564120420, 24466267020, 91482563640,
343059613650, 1289904147324, 4861946401452,
• Số Catalan là lời giải của rất nhiều bài toán tổ hợp.
• Ta sẽ kể ra dưới đây một số bài toán như vậy.
Chap02-114
E. C. Catalan
1814 -1894
Belgium
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Tam giác phân đa giác
• Cn là số cách chia đa giác n+2 đỉnh ra thành các tam giác
nhờ vẽ các đường chéo không cắt nhau ở trong đa giác:
Chap02-115
C3 = 5
C2 = 2
C4 = 14
C5 = 42
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Đường đi trên lưới ô vuông
• Cn là số lượng đường đi đơn điệu (tức là đường đi xuất phát từ vị trí góc
dưới-phải kết thúc ở góc trên-trái và chỉ đi sang trái hoặc lên trên) độ dài
2n trên lưới ô vuông kích thước n´n không vượt lên trên đường chéo.
Chap02-116
C5 = 42C4 = 14
C2 = 2
C3 = 5
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Cây nhị phân đầy đủ
Cn là số lượng cây nhị phân đầy đủ không đẳng cấu có n đỉnh trong.
Cây nhị phân có gốc được gọi là đầy đủ nếu mỗi đỉnh của nó hoặc là không có
con hoặc có đúng hai con. Đỉnh trong (internal vertice) là đỉnh có con.
Chap02-117
n = 2
n = 3
n = 4
n = 1
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Cn là số cây nhị phân đầy đủ với n + 1 lá.
• Có C3 = 5 cây nhị phân đầy đủ với 4 lá:
Cây nhị phân đầy đủ với n lá
Chap02-118
n
2
3
4
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Chương 2. Lý thuyết tổ hợp
2.1. Hoán vị
2.2. Tổ hợp (Combination)
2.3. Nguyên lý bù trừ
2.4. Công thức đệ qui và hàm sinh
2.5. Số Stirling
2.6. Nguyên lý các lồng chim bồ câu
Chap02-119 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.6 Nguyên lý các lồng chim bồ câu
(Pigeonhole Principle)
2.6.1. Phát biểu nguyên lý
2.6.2. Các ví dụ ứng dụng
Chap02-120
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.6.1. Phát biểu nguyên lý
Nếu xếp nhiều hơn n đối tượng vào n cái hộp thì bao giờ
cũng tìm được ít nhất một cái hộp chứa ít ra là hai đối
tượng.
Chap02-121 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Pigeonhole Principle
Chøng minh.
Việc chứng minh nguyên lý trên chỉ là một lập luận phản
chứng đơn giản. Giả sử ngược lại là không tìm được cái
hộp nào chứa không ít hơn 2 đối tượng. Điều đó có
nghĩa là mỗi cái hộp chứa không quá một đối tượng. Từ
đó suy ra tổng số đối tượng xếp trong n cái hộp là không
vượt quá n, trái với giả thiết là có nhiều hơn n đối tượng
được xếp trong chúng.
Chap02-122
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.6.1. Phát biểu nguyên lý
• Lập luận trên đã được nhà toán học người Đức là Dirichlet vận dụng
thành công vào việc giải quyết rất nhiều bài toán tồn tại tổ hợp.
• Trong lập luận của Dirichlet, các đối tượng được xét là các quả táo còn
các cái hộp được thay bởi các cái giỏ: “Nếu đem bỏ nhiều hơn n quả táo
vào n cái giỏ thì bao giờ cũng tìm được ít nhất một cái giỏ chứa ít ra là 2
quả táo”.
Chap02-123
Johann Peter Gustav Lejeune Dirichlet
Born: 13 Feb 1805
Died: 5 May 1859
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.6.1. Phát biểu nguyên lý
l Trong tài liệu tiếng Anh lập luận đó lại được trình bày
trong ngôn ngữ của các con chim bồ câu: “Nếu đem
nhốt nhiều hơn n con chim bồ câu vào n cái lồng thì bao
giờ cũng tìm được ít nhất 1 cái lồng chứa ít ra là 2 con
chim bồ câu”. Vì thế nguyên lý còn có tên gọi là
“Nguyên lý về các lồng chim bồ câu”.
l Trong ngôn ngữ của lý thuyết tập hợp, nguyên lý có thể
phát biểu như sau: “Nếu tập X gồm nhiều hơn n phần tử
được phân hoạch thành n tập con, thì bao giờ cũng tìm
được một tập con trong phân hoạch đó có lực lượng ít
ra là 2”
Chap02-124
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ 1. Trong số 367 người bao giờ cũng tìm được hai
người có ngày sinh nhật giống nhau bởi vì chỉ có tất cả 366
ngày sinh nhật khác nhau.
• Ví dụ 2. Trong kỳ thi học sinh giỏi điểm bài thi được đánh
giá bởi một số nguyên trong khoảng từ 0 đến 100. Hỏi rằng
ít nhất phải có bao nhiêu học sinh dự thi để cho chắc chắn
tìm được hai học sinh có kết quả thi như nhau?
• Giải. Theo nguyên lý Dirichlet, số học sinh cần tìm là 102,
vì ta có 101 kết quả điểm thi khác nhau.
Chap02-125 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ 3. Trong số những người có mặt trên trái đất luôn tìm
được hai người có hàm răng giống nhau.
• Giải: Tất cả chỉ có
232 = 4 294 967 296
hàm răng khác nhau mà số người trên hành tinh chúng ta
hiện nay đã vượt quá 5 tỷ.
Chap02-126
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý Dirichlet tổng quát
Generalized Pigeonhole Principle
• Khi số lượng quả táo bỏ vào k cái giỏ vượt quá số lượng cái
giỏ nhiều lần thì rõ ràng khẳng định trong nguyên lý về sự
tồn tại cái giỏ chứa ít ra là 2 quả táo là quá ít. Trong trường
hợp như vậy ta sử dụng nguyên lý Dirichlet tổng quát sau
đây:
• “Nếu đem bỏ n quả táo vào k cái giỏ thì bao giờ cũng tìm
được ít nhất một cái giỏ chứa ít ra là én/kù quả táo”.
• Ở đây ký hiệu éaù gọi là phần nguyên già của số thực a,
theo định nghĩa, là số nguyên nhỏ nhất còn lớn hơn hoặc
bằng a.
Chap02-127 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Nguyên lý Dirichlet tổng quát
Generalized Pigeonhole Principle
• Chứng minh nguyên lý tổng quát:
• Giả sử khẳng định của nguyên lý là không đúng.
Khi đó mỗi cái giỏ chứa không quá én/kù - 1 quả
táo. Từ đó suy ra tổng số quả táo bỏ trong k cái giỏ
không vượt quá
k(én/kù - 1) < k((n/k+1) - 1)) = n.
Mâu thuẫn thu được đã chứng minh nguyên lý.
Chap02-128
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ 4. Trong 100 người có ít nhất 9 người sinh cùng một
tháng.
• Giải: Xếp những người cùng sinh một tháng vào một nhóm. Có
12 tháng tất cả. Vậy theo nguyên lý Dirichlet, tồn tại ít nhất một
nhóm có không ít hơn é100/12ù = 9 người.
• Ví dụ 5. Có năm loại học bổng khác nhau. Hỏi rằng phải có ít
nhất bao nhiêu sinh viên để chắc chắn rằng có ít ra là sáu người
cùng nhận học bổng như nhau?
• Giải: Số sinh viên ít nhất cần có để đảm bảo chắc chắn có 6 sinh
viên cùng nhận học bổng như nhau là số nguyên nhỏ nhất n sao
cho én/5ù = 6. Số nguyên nhỏ nhất đó là n = 5´5+1 = 26. Vậy
26 là số lượng sinh viên nhỏ nhất đảm bảo chắc chắn là có sáu
sinh viên cùng hưởng một loại học bổng.
Chap02-129 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ
• Ví dụ 6. Hỏi ít nhất phải có bao nhiêu người có mặt trên
trái đất để luôn tìm được ba người có hàm răng giống nhau?
• Giải: Tất cả chỉ có
232 = 4 294 967 296
hàm răng khác nhau. Ta cần tìm số n nhỏ nhất để
én/232ù = 3.
• Từ đó số người cần tìm là
2´232 + 1 = 8 589 934 593.
Chap02-130
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.6.2. Các ví dụ ứng dụng
• Trong các ví dụ ứng dụng phức tạp hơn của nguyên lý
Dirichlet, cái giỏ và quả táo cần phải được lựa chọn khôn
khéo hơn rất nhiều.
• Trong phần này ta sẽ xét một số ví dụ như vậy.
Chap02-131 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 1
• Ví dụ 1. Trong một phòng họp bao giờ cũng tìm được
hai người có số người quen trong số những người dự
họp là bằng nhau.
• Gi¶i: Gäi sè ngêi dù häp lµ n, khi ®ã sè ngêi quen cña mét
ngêi nµo ®ã trong phßng häp chØ cã thÓ nhËn c¸c gi¸ trÞ tõ 0
®Õn n-1. Râ rµng trong phßng kh«ng thÓ ®ång thêi cã ngêi
cã sè ngêi quen lµ 0 (tøc lµ kh«ng quen ai c¶) vµ cã ngêi cã
sè ngêi quen lµ n-1 (tøc lµ quen tÊt c¶). V× vËy, theo sè lîng
ngêi quen ta chØ cã thÓ ph©n n ngêi ra thµnh n-1 nhãm.
Theo nguyªn lý Dirichlet suy ra cã Ýt nhÊt mét nhãm ph¶i
cã kh«ng Ýt h¬n hai ngêi, tøc lµ lu«n t×m ®îc Ýt ra lµ hai ngêi
cã sè ngêi quen lµ b»ng nhau.
Chap02-132
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 2
• Ví dụ 2. Trong một tháng gồm 30 ngày một đội bóng
chuyền thi đấu mỗi ngày ít nhất một trận, nhưng
không chơi quá 45 trận. Chứng minh rằng phải tìm
được một giai đoạn gồm một số ngày liên tục nào đó
trong tháng sao cho trong giai đoạn đó đội chơi đúng
14 trận.
• Gi¶i: Gi¶ sö aj lµ tæng sè trËn thi ®Êu cho ®Õn hÕt ngµy thø
j cña ®éi. Khi ®ã
a1, a2, ..., a30
lµ d·y t¨ng c¸c sè nguyªn d¬ng vµ ®ång thêi 1 £ aj £ 45.
Suy ra d·y
a1+14, a2+14, ..., a30+14
còng lµ d·y t¨ng c¸c sè nguyªn d¬ng vµ 15 £ aj +14 £ 59.
Chap02-133 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 2
• Tất cả có 60 số nguyên dương
a1, a2, ..., a30, a1+14, a2+14, ..., a30+14,
trong đó tất cả đều nhỏ hơn hoặc bằng 59.
• Vì vậy theo nguyên lý Dirichlet, hai trong số các số nguyên
này phải là bằng nhau. Vì các số a1, ..., a30 là đôi một khác
nhau và các số a1+14, ..., a30+14 cũng là đôi một khác
nhau, nên suy ra phải tìm được chỉ số i và j sao cho
j<i và ai = aj+14.
• Điều đó có nghĩa là có đúng 14 trận đấu trong giai đoạn từ
ngày j+1 đến hết ngày i.
Chap02-134
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Ví dụ 3. Chứng minh rằng, trong số n+1 số
nguyên dương, mỗi số không lớn hơn 2n, bao
giờ cũng tìm được hai số sao cho số này chia
hết cho số kia.
• Gi¶i: Gäi c¸c sè ®· cho lµ
a1, a2, . . . , an+1 .
• ViÕt mçi mét sè aj trong n+1 sè trªn díi d¹ng:
aj = 2
k(j)qj , j = 1, 2, ..., n+1
trong ®ã k(j) lµ nguyªn kh«ng ©m, qj lµ sè lÎ.
Chap02-135 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 3
• Các số q1, q2, ..., qn+1 là các số nguyên lẻ, mỗi số
không lớn hơn 2n.
• Do trong đoạn từ 1 đến 2n chỉ có n số lẻ, nên từ
nguyên lý Dirichlet suy ra là hai trong số các số q1,
q2, ..., qn+1 là bằng nhau, tức là tìm được hai chỉ số
i và j sao cho qi = qj = q.
• Khi đó
ai = 2
k(i)q, aj = 2
k(j)q.
• Suy ra nếu k(i) < k(j) thì aj chia hết cho ai, còn
nếu k(i) ³ k(j) thì ai chia hết cho aj.
Chap02-136
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 4
• Ví dụ 4. Trên mặt phẳng cho 5 điểm có toạ độ nguyên
Mi(xi, yi), i=1, 2, ..., 5. Chứng minh rằng luôn tìm được 2
điểm sao cho đoạn thẳng nối chúng, ngoài hai đầu mút, còn
đi qua một điểm có toạ độ nguyên khác nữa.
• Giải. Ta sẽ chứng minh: Luôn tìm được 2 điểm sao cho
điểm giữa của đoạn thẳng nối chúng có toạ độ nguyên.
Theo tính chẵn lẻ của hai toạ độ, 5 điểm đã cho có thể phân
vào nhiều nhất là 4 nhóm:
(Chẵn, Chẵn), (Chẵn, Lẻ), (Lẻ, Chẵn), (Lẻ, Lẻ).
Chap02-137 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 4
• Từ đó theo nguyên lý Dirichlet phải tìm được một nhóm
chứa ít ra là 2 điểm, chẳng hạn đó là Mi, Mj. Khi đó
điểm giữa Gij của đoạn thẳng nối Mi và Mi có toạ độ
Gij = ((xi+xj)/2, (yi+yj)/2).
• Do xi và xj cũng như yi và yj có cùng tính chẵn lẻ nên các
toạ độ của Gij là các số nguyên. Khẳng định của ví dụ
được chứng minh.
• Khẳng định của ví dụ có thể tổng quát cho không gian n-
chiều: “Trong không gian n-chiều cho 2n + 1 điểm có toạ
độ nguyên. Khi đó luôn tìm được 2 điểm sao cho đoạn
thẳng nối chúng, ngoài hai đầu mút, còn đi qua một
điểm có toạ độ nguyên khác nữa”.
Chap02-138
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
Trước hết ta cần một số khái niệm.
• Cho a1, a2, an là dãy số thực.
• n được gọi là độ dài của dãy số đã cho.
• Ta gọi dãy con của dãy đã cho là dãy có dạng ai1, ai2, , aim, trong đó
1 £ i1 < i2 < . . . < im £ n
• Dãy số được gọi là tăng ngặt nếu mỗi số hạng đứng sau luôn lớn hơn
số hạng đứng trước. Dãy số được gọi là giảm ngặt nếu mỗi số hạng
đứng sau luôn nhỏ hơn số hạng đứng trước..
ΏVí dụ: Cho dãy số
1, 5, 6, 2, 3, 9.
• 5, 6, 9 là dãy con tăng ngặt của dãy đã cho
• 6, 3 là dãy con giảm ngặt của dãy đã cho
Chap02-139 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
• Định lý: Mỗi dãy gồm n2+1 số phân biệt (nghĩa là các
phần tử là khác nhau từng đôi) luôn chứa hoặc dãy con
tăng ngặt độ dài n+1 hoặc dãy con giảm ngặt độ dài
n+1.
• Ví dụ: Dãy
8, 11, 9, 1, 4, 6, 12, 10, 5, 7
gồm 10 = 32+1 số hạng phải chứa hoặc dãy con tăng ngặt
độ dài 4 phần tử hoặc dãy con giảm ngặt độ dài 4 phần tử.
1, 4, 6, 12
1, 4, 6, 7
11, 9, 6, 5
Chap02-140
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
• Chứng minh: Giả sử a1, a2, , an2+1 là dãy gồm n2+1 số
phân biệt. Gán cho mỗi số hạng ak của dãy số cặp có thứ tự
(ik,dk), trong đó ik là độ dài của dãy con tăng dài nhất bắt
đầu từ ak còn dk là độ dài của dãy con giảm dài nhất bắt đầu
từ ak.
• Ví dụ: 8, 11, 9, 1, 4, 6, 12, 10, 5, 7
a2 = 11, (i2,d2) = (2,4)
a4 = 1 , (i4,d4) =(4,1)
• Bây giờ giả sử không tồn tại dãy tăng cũng như dãy giảm
có độ dài n+1. Khi đó ik và dk là các số nguyên dương £ n,
với k = 1, 2, ..., n2+1.
Chap02-141 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
• Do 1 £ ik, dk £ n, nên theo qui tắc nhân có tất cả n2 cặp có
thứ tự dạng (ik,dk) khác nhau.
• Do ta có tất cả n2 + 1 cặp (ik,dk), nên theo nguyên lý
Dirichlet, hai trong số chúng là trùng nhau. Tức là tồn tại
hai số hạng as và at trong dãy đã cho với s < t sao cho is = it
và ds = dt.
• Ta sẽ chỉ ra điều này là không thể xảy ra.
• Do các số hạng của dãy là phân biệt, nên
hoặc là as at.
Chap02-142
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Ví dụ 5
• Nếu as < at, khi đó do is = it , ta có thể xây dựng dãy con
tăng độ dài it+1 bắt đầu từ as, bằng cách nối đuôi nó bởi
dãy con tăng độ dài it, bắt đầu từ at.
... , as , ..., at , ....
• Suy ra dãy con tăng dài nhất bắt đầu từ as có độ dài ít ra là
it + 1, nghĩa là is > it. Mâu thuẫn với giả thiết is= it.
• Tương tự như vậy, nếu as > at, ta có thể chỉ ra ds phải lớn
hơn dt, và cũng đi đến mâu thuẫn.
• Định lý được chứng minh.
Chap02-143 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-144
Hết chương 2
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-145 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
2.4.1. Xây dựng công thức đệ qui
• Định nghĩa. Công thức đệ qui (recurence relation) cho dãy số
{an} là công thức cho phép tính an thông qua một hoặc một vài
số hạng đi trước nó trong dãy số (đó là các số hạng a0, a1,..., an-1)
với mọi n ³ n0, trong đó n0 là số nguyên không âm. Một dãy số
được gọi là nghiệm của công thức đệ qui nếu như các số hạng
của nó thỏa mãn của công thức này.
• Ví dụ: Xét công thức đệ qui an= 2an– 1 – an– 2 với n = 2,3,4,...
ΏDãy số {an} với an = 3n là nghiệm của công thức này, vì ta có
an= 2an– 1 – an– 2 = 2[3(n–1)] – 3(n–2) = 3n, với n ³ 2.
ΏDãy số {an = 5} cũng là nghiệm, vì an= 2an – 1 – an – 2 =2*5–
5=5, với mọi n ³ 2.
ΏDãy số {an = 2n} không là nghiệm, vì ta có a0= 1, a1=2, a2 =
4, nhưng a2 = 4 ¹ 2a1 – a0 = 2*2 – 1 = 3.
Chap02-146
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
Cây nhị phân
• A binary tree is often defined recursively as either (a) being empty, or
(b) consisting of a root node together with left and right subtrees, both
of which are binary trees. It is this definition that is most useful from
the point of view of data structures in computer science. From the
mathematical point of view these objects are not trees. Changing (a)
from "empty" to "a single vertex" gives a definition equivalent to that
of ordered trees in which every node is either a leaf (no children) or has
two children. These are sometimes called extended binary trees. In
either case, they are usually parameterized by n, the number of
applications of rule (b) that are used.
• In the extended binary tree illustrated above there are 5 internal nodes
(the brown circles, which correspond to applications of rule (b)) and 6
leaves (the blue squares, which correspond to applications of rule (a)).
By removing the blue edges and the leaves you obtain the
corresponding binary tree.
Chap02-147 Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-148
Toán rời rạc – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội
• Ordered Trees
• An ordered tree is a rooted tree in which the relative order of subtrees
matters. An ordered forest is an ordered collection of ordered trees.
There is a one-to-one correspondence between ordered forests with n
nodes and binary trees with n nodes. This correspondence is best
explained using the well-formed parentheses strings with n left and n
right parentheses. If the n left parentheses and n right parentheses are
labelled 1 through n from left to right in the string, then there are n pairs
of matching left/right pairs of parentheses. These pairs correspond to
the nodes of the corresponding ordered forest. Listing the pairs in
increasing order of the left parentheses corresponds to a preorder listing
of the nodes of the forest and listing the pairs in increasing order of the
right parentheses corresponds to a postorder listing of the nodes of the
forest.
Chap02-149
Các file đính kèm theo tài liệu này:
- chap02combinatorics4_1_2961_2132047.pdf