CHƯƠNG 2 BÀI TOÁN đẾM 1 Nguyên lý cộng và nguyên lý nhân 1 1 Nguyên lý cộng 1 2 Nguyên lý nhân 2 Chỉnh hợp Hoán vị Tổ hợp 2 1 Chỉnh hợp 2 2 Hoán vị 2 3 Tổ hợp 2 4 Chỉnh hợp và Tổ hợp suy rộng 3 Nguyên[.]
CHƯƠNG BÀI TOÁN đẾM Nguyên lý cộng nguyên lý nhân 1.1 Nguyên lý cộng 1.2 Nguyên lý nhân Chỉnh hợp Hoán vị Tổ hợp 2.1 Chỉnh hợp 2.2 Hoán vị 2.3 Tổ hợp 2.4 Chỉnh hợp Tổ hợp suy rộng Nguyên lý bù trừ Giải hệ thức truy hồi 4.1 Phương pháp khử để tìm cơng thức trực tiếp từ cơng thức truy hồi 4.2 Giải hệ thức truy hồi tuyến tính Bài tốn liệt kê 5.1 Phương pháp sinh 5.2 Thuật toán quay lui Bài toán tồn 6.1 Nguyên lý Di-ric-le (Dirichlet) 6.2 Một vài toán ứng dụng nguyên lý Di-ric-lê 6.3 Phương pháp phản chứng Lý thuyết tổ hợp phần quan trọng tốn rời rạc, chun nghiên cứu xếp đối tượng (phần tử tập hợp) theo quy tắc Mỗi kết cách xếp phần tử tập hợp theo quy tắc xác định cho gọi cấu hình tổ hợp đếm phần tử tập hợp, cấu hình tổ hợp nội dung toán đếm Chúng ta cần có quan niệm rộng rãi khái niệm đếm, chẳng hạn nói có 100đ cách đếm, thay cách nói cách nói có 10 tờ 5đ 25 tờ 2đ Nói cách khác, liệt kê cấu hình tổ hợp cách đếm Các tập hợp nói đến chương tập hợp có hữu hạn phần tử Số lượng phần tử tập hợp A, ký hiệu N(A), gọi lực lượng (hay số) tập hợp A Nguyên lý cộng nguyên lý nhân 1.1 Nguyên lý cộng Nếu A B là2 tập hợp rời (A∩B = ∅) N(A∪B) = N(A) + N(B) Nguyên lý mở rộng nhưsau: Giả sử A1, A 2, , A n tập tập X thoả mãn: 33 - Các A i đôi rời (Ai∩Aj = ∅, i ≠j) - X = A1∪A2∪ ∪An (Các tập A 1, A 2, …, A n thoả mãn tính chất gọi phân hoạch tập X) Khi đó: N(X) = N(A 1) + N(A 2) + + N(A n ) đặc biệt, ta có N(A) = N(X) – N( A ) A tập bù tập A X Thí dụ1: Một khố học có danh sách lựa chọn thực hành: Danh sách thứ có 10 bài; danh sách thứ hai có 15 bài; danh sách thứ ba có 25 Mỗi sinh viên chọn danh sách để làm thực hành Hỏi sinh viên có cách lựa chọn thực hành Giải:Có 10 cách lựa chọn danh sách thứ nhất, 15 cách lựa chọn danh sách thứ hai 25 cách lựa chọn danh sách thứ ba Vậy có 10 + 15 + 25 = 50 cách lựa chọn cho sinh viên Thí dụ2:Một đồn vận động viên địa phương cử thi đấu môn: bắn súng bắn cung Trong đồn có 10 nam số vận động viên bắn súng 14 (kể nam nữ) Số nữ vận động viên bắn cung số nam vận động viên bắn súng Hỏi đồn có người Giải: Gọi A, B tương ứng tập vận động viên nam, vận động viên nữ, ta có N(A) = 10 A1, A tương ứng tập vận động viên nam bắn súng, vận động viên nam bắn cung, ta có N(A1) + N(A ) = 10 B1, B tương ứng tập vận động viên nữ bắn súng, vận động viên nữ bắn cung, ta có N(B2) = N(A ) N(B1) + N(A ) = 14 Từ N(B1) + N(B ) = 14, nghĩa đồn có 14 vận động viên nữ Vậy tồn đồn có 10 + 14 = 24 vận động viên Thí du 3: Xét đoạn chương trình Pascal sau k := 0; for i1 := to n k := k + 1; for i2 := to n k := k + 1; for i3 := to n k := k + 1; Hỏi sau thực xong đoạn chương trình trên, giá trị k bao nhiêu? Giải:Giá trị ban đầu gán cho k Khối lệnh gồm vòng lặp tuần tự, sau bước lặp vòng lặp giá trị k tăng thêm 1, vòng lặp thứ i (i = 1, 2, 3) có n i bước nên sau vịng lặp thứ i giá trịcủa k tăng thêm n i Do vòng lặp nên sau vịng lặp giá trị k là: k = n + n2 + n3 1.2 Nguyên lý nhân Nếu thành phần thứ i (tức a i ) có thứ tự gồm k thành phần (a ,a , , a k ) có n i cách chọn (i = 1, 2, …, k) số lượng k thành phần n n … nk (tích số cách chọn thành phần) 34 Có thể phát biểu nguyên lý nhân dạng số phần tử tích đề-các tập hợp: N(A1 ×A2 ×… ×Ak) = N(A 1) N(A 2) … N(A k ) Thí dụ1:Có phương tiện từ Hà nội vào thành phố Hồ Chí Minh là: Ơ tơ, Tàu hoả, Tàu thuỷ Máy bay Có phương tiện từ thành phố Hồ chí Minh Cơn đảo Máy bay Tàu thuỷ Hỏi có cách từ Hà nội đến Côn đảo bắt buộc phải qua thành phố Hồ Chí Minh? Giải:Mỗi cách từ Hà nội vào thành phố Hồ Chí Minh có cách Cơn đảo Vậy với cách từ Hà nội vào thành phố Hồ Chí Minh có = cách từHà nội qua thành phốHồChí Minh đến Cơn đảo Thí dụ2:Một xâu nhị phân dãy liên tiếp chữ số (gọi bit bit 1) độ dài xâu số chữ số 0, có mặt xâu Hai xâu độ dài gọi khác có vị trí bit khác Hỏi có xâu nhị phân có độ dài ? Giải:Tại vị trí có cách lựa chọn bit bit Do theo quy tắc nhân cho thấy có = 256 xâu nhị phân khác có độ dài Thí dụ3:Một biển số xe máy địa phương cấu tạo gồm hai nhóm Nhóm đầu gồm ký tự: chữ sau chữ số Nhóm thứ gồm dãy chữ số liên tiếp (kể số trùng nhau) Hỏi phát hành biển số xe địa phương Giải: Có tất 24 cách chọn cho vị trí chữ Năm vị trí tiếp theo, vị trí có 10 cách chọn Theo quy tắc nhân, số biển số đăng ký xe máy là: 24.10.10.10.10.10 = 24.10 = 400 000 Thí dụ4:Giá trị biến k sau đoạn chương trình sau thực hiện? k := 0; for i := to n for i := to n for i := to n k := k + 1; Giải:đầu tiên k gán giá trị Có vịng lặp lồng Sau lần lặp vòng for cùng, giá trị k tăng thêm Với giá trị i , vòng for thứ hai thực n lần vàvới giá trị i vòng for thứ thực n lần Vậy theo nguyên lý nhân, sau vịng lặp kết thúc vịng lặp (i ) thực n n n lần, nghĩa k = n n n Chú ý nhiều toán đếm phải giải cách kết hợp nguyên lý cộng nguyên lý nhân Thí dụ:Tên biến ngơn ngữ lập trình Pascal xâu gồm chữ tiếng Anh (không phân biệt chữ thường chữ hoa) chữ số, khơng bắt đầu bắng chữ số Hỏi đặt tên biến khác có độ dài khơng q ký tự, biết có 10 từ khố có độ dài (chẳng hạn nhưto, do, go, if, or, in, …) 35 Giải:Gọi A tập tên biến có ký tự, N(A) = 26 (có 26 tên biến ứng với 26 chữ tiến Anh) Gọi B tập tên biến có ký tự Ký tự đầu có 26 cách lựa chọn, cịn ký tự thứ hai có 36 cách lựa chọn (26 chữ 10 chữ số) Vậy N(B) = 26.36 = 936 Do có 10 xâu bị “cấm” nên tổng số tên biến có độ dài khơng q ký tự là: 26 + 936 – 10 = 952 Chỉnh hợp.Hoán vị Tổ hợp 2.1 Chỉnh hợp định nghĩa:Một chỉnh hợp chập k n phần tử cóthứ tự gồm k phần tử lấy từ n phần tử cho (k ≤n) Số chỉnh hợp chập k n phần tử, ký hiệu k n A , tính theo cơng thức: k)! (n n! − = + − − − = )1 k n( )2 n )(1 n(n A k n Thật vậy, có n phần tử có n cách chọn phần tử đứng đầu, có n – cách chọn phần tử đứng thứ hai, n – phần tử đứng thứ ba, , n – k + cách chọn phần tử thứ k Theo nguyên lý nhân cơng thức cần chứng minh Thí dụ 1.Có 10 vận động viên thi chạy Hỏi có cách dự đoán vận động viên nhất, nhì, ba? Biết vận động viên có khả nhưnhau Giải: Số cách dự đoán số cách chọn có thứ tự 10 vận động viên, tức là: 10 A = 10 = 720 cách dự đốn Thí dụ 2.Có thể lập A = 9.9.8.7 = 4536 số ngun có chữ số khác Thí dụ 3.Có đơn ánh từ tập hợp A có k phần tử vào tập hợp B có n phần tử (k ≤n)? Giải : Giả sử phần tử tập hợp A tương ứng với số 1, 2, , k; đơn ánh có thứ tự ảnh phần tử tập hợp A Vậy có k n A đơn ánh từ A vào B 2.2 Hoán vị: định nghĩa: Một hoán vị n phần tử cho cách xếp có thứ tự n phần tử Dễnhận rằng, hốn vịcủa n phần tửchính chỉnh hợp chập n n Do đó: Số hốn vị n phần tử , ký hiệu P n , là: !n )1 n(n A P n n =−== Thí dụ 1.Mỗi cách xếp hàng (ngang dọc) người hốn vị phần tử Vậy có P5 = 5! = 120 cách xếp hàng người 36 Thí dụ 2.Một người phải kiểm tra dịa điểm khác theo thứ tự Hỏi người có cách địa điểm cho địa điểm kiểm tra lần Giải:Người có P7 = 7! = 5040 cách 2.3 Tổ hợp định nghĩa:Một tổ hợp chập k n phần tử cách chọn không kể thứ tự k phần tử từ n phần tử cho (n ≥k) Số tổ hợp chập k n phần tử , ký hiệu k n C , tính nhưsau: Với k phần tử khơng thứ tự tương ứng với k! cách xếp có thứ tự Nói cách khác tổ hợp chập k n tương ứng với k! chỉnh hợp chập k n Từ suy ra: k n k