Lời mở đầuLý thuyết tổ hợp là 1 phần quan trọng của toán rời rạc chuyên nghiên cứu sự phân bố các phần tử vào các tập hợp.Thông thường các phần tử này là hữu hạn và việc phân bố chúng ph
Trang 1Khoa Công nghệ thông tin
Bộ môn Khoa học máy tính -o0o -
BÁO CÁO THẢO LUẬN
Môn học :Toán rời rạc
Chủ đề: Chỉnh hợp và tổ hợp suy rộng
Nhóm 2 Các sinh viên:
Trang 2Lời mở đầu
Lý thuyết tổ hợp là 1 phần quan trọng của toán rời rạc chuyên nghiên cứu sự phân bố các phần tử vào các tập hợp.Thông thường các phần tử này là hữu hạn và việc phân bố chúng phải thỏa mãn những điều kiện nhất định nào đó tùy theo yêu cầu của bài toán cần nghiên cứu.Mỗi cách phân bố như thế gọi là một cấu hình tổ hợp.Chủ đề này đã được nghiên cứu vào thế kỉ 17,khi những câu hỏi về tổ hợp
được đưa ra trong các công trình nghiên cứu hay các trò chơi may rủi.Liệt kê,đếm các đối tượng có những tính chất nào đólaf một phần quan trọng của lý thuyết tổ
hợp.Chúng ta cần phải đếm các đối tượng để giải nhiều bài toán khác nhau.Hơn nữa các kĩ thuật đếm được dùng rất nhiều khi tính xác suất của các biến cố hay
trong đánh giá độ phức tạp của thuật toán.
Trong bài báo cáo này chúng tôi sẽ trình bày các nội dung cơ bản về chỉnh hợp
và tổ hợp suy rộng cùng với các vấn đề liên quan Cuối báo cáo là thuật toán liệt
kê tất cả các hoán vị của các kí tự trong một xâu ( Với files chương trình và mã nguồn đi kèm trong CD).
Mục đính của bài thảo luận :
Cung cấp kiến thức cơ bản về hoán vị, tổ hợp và chỉnh hợp suy rộng
Minh họa thuật toán liệt kê các hoán vị của các kí tự trong một xâu cho
trước.
Dù đã rất cố gắng nhưng với thời gian hạn chế chắc chắn báo cáo này vẫn còn
rất nhiều thiếu sót, rất mong nhận được sự góp ý của thầy cô và các bạn.
Nhóm các sinh viên Thanh, Tiến, Trọng, Phượng, Quyến, Trung, Trường xin cảm
ơn!
Trang 3BÁO CÁO THẢO LUẬN
Môn học :Toán rời rạc Chủ đề: Chỉnh hợp và tổ hợp suy rộng
Trang 4Mục lục
1 Lời mở đầu ……… 2
2 Cơ sở phép đếm ……… 5
3 Chỉnh hợp ……… 13
4 Hoán vị ……… 15
5 Tổ hợp ……… 19
6 Thuật toán liệt kê các hoán vị của các kí tự trong xâu ……… 23
7 Một số nội dung mở rộng ……… 24
8 Tài liệu tham khảo ……… 32
9 Lời kết thúc ……… 33
10 Nhận xét của giáo viên phụ trách ……… ……… 33
Trang 5Giải: Gọi việc thứ nhất là chọn một cán bộ từ tập cán bộ ta có 37 cách.
Gọi việc thứ hai là chọn một sinh viên từ tập sinh viên ta có 63 cách Vì tập cán
bộ và tập sinh viên là rời nhau, theo nguyên lý cộng ta có tổng số cách chọn vị
đại biểu này là 37 + 63 = 100 cách chọn
Ví dụ 2 Một đoàn vận động viên gồm môn bắn súng và bơi được cử đi
thi đấu ở nước ngoài Số vận động viên nam là 10 người Số vận động viên thibắn súng kể cả nam và nữ là 14 người Số nữ vận động viên thi bơi bằng số vận
động viên nam thi bắn súng Hỏi đoàn có bao nhiêu người
Giải: Chia đoàn thành hai tập, tập các vận động viên nam và tập các vận
động viên nữ Ta nhận thấy tập nữ lại được chia thành hai: thi bắn súng và thi
Trang 6bơi Thay số nữ thi bơi bằng số nam thi bắn súng, ta được số nữ bằng tổng sốvận động viên thi bắn súng Từ đó theo nguyên lý cộng toàn đoàn có 14 + 10 =
Giải: Coi mỗi vòng for là một công việc, do đó ta có m công việc T1,
T2, , Tm Trong đó Ti thực hiện bởi ni cách (i= 1, 2, , m) Vì các vòng forkhông lồng nhau hay các công việc không thực hiện đồng thời nên theo nguyên
lý cộng tổng tất cả các cách để hoàn thành T1, T2, , Tm là k= n1 + n2 + + nm
1.2Quy tắc nhân
Giả sử một nhiệm vụ nào đó được tách ra hai công việc Việc thứ nhất
được thực hiện bằng n1 cách, việc thứ hai được thực hiện bằng n2 cách sau khi
việc thứ nhất đã được làm, khi đó sẽ có n1.n2 cách thực hiện nhiệm vụ này.Nguyên lý nhân có thể được phát biểu tổng quát bằng ngôn ngữ tập hợp nhưsau:
Nếu A1, A2, , Am là những tập hợp hữu hạn, khi đó số phần tử của tích đềcác các tập này bằng tích số các phần tử của mỗi tập thành phần Hay đẳng thức:
Trang 7N (A1× A2× Am ) = N (A1) N (A2) N (Am).
Nếu A1 = A2 = Am thì N(Ak) = N(A)k
Ví dụ 1 Giá trị của k sẽ bằng bao nhiêu sau khi ta thực hiện đoạn chương
Giải: Giá trị khởi tạo k=0 Mỗi vòng lặp kồng nhau đi qua giá trị của k
được tăng lên 1 đơn vị Gọi Ti là việc thi hành vòng lặp thứ i Khi đó, số lần
vòng lặp là số cách thực hiện công việc Số cách thực hiện công việc Tj là nj(j=1,2, , n) Theo qui tắc nhân ta vòng lặp kép được duyệt qua n1 +n2 + +nmlần và chính là giá trị của k
Ví dụ 2 Người ta có thể ghi nhãn cho những chiếc ghế của một giảng
đường bằng một chữ cái và sau đó là một số nguyên nhỏ hơn 100 Bằng cáchnhư vậy hỏi có nhiều nhất bao nhiêu chiếc ghế có thể ghi nhãn khác nhau
Giải: Có nhiều nhất là 26 x 100 = 2600 ghế được ghi nhãn Vì kí tự gán
nhãn đầu tiên là một chữ cái vậy có 26 cách chọn các chữ cái khác nhau để ghi
kí tự đầu tiên, tiếp theo sau là một số nguyên dương nhỏ hơn 100 do vậy có 100cách chọn các số nguyên để gán tiếp sau của một nhãn Theo qui tắc nhân tanhận được 26 x 100 = 2600 nhãn khác nhau
Ví dụ 3 Có bao nhiêu xâu nhị phân có độ dài 7.
Giải: một xâu nhị phân có độ dài 7 gồm 7 bít, mỗi bít có hai cách chọn
(hoặc giá trị 0 hoặc giá trị 1), theo qui tắc nhân ta có 2.2.2.2.2.2.2 = 27 = 128xâu bít nhị phân độ dài 7
Ví dụ 4 Có bao nhiêu hàm đơn ánh xác định từ một tập A có m phần tử
nhận giá trị trên tập
B có n phần tử
Giải: Trước tiên ta nhận thấy, nếu m >n thì tồn tại ít nhất hai phần tử khác
Trang 8Giải: Ta liệt kê các phần tử của tập S là s1, s2, , sN(S) Xây dựng một
xâu bít nhị phân dài
N(S) bít, trong đó nếu bít thứ i có giá trị 0 thì phần tử si ∉S, nếu bít thứ i có giá
trị 1 thì phần tử
si∈S (i=1, 2, , N(S) ) Như vậy, theo nguyên lý nhân, số tập con của tập hợp S
chính là số xâu bít
Trang 9nhị phân có độ dài N(S) Theo ví dụ 3, chúng ta có 2N(S) xâu bít nhị phân độ dàiN(S).
1.3 Nguyên lý bù trừ
Khi hai công việc có thể được làm đồng thời, ta không thể dùng quy tắccộng để tính số cách thực hiện nhiệm vụ gồm cả hai việc Để tính đúng số cáchthực hiện nhiệm vụ này ta cộng số cách làm mỗi một trong hai việc rồi trừ đi sốcách làm đồng thời cả hai việc Ta có thể phát biểu nguyên lý đếm này bằng ngônngữ tập hợp Cho A1, A2là hai tập hữu hạn, khi đó
i i i
N = N| A1A2 Ak| = NN1+ N2 + (1)kNk,trong đó Nmlà tổng các phần tử của U thỏa mãn m tính chất lấy từ k tính chất đã
cho Công thức này được gọi là nguyên lý bù trừ Nó cho phép tính N qua các
Nmtrong trường hợp các số này dễ tính toán hơn
Ví dụ 1: 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 đúng địa chỉ
Trang 10Giải :Mỗi phong bì có n cách bỏ thư vào, nên có tất cả n! cách bỏ thư Vấn
đề còn lại là đếm số cách bỏ thư sao cho không lá thư nào đúng địa chỉ Gọi U là
tập hợp các cách bỏ thư và Am là tính chất lá thư thứ m bỏ đúng địa chỉ Khi đótheo công thức về nguyên lý bù trừ ta có:
N = n!N1+ N2 + (1)nNn,trong đó Nm(1 m n) là số tất cả các cách bỏ thư sao cho có m lá thư đúng địachỉ Nhận xét rằng, Nmlà tổng theo mọi cách lấy m lá thư từ n lá, với mỗi cách lấy
m lá thư, có (n-m)! cách bỏ để m lá thư này đúng địa chỉ, ta nhận được:
n
là tổ hợp chập m của tập n phần tử (số cách chọn mđối tượng trong n đối tượng được cho) Từ đó xác suất cần tìm là: 1 1
SốN trong bài toán này được gọi là số mất thứ tự và được ký hiệu là Dn.Dưới đây là một vài giá trị của Dn, cho ta thấy Dntăng nhanh như thế nào so với n:
Dn 1 2 9 44 265 1854 14833 133496 1334961 14684570
1.4 Nguyên lý DIRICHLET.
1.4.1 Mở đầu:
Giả sử có một đàn chim bồ câu bay vào chuồng Nếu số chim nhiều hơn số
ngăn chuồng thì ít nhất trong một ngăn có nhiều hơn một con chim Nguyên lý
này dĩ nhiên là có thể áp dụng cho các đối tượng không phải là chim bồ câu vàchuồng chim
Mệnh đề (Nguyên lý):Nếu có k+1 (hoặc nhiều hơn) đồ vật được đặt vàotrong k hộp thì tồn tại một hộp có ít nhất hai đồ vật
Trang 11Chứng minh: Giả sử không có hộp nào trong k hộp chứa nhiều hơn một đồ
vật Khi đó tổng số vật được chứa trong các hộp nhiều nhất là bằng k Điều nàytrái giả thiết là có ít nhất k + 1 vật
Nguyên lý này thường được gọi là nguyên lý Dirichlet, mang tên nhà toánhọc người Đức ở thế kỷ 19 Ông thường xuyên sử dụng nguyên lý này trongcông việc của mình
Ví dụ 1:
1) Trong bất kỳ một nhóm 367 người thế nào cũng có ít nhất 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
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 có bao nhiêu học sinh dự thi để chochắc chắn tìm được hai học sinh có kết quả thi như nhau?
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
3) Trong số những người có mặt trên trái đất, phải tìm được hai người có hàm
răng giống nhau Nếu xem mỗi hàm răng gồm 32 cái như là một xâu nhị phân
có chiều dài 32, trong đó răng còn ứng với bit 1 và răng mất ứng với bit 0, thì
có tất cả 232= 4.294.967.296 hàm răng khác nhau Trong khi đó số người trênhành tinh này là vượt quá 5 tỉ, nên theo nguyên lý Dirichlet ta có điều cần tìm
1.4.2 Nguyên lý Dirichlet tổng quát:
Mệnh đề:Nếu có N đồ vật được đặt vào trong k hộp thì sẽ tồn tại một hộpchứa ít nhất]N/k[đồ vật
(Ở đây,]x[là giá trị của hàm trần tại số thực x, đó là số nguyên nhỏ nhất cógiá trị lớn hơn hoặc bằng x Khái niệm này đối ngẫu với [x] – giá trị của hàmsàn hay hàm phần nguyên tại x – là số nguyên lớn nhất có giá trị nhỏ hơn hoặcbằng x.)
Chứng minh: Giả sử mọi hộp đều chứa ít hơn ]N/k[vật Khi đó tổng số đồ vật là
Trang 12Ví dụ 3:
1) Trong 100 người, có ít nhất 9 người sinh cùng một tháng.
Xếp những người sinh cùng tháng vào một nhóm Có 12 tháng tất cả Vậytheo nguyên lý Dirichlet, tồn tại một nhóm có ít nhất]100/12[= 9 người
2) 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à 6 người cùng nhận học bổng như nhau
Gọi N là số sinh viên, khi đó ]N/5[= 6 khi và chỉ khi 5 < N/56 hay 25
< N30 Vậy số N cần tìm là 26
3) Số mã vùng cần thiết nhỏ nhất phải là bao nhiêu để đảm bảo 25 triệu máy
điện thoại trong nước có số điện thoại khác nhau, mỗi số có 9 chữ số (giả sử sốđiện thoại có dạng 0XX - 8XXXXX với X nhận các giá trị từ 0 đến 9)
Có 107= 10.000.000 số điện thoại khác nhau có dạng 0XX - 8XXXXX Vìvậy theo nguyên lý Dirichlet tổng quát, trong số 25 triệu máy điện thoại ít nhất
có]25.000.000/10.000.000[= 3 có cùng một số Để đảm bảo mỗi máy có một
số cần có ít nhất 3 mã vùng
1.4.3 Một số ứng dụng của nguyên lý Dirichlet.
Trong nhiều ứng dụng thú vị của nguyên lý Dirichlet, khái niệm đồ vật vàhộp cần phải được lựa chọn một cách khôn khéo Trong phần nay có vài thí dụ
như vậy
Ví dụ 4:
1) Trong một phòng họp có n người, bao giờ cũng tìm được 2 người có số người
quen trong số những người dự họp là như nhau
Số người quen của mỗi người trong phòng họp 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) và có người có số người quen là n 1 (tức là quen tất cả) Vì vậytheo số lượng người quen, ta chỉ có thể phân n người ra thành n 1 nhóm Vậytheo nguyên lý Dirichlet tồn tai một nhóm có ít nhất 2 người, tức là luôn tìm được
ít nhất 2 người có số người quen là như nhau
Trang 132) 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
1 trận nhưng chơi không quá 45 trận Chứng minh rằng tìm được một giai đoạngồ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
Gọi ajlà số trận mà đội đã chơi từ ngày đầu tháng đến hết ngày j Khi đó
1a1< a2 < < a30< 45
15 a1+14 < a2+14 < < a30+14 < 59
Sáu mươi số nguyên a1, a2, , a30, a1+ 14, a2 + 14, , a30+14 nằm giữa 1 và 59 Do
đó theo nguyên lý Dirichlet có ít nhất 2 trong 60 số này bằng nhau Vì vậy tồn tại i
và j sao cho ai = aj + 14 (j < i) Điều này có nghĩa là từ ngày j + 1 đến hết ngày i
lẻ nhỏ hơn 2n nên theo nguyên lý Dirichlet tồn tại i và j sao cho qi= qj= q Khi đó
ai= k i
2 q và aj = k j
2 q Vì vậy, nếu ki kj thì aj chia hết cho ai còn trong trườnghợp ngược lại ta có aichia hết cho aj
Thí dụ cuối cùng trình bày cách áp dụng nguyên lý Dirichlet vào lý thuyết
tổ hợp mà vẫn quen gọi là lý thuyết Ramsey, tên của nhà toán học người Anh.
Nói chung, lý thuyết Ramsey giải quyết những bài toán phân chia các tập con củamột tập các phần tử
Ví dụ 5 Giả sử trong một nhóm 6 người mỗi cặp hai hoặc là bạn hoặc là thù.
Chứng tỏ rằng trong nhóm có ba người là bạn lẫn nhau hoặc có ba người là kẻ thùlẫn nhau
Giải: Gọi A là một trong 6 người Trong số 5 người của nhóm hoặc là có ít
nhất ba người là bạn của A hoặc có ít nhất ba người là kẻ thù của A, điều này suy
ra từ nguyên lý Dirichlet tổng quát, vì ]5/2[= 3 Trong trường hợp đầu ta gọi B,
C, D là bạn của A nếu trong ba người này có hai người là bạn thì họ cùng với Alập thành một bộ ba người bạn lẫn nhau, ngược lại, tức là nếu trong ba người B, C,
Trang 14D không có ai là bạn ai cả thì chứng tỏ họ là bộ ba người thù lẫn nhau Tương tự
có thể chứng minh trong trường hợp có ít nhất ba người là kẻ thù của A
n
Chứng minh:
Để xây dựng một chỉnh hợp không lặp, ta xây dựng từ thành phần đầu tiên
Thành phần này có n khả năng chọn Mỗi thành phần tiếp theo những khả năngchọn giảm đi 1 (vì không được lấy lặp lại) Tới thành phần thứ k có n-k + 1 khả
năng chọn Theo nguyên lý nhân ta có số chỉnh hợp
lặp k của tập hợp n phần tử ký hiệu là P(n, k) được tính theo công thức:
Ví dụ 2 Giả sử có tám vận động viên chạy thi Người về nhất sẽ được
nhận huy chương vàng, người về nhì nhận huy chương bạc, người về ba nhậnhuy chương đồng Hỏi có bao nhiêu cách trao huy chương nếu tất cả các kết cục
đều có thể xảy ra
Giải: Số cách trao huy chương chính là số chỉnh hợp chập 3 của tập hợp 8
phần tử Vì thế
Trang 15có 3
8
A = 8.7.6 = 336 cách trao huy chương
Ví dụ 3 Có bao nhiêu cách chọn 4 cầu thủ khác nhau trong đội bóng
Giải: Biểu diễn mỗi hàm bằng một bộ k thành phần, trong đó thành phần
thứ i là ảnh của phần tử thứ i (1<=i<=k) Mỗi thành phần được lấy ra từ mộttrong n giá trị Từ đó suy ra số hàm là số bộ k thành phần lấy từ n thành phầnbằng nk
Ví dụ 2 Từ bảng chữ cái tiếng Anh có thể tạo ra được bao nhiêu xâu có độ
Trang 16chứa 5 quả đỏ, 7 quả xanh nếu sau mỗi lần lấy một quả bóng ra lại bỏ nó trở lạibình.
Giải: Số kết cục có lợi để ta lấy ra liên tiếp 3 quả bóng đỏ là 53 vì có 5 quả
đỏ ta phải lấy 3 quả (chú ý vì có hoàn lại) Toàn bộ kết cục có thể để lấy ra ba quả
bóng bất kỳ trong 12 quả bóng là 123 Như vậy, xác suất để có thể lấy ra 3 quảbóng đỏ liên tiếp là 53/123
- Bước 1: Chọn vật đứng đầu: có n cách chọn (n vật đều có thể đứngđầu)
- Bước 2: Chọn vật đứng thứ hai: có n-1 cách chọn (do đã chọn vậtđứng đầu
nên bây giờ ta chỉ còn n-1 vật )
- …
- Bước n: Chọn vật còn lại cuối cùng: chỉ có 1 cách duy nhất
Như vậy theo nguyên lý nhân, số cách xây dựng hoán vị, cũng chính là số các
hoán
vị của n vật ban đầu là n.(n-1)…2.1 = n!
3.1.3 Các ví dụ
Ví dụ 1 Có 6 người xếp thành hàng để chụp ảnh Hỏi có thể bố trí chụp
được bao nhiêu kiểu khác nhau
Giải: Mỗi kiểu ảnh là một hoán vị của 6 người Do đó có 6! = 720 kiểu
ảnh khác nhau có thể chụp
Trang 17Ví dụ 2 Cần bố trí thực hiện n chương trình trên một máy tính Hỏi có bao
nhiêu cách bố trí khác nhau
Giải: Số chương trình được đánh số từ 1, 2, , n Như vậy, số chương
trình cần thực hiện trên một máy tính là số hoán vị của 1, 2, , n
Ví dụ 3 Một thương nhân đi bán hàng tại tám thành phố Chị ta có thể bắt
đầu hành trình của mình tại một thành phố nào đó nhưng phải qua 7 thành phố
kia theo bất kỳ thứ tự nào mà chị ta muốn Hỏi có bao nhiêu lộ trình khác nhau
mà chị ta có thể đi
Giải: Vì thành phố xuất phát đã được xác định Do vậy thương nhân có thể
chọn tuỳ ý 7 thành phố còn lại để hành trình Như vậy, tất cả số hành trình của
thương nhân có thể đi qua là 7! = 5040 cách
3.2 Hoán vị có lặp
3.2.1 Khái niệm
Cho s phần tử khác nhau a1, a2,…, asMột chỉnh hợp có lặp chập m của s phần tử
đã cho, trong đó có k1phần tử a1,k2phần tử a2,…, ksphần tử asđược gọi là một
hoán vị lặp cấp m (m= k1+k2+…+ ka) và có kiểu (k1, k2,…,ks) của s phần tử
m
Chứng minh:
Đầu tiên, nếu xem như n phần tử là khác nhau, ta có m! hoán vị Tuy
nhiên do có k1 phần tử a1 giống nhau, nên ứng với một hoán vị ban đầu, nếu
ta hoán vị k1 phần tử này (có k1! hoán vị như vậy) ta vẫn được hoán vị đó.Chính vì vậy thực chất k1! hoán v ị k i ể u n ày c h ỉ l à m ộ t h o á n v ị d o đ ó
s ố h o á n v ị t h ự c s ự k h á c n h a u n ế u c ó k1 p h ầ n t ử a1 l à
!
!1