Giáo trình Toán rời rạc: Phần 1 cung cấp cho người học những kiến thức như: Một số kiến thức mở đầu về lý thuyết tổ hợp, bài toán đếm, bài toán tồn tại, bài toán liệt kê, bài toán tối ưu. Mời các bạn cùng tham khảo!
Trang 1Lời nói đầu Tài liệu Toán rời rạc được biên soạn nhằm phục vụ công việc giảng dạy
và học tập môn học Toán rời rạc của các ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định
Với thời lượng 60 tiết nội dung của tài liệu chỉ đề cập đến các kiến thức cơ bản của lý thuyết tổ hợp và lý thuyết đồ thị là hai lĩnh vực có nhiều ứng dụng của toán rời rạc Nội dung tài liệu gồm 10 chương: Từ chương 1 đến chương 5 nhằm giới thiệu các kiến thức cơ bản của lý thuyết tổ hợp, từ chương 6 đến chương 10 nhằm giới thiệu các kiến thức cơ bản của lý thuyết đồ thị
Trong từng chương các vấn đề đưa ra đều được minh họa bằng các ví dụ Cuối mỗi chương đều có một hệ thống các bài tập nhằm giúp người học củng
cố các kiến thức đã được học đồng thời rèn luyện khả năng vận dụng các kiến thức để giải quyết một số bài toán trong thực tế
Tài liệu được biên soạn theo chương trình môn học Toán rời rạc của các ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Nội dung tài liệu được biên soạn dựa trên cơ sở nội dung các bài giảng môn học này của tác giả trong một số năm qua tại khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định
Trong quá trình biên soạn, tác giả đã nhận được nhiều ý kiến đóng góp cùng với sự động viên, khích lệ của bạn bè đồng nghiệp trong khoa và trong trường Tác giả xin được tỏ lòng cảm ơn với những ý kiến đóng góp và động viên khích lệ này
Với lần biên soạn đầu tiên, mặc dù đã hết sức cố gắng song chắc chắn tài liệu không thể tránh khỏi những thiếu sót Rất mong nhận được các ý kiến đóng góp để tài liệu ngày càng hoàn thiện hơn
Phạm Cao Hào
Trang 2Chương 1 MỘT SỐ KIẾN THỨC MỞ ĐẦU
VỀ LÝ THUYẾT TỔ HỢP
1.1 Giới thiệu về tổ hợp
Toán rời rạc là một lĩnh vực của toán học nghiên cứu về các đối tượng rời rạc Các tập hợp dùng để nhóm các đối tượng lại với nhau Thông thường, các đối tượng trong một tập hợp có các tính chất tương tự nhau Ví dụ, các sinh viên vừa mới nhập trường lập nên một tập hợp Tương tự như vậy, các sinh viên khoa CNTT lập nên một tập hợp Các dãy nhị phân có độ dài n cũng lập nên một tập hợp Có thể nói tập hợp là một cấu trúc rời rạc cơ bản từ đó lập nên các cấu trúc khác Tổ hợp như là một lĩnh vực của toán học rời rạc Hiện nay, lý thuyết tổ hợp được áp dụng trong nhiều lĩnh vực khác nhau: tin học, lý thuyết số, xác suất thống kê, quy hoạch thực nghiệm, Tổ hợp liên quan đến nhiều vấn đề khác nhau của toán học, do đó khó có thể định nghĩa nó một cách hình thức Nói chung, lý thuyết tổ hợp gắn liền với việc nghiên cứu 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 đó Mỗi cách phân bố như thế được gọi là một cấu hình tổ hợp
Trang 3một nghệ thuật tổ hợp nhất định Tuy nhiên, có thể nói rằng, lý thuyết tổ hợp được hình thành như một ngành toán học mới là vào khoảng thế kỷ 17 bằng một loạt các công trình nghiên cứu nghiêm túc của các nhà toán học như Pascal, Fermat, Euler,
Trong thời gian hiện nay, mối tương quan giữa toán học hữu hạn và toán học cổ điển đã có nhiều thay đổi, đặc biệt khi máy tính điện tử ra đời và phát triển Nhiều bài toán nổi tiếng đã được giải trên máy tính bằng những thuật toán của toán hữu hạn Các lĩnh vực trừu tượng của toán học như đại số lôgic, ngôn ngữ hình thức, đã trở thành khoa học ứng dụng để xây dựng các ngôn ngữ lập trình cho máy tính Trong thời đại phát triển của toán học hữu hạn, vai trò của lý thuyết tổ hợp cũng khác xưa Từ lĩnh vực nghiên cứu các trò chơi tiêu khiển hay phân tích giải mã các bức thư cổ, tổ hợp đã chuyển sang lĩnh vực toán ứng dụng với sự phát triển mạnh mẽ
Các bài toán tổng quát
Trong các tài liệu về tổ hợp, thường gặp các dạng bài toán dưới đây:
* Bài toán đếm: Đây là các bài toán nhằm trả lời câu hỏi “ Có bao nhiêu
cấu hình thoả mãn điều kiện đã nêu? “ Phương pháp đếm thường dựa vào một
số nguyên lý cơ bản và một số kết quả đếm các cấu hình đơn giản Bài toán đếm được áp dụng một cách có hiệu quả vào những công việc mang tính chất đánh giá như tính xác suất của một sự kiện, tính độ phức tạp của một thuật toán,
* Bài toán liệt kê: Bài toán này quan tâm đến tất cả cấu hình có thể có
được, vì thế lời giải của nó cần được biểu diễn dưới dạng thuật toán “vét cạn“
tất cả các cấu hình Lời giải trong từng trường hợp cụ thể sẽ được máy tính
điện tử giải quyết theo thuật toán đã nêu Bài toán liệt kê được làm “nền” cho
nhiều bài toán khác như: bài toán đếm, bài toán tối ưu,
* Bài toán tồn tại: Nếu như trong các bài toán trên, việc tồn tại các cấu
hình là hiển nhiên thì trong bài toán này, vấn đề “có hay không có” cấu hình
còn là điều nghi vấn Lịch sử toán học thường để lại những bài toán khó trong
Trang 4lĩnh vực này và việc cố gắng giải quyết chúng đã thúc đẩy không ít sự phát triển của nhiều ngành toán học
* Bài toán tối ưu: Khác với bài toán liệt kê, bài toán tối ưu chỉ quan tâm
đến cấu hình “tốt nhất” theo một nghĩa nào đấy Đây là bài toán có nhiều ứng
dụng trong thực tiễn và lý thuyết tổ hợp đã góp một phần đáng kể trong việc xây dựng được những thuật toán hữu hiệu
1.2 Sơ lƣợc về lý thuyết tập hợp
1.2.1 Một số khái niệm và ký hiệu
* Người ta thường dùng các chữ cái hoa để ký hiệu các tập hợp Chẳng
hạn các chữ N, Z và R sẽ được dùng để ký hiệu tập các số tự nhiên , tập các
số nguyên và tập các số thực
* Các đối tượng trong một tập hợp được gọi là các phần tử của tập hợp
đó Các phần tử được ký hiệu bằng các chữ cái nhỏ a, b, , x, y,… Để chỉ x là phần tử của X ta viết xX, trái lại ta viết xX
* Có nhiều cách mô tả một tập hợp Một trong số những cách đó là liệt
kê hết các phần tử của một tập hợp, khi có thể Chúng ta sẽ dùng ký hiệu trong
đó tất cả các phần tử của một tập hợp được liệt kê ở giữa hai dấu móc Chẳng hạn ký hiệu { a, b, c, d } biểu diễn một tập hợp có bốn phần tử là a, b, c, d (Trong tài liệu để cho gọn có chỗ ta sẽ dùng tập thay cho tập hợp)
Trang 5* A và B là hai tập hợp, nếu mỗi phần tử của A cũng là phần tử của B thì
ta nói A là tập con của B và ký hiệu là A B A và B được gọi là hai tập hợp bằng và ký hiệu là A=B nếu A là tập con của B và B là tập con của A
* Tập hợp vũ trụ X là tập hợp chứa tất cả các đối tượng đang xét Số các
phần tử của một tập hợp A được ký hiệu là N(A) hoặc |A|
Ví dụ 1.5 với các tập hợp trong ví dụ 1.4 ta có
N(A) = 7
N(B) = 3
1.2.2 Một số phép toán trên tập hợp
* Cho hai tập hợp A và B Hợp của hai tập A và B được ký hiệu là A B
là tập gồm tất cả các phần tử hoặc thuộc A, hoặc thuộc B hoặc thuộc cả hai
A
1 2
Trang 6A B, là tập chứa tất cả các phần tử đồng thời thuộc cả A và B
ABx|xAxB
Ví dụ 1.8 Cho A, B là hai tập trong ví dụ 1, khi đó A B = { 2, 4, 6}
Tổng quát: Giao của n tập hợp là một tập hợp chứa các phần tử thuộc tất cả n
tập hợp đó
Ta dùng ký hiệu:
n i
A A
A
1 2
* Cho A và B là hai tập hợp, tích Đề các của A và B, được ký hiệu là
A x B, là tập hợp gồm tất cả các cặp (a, b) với aA và bB
A x B = { (a, b) { aA và bB }
Ví dụ 1.11 A = { a, b, c }
B = { 2, 4 } Khi đó A x B = { (a, 2), (a, 4), (b, 2), (b, 4), (c, 2), (c, 4) }
Tích Đề các được mở rộng tự nhiên cho nhiều tập hợp:
A1 x A2 x x An= { (a1, a2, , an) { aiAi, i=1, 2, , n }
Ta cũng dùng ký hiệu luỹ thừa để biểu diễn tích Đề các của cùng một tập hợp: An
= A x A x x A (n lần)
Trang 7Phép phủ định A, ký hiệu A (NOT A) tương ứng với phép lấp phần bù Tuyển của A và B, ký hiệu A V B (A or B) tương ứng với phép hợp của
1.2.4 Quan hệ tương đương và phân hoạch
Trong nhiều vấn đề, người ta cần quan tâm đến một quan hệ nào đó giữa hai phần tử của tập hợp đang xét Có nhiều kiểu quan hệ, nhưng hay gặp hơn
cả là quan hệ tương đương Một quan hệ được gọi là tương đương nếu nó thoả mãn các tính chất sau:
* Phản xạ: mọi phần tử có quan hệ với chính nó
* Đối xứng: a có quan hệ với b thì b có quan hệ với a
* Bắc cầu: a có quan hệ với b, b có quan hệ với c thì a có quan hệ với c Một quan hệ tương đương xác định trên một tập hợp sẽ chia tập hợp đó thành các lớp, gọi là các lớp tương đương sao cho hai phần tử thuộc cùng một lớp thì có quan hệ với nhau, hai phần tử thuộc hai lớp khác nhau thì không có quan hệ với nhau
Các lớp tương đương có tính chất phủ kín tập đã cho (tức là hợp của các
Trang 8lớp tương đương bằng tập đã cho) và rời nhau (tức là giao của hai lớp bất kỳ bằng rỗng) Ta gọi một họ các tập con khác rỗng của một tập hợp có tính chất nêu trên là một phân hoạch của tập hợp đó Như vậy một quan hệ tương đương trên một tập hợp sẽ xác định một phân hoạch trên tập đó, và ngược lại một phân hoạch trên tập hợp đã cho sẽ tương ứng với một quan hệ tương đương trên tập hợp đó
Ví dụ 1.12 X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Trên X ta xác định một quan hệ R như sau :
Với a thuộc X, b thuộc X, a và b được gọi là có quan hệ R với nhau nếu chúng có cùng số dư khi chia cho 3
a R b a mod 3 = b mod 3
Dễ thấy rằng quan hệ R là một quan hệ tương đương trên X (bạn đọc tự kiểm chứng lại điều này), và khi đó quan hệ R sẽ chia tập X thành các lớp tương đương như sau :
L1 = { 3, 6, 9 }
L2 = {1, 4, 7, 10 }
L3 = { 2, 5, 8 }
1.2.5 Biểu diễn các tập hợp trên máy tính
Có nhiều cách biểu diễn tập hợp trên máy tính Một phương pháp là lưu trữ các phần tử của tập hợp theo cách không sắp thứ tự Tuy nhiên, nếu điều đó đã làm được, thì việc tìm giao, hợp hoặc hiệu của tập hợp sẽ rất mất thời gian, vì mỗi phép tính đó đòi hỏi một lượng thời gian tìm kiếm rất lớn đối với các phần tử Vì vậy chúng ta sẽ sử dụng phương pháp lưu trữ các phần tử bằng cách dùng sự sắp tùy ý các phần tử của tập vũ trụ Phương pháp biểu diễn tập hợp này làm cho việc tính những tổ hợp của các tập hợp trở nên dễ dàng hơn Giả sử rằng tập vũ trụ X là hữu hạn (và có kích thước hợp lý để số phần tử của X không lớn hơn dung lượng bộ nhớ của máy tính mà ta đang dùng) Trước hết, hãy chỉ rõ sự sắp tùy ý các phần tử của X, ví dụ a1, a2, , an sau đó biểu diễn tập con A của X bằng một xâu nhị phân có chiều dài n, trong đó bit
Trang 9thứ i có giá trị bằng 1 nếu ai thuộc A và là 0 nếu ai không thuộc A
Ví dụ 1.13 Cho X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } và sự sắp xếp các phần tử
trong X theo thứ tự tăng dần; tức là ai = i Xác định các xâu nhị phân biểu diễn tập con các số nguyên lẻ trong X, tập con các số nguyên chẵn trong X và tập con các số nguyên chia hết cho 3 trong X
Giải: Xâu nhị phân biểu diễn tập các số chẵn trong X là : 0101010101
Xâu nhị phân biểu diễn tập các số lẻ trong X là: 1010101010
Xâu nhị phân biểu diễn tập các số nguyênchia hết cho3 trong X là:
đó sẽ có n1 + n2 cách làm một trong hai việc đó
Ví dụ 1.14 Giả sử cần chọn hoặc là một cán bộ của khoa Tin hoặc là một
sinh viên Tin làm đại biểu trong hội đồng của một trường đại học Hỏi có bao nhiêu cách chọn vị đại biểu này nếu khoa Tin có 50 cán bộ và 800 sinh viên?
Giải : Ta gọi việc thứ nhất là việc chọn một cán bộ của khoa Tin Nó có thể
làm bằng 50 cách Việc thứ hai, chọn một sinh viên Tin, có thể làm bằng 800 cách Theo nguyên lý cộng ta có 50 + 800 = 850 cách chọn vị đại diện này
Ví dụ.1.15 Một sinh viên có thể chọn bài thực hành máy tính từ một trong ba
danh sách tương ứng có 23, 15 và 19 bài Có bao nhiêu cách chọn bài thực hành
Giải : Có 23 cách chọn bài thực hành từ danh sách thứ nhất, 15 cách chọn từ
danh sách thứ hai và 19 cách chọn từ danh sách thứ ba Vì vậy, có :
23 + 15 + 19 = 57 cách chọn bài thực hành
Ví dụ 1.16 Giá trị của biến k bằng bao nhiêu sau khi đoạn chương trình sau
được thực hiện?
k = 0
Trang 10Giải : Giá trị khởi tạo của k bằng không Khối lệnh này gồm m vòng lặp khác
nhau Sau mỗi bước lặp của từng vòng lặp giá trị của k được tăng lên một đơn
vị Sau vòng lặp thứ nhất k = n1 Do các vòng lặp không thực hiện đồng thời nên sau vòng lặp thứ hai k = n1+ n2 và tương tự như vậy sau khi đoạn chương trình được thực hiện xong k = n1 + n2 + …+ nm
Nguyên lý cộng có thể được phát biểu dưới dạng của ngôn ngữ tập hợp như sau:
Nếu A1, A2,…, An là các tập rời nhau thì
N(A1 A2…An) = N(A1) + N(A2)+ …+ N(An)
1.3.2 Nguyên lý nhân
Giả sử một nhiệm vụ nào đó được tách ra làm hai việc Việc thứ nhất có thể làm bằng n1 cách, việc thứ hai có thể làm 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
Ví dụ 1.17 Người ta có thể ghi nhãn cho những chiếc ghế trong một giảng
đường bằng một chữ cái và một số nguyên dương không vượt quá 100 Bằng cách như vậy, nhiều nhất có bao nhiêu chiếc ghế có thể được ghi nhãn khác nhau
Giải: Thủ tục ghi nhãn cho một chiếc ghế gồm hai việc, gán một trong 26 chữ
cái và sau đó gán một trong 100 số nguyên dương Quy tắc nhân chỉ ra rằng
có 26 100 = 2600 cách khác nhau để gán nhãn cho một chiếc ghế Vậy nhiều nhất có 2600 chiếc ghế có thể được ghi nhãn
Ví dụ 1.18 Từ Hà Nội đến Huế có 3 cách đi: máy bay, ô tô, tàu hoả Từ Huế
đến Sài Gòn có 4 cách đi: máy bay, ô tô, tàu hoả, tàu thuỷ Hỏi từ Hà Nội đến Sài Gòn (qua Huế) có bao nhiêu cách đi?
Trang 11Giải : Mỗi cách đi từ Hà Nội đến Sài Gòn (qua Huế) được xem gồm 2 chặng:
Hà Nội – Huế và Huế – Sài Gòn Từ đó theo nguyên lý nhân, số cách đi từ Hà Nội đến Sài Gòn là 3 4 = 12 cách
Ví dụ 1.19 Có bao nhiêu xâu nhị phân độ dài 7?
Giải : Mỗi một trong 7 bit của xâu nhị phân có thể chọn bằng hai cách vì mỗi
bit hoặc bằng 0 hoặc bằng 1 Vì vậy, theo nguyên lý nhân cho thấy có tổng cộng 27 = 128 xâu nhị phân khác nhau có độ dài bằng 7
Nhận xét: Có 2n
xâu nhị phân khác nhau có độ dài n
Ví dụ 1.20 Giá trị của biến k bằng bao nhiêu sau khi chương trình sau được
Giải : Đầu tiên giá trị của k được khởi tạo bằng 0 Có m vòng lặp lồng nhau
Sau mỗi lần lặp của vòng lặp for k tăng lên 1 Vòng lặp thứ nhất lặp n1 lần, vòng lặp thứ 2 lặp n2 lần, vòng lặp thứ m lặp nm lần Theo nguyên lý nhân, sau khi kết thúc đoạn chương trình trên k = n1 n2 ….nm
Nguyên lý nhân có thể được phát biểu dưới dạng của ngôn ngữ tập hợp như sau:
Nếu mỗi thành phần ai của bộ có thứ tự k thành phần (a1, a2, , ak) có ni khả năng lựa chọn (i= 1, 2,…, k), thì số bộ sẽ được tạo ra là tích số của các khả năng này n1 n2 … nk
Một hệ quả trực tiếp của nguyên lý nhân:
N(A1 x A2 x … x Ak) = N(A1)xN(A2)xN(A3 x …x N(Ak)
Với A1 , A2 , … , Ak là những tập hợp nào đó, nói riêng N(Ak) = N(A)k
Trang 121.4 Các cấu hình tổ hợp đơn giản
1.4.1 Chỉnh hợp lặp
Định nghĩa 1.1 Một chỉnh hợp lặp chập k của n phần tử là một bộ có thứ tự
gồm k thành phần lấy từ n phần tử đã cho Các thành phần có thể được lặp lại Như vậy, một chỉnh hợp lặp chập k của n có thể xem như một phần tử của tập tích Đề các Ak
với A là tập đã cho Do đó theo nguyên lý nhân, số chỉnh hợp lặp chập k của n sẽ là nk
Ví dụ 1.23 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ị 0 hoặc 1 Do đó mỗi dãy nhị phân độ dài n sẽ là một chỉnh hợp lặp chập n của 2, vì vậy số dãy nhị phân độ dài n sẽ
là 2n
1.4.2 Chỉnh hợp không lặp
Định nghĩa 1.2 Một chỉnh hợp không lặp chập k của n phần tử là một bộ có
thứ tự gồm k thành phần lấy từ n phần tử đã cho Các thành phần không được lặp lại
Định lý 1.1 Số chỉnh hợp không lặp chập k của n là: n (n-1)(n-2)…(n-k+1)
Chứng minh: Thành phần đầu tiên của chỉnh hợp có thể chọn bằng n cách,
thành phần thứ hai của chỉnh hợp được chọn từ n-1 phần tử còn lại (vì các thành phần không được lặp lại) Tương tự có (n-2) cách chọn thành phần thứ
Trang 13ba … có (n-k+1) cách để chọn thành phần thứ k Theo nguyên lý nhân ta sẽ
có n (n-1)(n-2)…(n-k+1) chỉnh hợp không lặp chập k của n
Ví dụ 1.24 Có bao nhiêu cách chọn bốn cầu thủ khác nhau trong mười cầu
thủ của đội bóng quần vợt để chơi bốn trận đấu đơn, các trận đấu là có thứ tự
Giải : Mỗi cách chọn có thứ tự bốn cầu thủ khác nhau trong mười cầu thủ là
một chỉnh hợp không lặp chập 4 của 10 Theo định lý 1.1, ta có
10.9.8.7 = 5040 cách chọn
Ví dụ 1.25 Có bao nhiêu số gồm 4 chữ số khác nhau có thể thành lập được từ
các chữ số 1, 2, 3, 4, 5, 6
Giải : Mỗi số gồm 4 chữ số thỏa mãn điều kiện đã cho là một chỉnh hợp
không lặp 4 của 6, do đó theo định lý ta có số các số gồm 4 chữ số khác nhau
Ví dụ 1.28 Một người bán hàng rong định đi bán hàng tại tám địa điểm trong
thành phố Người đó bắt đầu cuộc hành trình của mình từ một địa điểm nào đó
và có thể đến 7 địa điểm kia theo bất kỳ thứ tự nào mà người đó muốn Hỏi người đó có thể đi qua tám địa điểm này theo bao nhiêu lộ trình khác nhau
Trang 14Giải: Vì địa điểm đầu tiên đã được xác định, còn 7 địa điểm còn lại có thể đi
theo thứ tự tuỳ ý, nên số lộ trình khác nhau chính là số hoán vị của tập gồm 7 phần tử Do đó có 7! =5040 cách để người bán hàng chọn hành trình của mình
1.4.4 Tổ hợp
Định nghĩa 1.4 : Một tổ hợp chập k của n phần tử là một bộ không kể thứ tự
gồm k thành phần khác nhau lấy từ n phần tử đã cho
Như vậy, ta có thể coi một tổ hợp chập k của n phần tử là một tập con gồm k phần tử của nó
Do vậy, nếu ta ký hiệu Ck
5 10 ( 5
! 10
Trang 15Ví dụ 1.31 Có n đội bóng thi đấu vòng tròn một lượt Hỏi phải tổ chức bao
2 ( 2
Ví dụ 1.32 Một lớp học có 60 học sinh trong đó có 40 nam và 20 nữ Lớp cần
thành lập đội xung kích gồm 10 nam và 10 nữ Hỏi có bao nhiêu cách thành lập đội xung kích của lớp mà trong đó không đồng thời có em nam A và em
nữ B?
Giải:
Cách 1: Tất cả các cách thành lập đội xung kích của lớp là: C4010.C2010
Các cách thành lập đội xung kích của lớp mà đồng thời có A và B là 9
19
9
39.C C
Do đó số cách thành lập đội xung kích theo điều kiện đầu bài là:
10 20
- Các cách thành lập đội xung kích có B và không có A Số cách thành lập như vậy là 9
19
10
39.C C
- Các cách thành lập đội xung kích không có B và không có A Số cách thành lập như vậy là 10
19
10
39.C C
Do vậy số cách thành lập đội xung kích của lớp thoả mãn điều kiện là:
10 19
9
39.C
C + C1039.C199 + C3910.C1910
Trang 165 Có bao nhiêu người có họ tên viết tắt bằng 3 chữ cái?
6 Có bao nhiêu người có họ tên viết tắt bằng 3 chữ cái, trong đó không có chữ cái nào được lặp lại?
7 Có bao nhiêu người có họ tên viết tắt bằng 3 chữ cái, trong đó chữ cái đầu tiên là chữ A?
8 Một tổ học sinh có 12 em, trong đó có 7 em nam và 5 em nữ Hỏi có bao nhiêu cách lấy 6 em của tổ gồm 4 em nam và 2 em nữ đi lao động cho nhà trường
9 Một tổ học sinh có 12 em, trong đó có 7 em nam và 5 em nữ Hỏi có bao nhiêu cách lấy 6 em của tổ trong đó có ít nhất 4 em là nam đi lao động cho nhà trường
10 Cho tập X gồm n phần tử Chứng minh rằng số tập con của X bằng 2n
11 Cho tập X gồm n phần tử Chứng minh rằng số tập con gồm một số chẵn phần tử của X bằng số tập con gồm một số lẻ phần tử của X
Trang 17Chương 2
BÀI TOÁN ĐẾM
2.1 Giới thiệu bài toán
Một trong những vấn đề đầu tiên của việc nghiên cứu tổ hợp là đếm xem
có bao nhiêu cấu hình tổ hợp có thể được tạo ra với những quy tắc đã nêu?
Những bài toán như vậy gọi là bài toán đếm Chúng ta cần phải đếm các đối
tượng để giải quyết nhiều bài toán khác nhau Thông thường, lời giải của bài toán đếm phụ thuộc vào một số giá trị tham số ban đầu và người ta cố gắng biểu diễn sự phụ thuộc này bằng những công thức toán học Để đếm các cấu hình theo yêu cầu, người ta thường tìm cách đưa về các cấu hình quen thuộc bằng cách thiết lập một tương ứng 1-1 giữa chúng Nhiều khi, một bài toán đếm được phân thành những bài toán đếm nhỏ hơn bằng cách chia việc đếm thành từng lớp để áp dụng nguyên lý cộng hoặc phân tích cấu hình cần đếm như là việc ghép một số cấu hình khác để áp dụng nguyên lý nhân
Dưới đây là một số ví dụ đơn giản nhằm minh họa một số kỹ thuật đếm
Ví dụ 2.1 Có bao nhiêu cách xếp 5 người thành một hàng ngang sao cho A
không đứng cạnh B
Giải: Các cách xếp 5 người thành một hàng ngang gồm 2 loại: một loại gồm
những cách xếp A đứng cạnh B, một loại gồm những cách xếp A không đứng cạnh B Do đó, để đếm số cách xếp A không đứng cạnh B , ta đi đếm số cách xếp A đứng cạnh B Xem A và B như một chỗ, ta có 4!=24 cách xếp Nhưng
A có thể đứng bên trái hoặc bên phải B Do đó số cách xếp A đứng cạnh B là 24.2=48 cách Số cách xếp 5 người thành một hàng ngang là 5!=120 Nên số cách xếp A không đứng cạnh B sẽ là:
120 – 48 = 72
Ví dụ 2.2 Ngôn ngữ Pascal chuẩn qui định đặt tên biến không quá 8 ký tự
Các ký tự trong tên biến chỉ được phép là các chữ cái (từ a đến z, không phân biệt chữ hoa, chữ thường) hoặc các chữ số (từ 0 đến 9) và phải bắt đầu bằng chữ cái Hỏi có thể đặt tên được cho bao nhiêu biến khác nhau
Trang 18Giải: Ta phân các biến thành các lớp:
- Lớp gồm những biến có tên 1 ký tự
- Lớp gồm những biến có tên 2 ký tự
- Lớp gồm những biến có tên 8 ký tự
Số các biến thuộc lớp có tên k ký tự, theo nguyên lý nhân bằng 26x36k-1
Do đó, theo nguyên lý cộng ta có số các biến khác nhau là:
26 + 26.36 + 26.362 + + 26.367 = 2 095 681 645 538
Ví dụ 2.3 Một đợt phát hành sổ số với các vé số gồm hai phần: phần đầu gồm
2 chữ cái lấy từ A đến Z (26 chữ cái) và phần sau gồm 4 chữ số lấy từ 0 đến 9 (10 chữ số) Hỏi phát hành được nhiều nhất bao nhiêu vé số?
Giải: Mỗi vé số gồm hai phần: phần chữ và phần số Phần chữ có 262
khả năng, phần số có 104
khả năng Do vậy, theo nguyên lý nhân, số vé nhiều nhất được phát hành sẽ là 262
x 104 = 6 760 000
Ví dụ 2.4 Hai đội bóng chuyền, mỗi đội có 6 cầu thủ, xếp thành một hàng
ngang để chụp ảnh Hỏi có bao nhiêu cách xếp mà các cầu thủ của hai đội đứng xen kẽ nhau (không có hai cầu nào của cùng một đội đứng cạnh nhau)
Giải: Gọi hai đội bóng là đội A và đội B Ta xếp các cầu thủ của đội A đứng ở
các vị trí lẻ khi đó sẽ có 6! cách xếp các cầu thủ của đội A, xếp các cầu thủ của đội B đứng ở các vị trí chẵn khi đó sẽ có 6! cách xếp các cầu thủ của đội
B Do đó số cách xếp 12 cầu thủ của hai đội mà các cầu thủ của đội A đứng ở các vị trí lẻ, các cầu thủ của đội B đứng ở các vị trí chẵn sẽ là 6!x6! = (6!)2
Đảo vị trí chẵn lẻ của hai đội thì ta sẽ được số cách xếp 12 cầu thủ của hai đội đứng xen kẽ nhau sẽ là 2 x (6!)2
Trang 19Công thức xác định số phần tử của hợp hai tập hợp thường được dùng trong các bài toán đếm
Công thức (1) được mở rộng cho hữu hạn tập hợp như sau:
Định lý 2.1 Giả sử A1, A2, A3, , An là các tập hữu hạn Khi đó:
N( A1A2 An) = N1 - N2 + N3 - + (-1)n+1Nn (2)
Trong đó Nk là tổng các phần tử của tất cả các giao của k tập lấy từ n tập
đã cho
Chứng minh: Ta sẽ chứng minh công thức trên bằng cách chỉ ra rằng
mỗi phần tử của hợp n tập hợp được đếm đúng một lần Giả sử a là phần tử chung của k tập trong các tập A1, A2, A3, , An, trong đó 1 ≤ k ≤ n Phần tử này được đếm C1
k lần trong tổng N1, được đếm C2
k lần trong tổng N2, , được đếm Ck
k lần trong tổng Nk Như vậy, số lần a được đếm ở vế phải của (2) là:
Nguyên lý bù trừ có thể được ứng dụng và phát biểu dưới dạng sau:
Cho tập hữu hạn X Ak là tập con của tập X thoả mãn tính chất Ak nào đó cho trên tập X Khi đó, số phần tử của X không thoả mãn bất cứ một tính chất
Ak nào sẽ là:
N(X) - N( A1A2 An) = N - N1 + N2 - N3 + + (-1)nNn
Trong đó, Nk là số phần tử thoả mãn k tính chất lấy từ n tính chất đã cho
Ví dụ 2.5 Trong kỳ thi học sinh giỏi cấp thành phố, một trường PTCS có 20
học sinh đạt giải môn toán, 11 học sinh đạt giải môn văn, trong số đó có 7 em đạt giải cả hai môn văn và toán Hỏi trường có bao nhiêu học sinh đạt giải học sinh giỏi
Giải: Gọi A là tập các học sinh đạt giải môn toán, Gọi B là tập các học sinh
đạt giải môn văn Khi đó số học sinh giỏi của trường là N(AB) và N(AB)
Trang 20là số học sinh đạt giải cả hai môn văn và toán Vì vậy
N(AB) = N(A) + N(B) - N(AB) = 20 + 11 – 7 =24
Ví dụ 2.6 Có bao nhiêu xâu nhị phân độ dài 8 bit hoặc bắt đầu bằng bit 1
hoặc kết thúc bằng hai bit 0
Giải : Việc thứ nhất, xây dựng các xâu nhị phân độ dài 8 bit bắt đầu bằng bit
1, có 27 xâu vì bit đầu tiên chỉ có một cách chọn, 7 bit còn lại mỗi bit có hai cách chọn (0 hoặc 1) Tương tự như vậy, việc thứ hai xây dựng các xâu nhị phân độ dài 8 bit kết thúc bằng hai bit 0, có 26 xâu Số xâu nhị phân độ dài 8 bit bắt đầu bằng bit 1 và kết thúc bằng hai bit 0 là 25
xâu Theo nguyên lý bù trừ, số xâu nhị phân độ dài 8 bit hoặc bắt đầu bằng bit 1 hoặc kết thúc bằng hai bit 00 sẽ là: 27
+ 26 – 25 = 160
Ví dụ 2.7 Hỏi trong tập X = {1, 2, 1000} có bao nhiêu số không chia hết
cho bất cứ số nào trong các số 3, 4, 5?
Giải : Gọi Ai = {x X | x chia hết cho i; i =3, 4, 5}
Số các số chia hết cho ít nhất một trong ba số trên là
N(A3 A4 A5) = N1 – N2 + N3
N3 = N(A3A4A5) = [1000/3.4.5] = 16
Như vậy số các số chia hết ít nhất một trong các số 3, 4, 5 của X là:
N(A3 A4 A5) = 738 – 199 + 16 =555
Do đó số các số không chia hết cho bất cứ số nào trong các số 3, 4, 5 của X
sẽ là: N(X) - N(A3 A4 A5) =1000 – 555 = 445
Ví dụ 2.8 Mỗi người sử dụng hệ thống máy tính đều có mật khẩu dài từ sáu
đến tám ký tự, trong đó mỗi ký tự là một chữ cái hay chữ số Hỏi có bao nhiêu mật khẩu?
Trang 21Giải: Gọi P là tổng số mật khẩu có thể và P6, P7, P8 tương ứng là số mật khẩu dài 6, 7, 8 ký tự Theo nguyên lý cộng ta có P = P6 + P7 + P8 Bây giờ chúng ta
sẽ tính P6, P7, P8 Ta thấy P6 chính là một bộ có thứ tự gồm 6 thành phần trong
đó mỗi thành phần được lấy ra từ 36 phần tử gồm 10 chữ số và 26 chữ cái P6 chính là một chỉnh hợp lặp chập 6 của 36 Như vậy P6 = 366 cách lựa chọn Hoàn toàn tương tự ta có: P7 = 367, P8 = 368
Cuối cùng ta được : P = P6 + P7 + P8 = 366 + 367 + 368
Ví dụ 2.9 (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 xuất để xảy ra không một lá thư nào bỏ đúng địa chỉ là bao nhiêu
Giải: Có tất cả n! cách bỏ thư Gọi X là tập tất cả các cách bỏ thư, ta có N(X)
= n! Gọi Ak là tính chất “lá thư thứ k bỏ đúng địc chỉ” và gọi N là số cách bỏ thư sao cho không một lá thư nào bỏ đúng địa chỉ Khi đó ta có:
N = N(X) – N1 + N2 - N3 + + (-1)nNn
Trong đó Nk là số cách bỏ thư sao cho có k lá thư đúng địa chỉ Ta nhận thấy rằng Nk là tổng theo mọi cách lấy k lá thư từ n lá thư Số cách lấy k lá thư
từ n lá thư là Ck
n và với mỗi cách lấy k lá thư từ n lá thư ta có (n-k)! cách bỏ
để k lá thư này đúng địa chỉ Từ đó ta có:
!
! )!
(
k
n k n C
N k n k Do đó
!
1)1(
!2
1
!1
11(
!
!)1(
!2
!
!1
!
!
n
n n
n n
n n
Từ đó ta được xác xuất cần tìm là
!
1 ) 1 (
! 2
1
! 1
1 1
Số N trong bài toán trên được gọi là số mất thứ tự và được ký hiệu là Dn
Số mất thứ tự Dn tăng rất nhanh so với n, ta gọi đây là hiện tượng bùng nổ tổ hợp (bạn đọc có thể kiểm tra qua việc tính Dn ứng với một số giá trị của n theo công thức trên), chẳng hạn với n = 1, 2, , 11 thì Dn tương ứng được tính như sau:
Trang 222.3 Biến đổi về bài toán đơn giản
Việc giải các bài toán đếm có thể thực hiện bằng cách đưa về các bài toán đơn giản hơn Sau đây ta xét một ví dụ về vấn đề này
Bài toán xếp khách của Lucas
Có một bàn tròn, xung quanh có n ghế Cần xếp chỗ cho n cặp vợ chồng sao cho các ông ngồi xen kẽ các bà và không cặp vợ chồng nào ngồi cạnh nhau Hỏi có bao nhiêu cách xếp?
Giải: Gọi số cách xếp phải tìm là Mn, ta thực hiện xếp chỗ cho các bà trước (cứ một ghế xếp thì một ghế để trống dành cho các ông) Số cách xếp cho các
bà là 2n! Gọi số cách xếp các ông ứng với một cách xếp chỗ các bà là Un, ta được số cách xếp là:
Mn = 2n! x Un
Ta cần phải đếm số Un Đánh số các bà (đã xếp) tư 1 đến n, đánh số các ông tương ứng với các bà (ông i là chồng bà i) sau đó đánh số các ghế còn trống theo nguyên tắc: ghế số i nằm giữa bà i và bà i+1 (để tiện trình bày các phép cộng chỉ số trong phần này đều được hiểu là thực hiện vòng tròn, nghĩa là n+1=1) Mỗi cách xếp các ông được biểu diễn bằng một phép thế từ tập (1,
2, , n) với qui ước ( i ) j có nghĩa là ghế i được xếp cho ông j Khi đó
Trang 23phải thỏa mãn ( i ) i và ( i ) i 1 (*)
Như vậy Un là số các phép thế thoả mãn điều kiện (*) Trong toán học Un
được gọi là số phân bố
Xét tập hợp tất cả các phép thế của (1, 2, , n) Trên tập này gọi Pi là
tính chất ( i ) i và Qi là tính chất ( i ) i 1 Đặt Pn+i = Qi khi đó theo nguyên
các Pi và Qi hoặc Pi+1 và Qi không được đồng thời có mặt Gọi số cách này là g(2n, k) (nói riêng g(2n, k)=0 khi k > n) Với mỗi cách lấy ra k tính chất như vậy (k ≤ n), ta có (n-k)! phép thế thoả mãn chúng Từ đó nhận được Nk = g(2n, k).(n-k)! và do đó
Un = n! - g(2n, 1).(n-1)! + g(2n, 2).(n-2)! - + (-1)ng(2n, n)
Ta sẽ đi tính các hệ số g(2n, k), k = 1, 2, 3, , n
Xếp 2n tính chất đang xét trên một vòng tròn theo thứ tự P1, Q1, P2, Q2,
Pn, Qn, ta thấy rằng g(2n, k) chính là số cách lấy ra k phần tử trong 2n phần tử xếp thành vòng tròn sao cho không có hai phần tử nào kề nhau cùng được lấy
ra Để tính g(2n, k) ta giải hai bài toán con sau:
Bài toán 1 Có bao nhiêu cách lấy ra k phần tử trong n phần tử xếp trên
đường thẳng sao cho không có hai phần tử nào kề nhau cùng được lấy ra?
Giải: Khi lấy ra k phần tử, ta còn (k) phần tử Giữa (k) phần tử này có
n-k+1 khoảng trống (kể cả 2 đầu) Mỗi cách lấy ra k khoảng từ các khoảng này
sẽ tương ứng với một cách chọn k phần tử thoả mãn yêu cầu Do đó số cách cần tìm là Ck
n-k+1
Trang 24Bài toán 2 Có bao nhiêu cách lấy ra k phần tử trong n phần tử xếp trên
đường tròn sao cho không có hai phần tử nào kề nhau cùng được lấy ra?
Giải: Cố định phần tử a trong n phần tử Chia các cách lấy thành 2 lớp:
1 Các cách mà a được chọn, khi đó 2 phần tử kề a sẽ không được chọn, như vậy ta phải lấy k -1 phần tử từ n-3 phần tử còn lại Các phần tử này được xem như trên đường thẳng Theo bài toán 1, số cách lấy thuộc lớp này sẽ là
Cn-k-1k-1
2 Các cách mà a không được chọn, khi đó bỏ a đi, ta đưa về bài toán lấy
k phần tử từ n-1 phần tử xếp trên đường thẳng Theo bài toán 1, số cách thuộc lớp này là Ck
n-k
Do đó, theo nguyên lý cộng, số cách cần tìm là
Ck-1n-k-1 + Ckn-k = k
k n
C k n
C k n
n
2
2 2
Nên số phân bố Un được tính như sau
Un = n! - ( 1)!
12
1
C n n
n
22
2
C n n
n
n - + (-1)n C n n
n n
Và ta được số cách xếp chỗ cho n cặp vợ chồng thỏa mãn điều kiện là
Mn = 2n!(n! - ( 1)!
12
Trang 252.4 Công thức truy hồi
Thông thường, người ta quan tâm đến những bài toán đếm, trong đó kết quả đếm phụ thuộc vào một tham số (mà ta ký hiệu là n) Việc biểu diễn kết quả này, như một hàm của n, bằng một số hữu hạn các phép toán, không phải
là đơn giản Người ta nhận thấy rằng, trong nhiều trường hợp, việc tìm kiếm một công thức trực tiếp giữa kết quả đếm và giá trị n là rất khó khăn (hoặc không thể được), trong khi đó, công thức liên hệ giữa kết quả đếm ứng với n
và kết quả đếm ứng với các giá trị n bé hơn lại đơn giản và dễ tìm Nhờ công thức này và một vài giá trị ban đầu, ta có thể tìm mọi giá trị còn lại khác Công thức đó gọi là công thức truy hồi hay hệ thức truy hồi, biểu thức truy hồi Do tính kế thừa, công thức truy hồi rất thích hợp với việc lập trình trên máy tính Nó cho phép giảm đáng kể độ phức tạp cũng như gia tăng độ ổn định của quá trình tính toán
có a Với lớp gồm các tập con k phần tử trong đó có a, thì vì đã có a nên ta
Trang 26phải lấy thêm k-1 phần tử từ n-1 phần tử còn lại, do đó lớp này sẽ có 1
1
k n
C
cách Với lớp gồm các tập con k phần tử trong đó không có a, thì vì không
có a nên ta phải lấy k phần tử từ n-1 phần tử , do đó lớp này sẽ có k
n
C 1 cách
Từ đó ta được công thức: k
n k n k
C 11 1 Với các giá trị biên được suy trực tiếp từ định nghĩa là 0 n 1
Ví dụ 2.11 Trong một quần thể sinh vật, số lượng vi trùng tăng gấp đôi sau
mỗi giờ Hỏi sau n giờ số lượng chúng là bao nhiêu, nếu ban đầu có 5 cá thể
vi trùng?
Giải: Ta giả sử số vi trùng sau n giờ là an Vì số vi trùng tăng gấp đôi sau mỗi giờ nên ta có an = 2an-1, với mọi n nguyên dương và a0 = 5 Từ đó ta dễ dàng xác định được an, n=1, 2, 3,
Ví dụ 2.12 Trên mặt phẳng, kẻ n đường thẳng sao cho không có hai đường
thẳng nào song song và 3 đường thẳng nào đồng qui Hỏi mặt phẳng được chia làm bao nhiêu phần
Giải: Gọi số phần mặt phẳng được chia bởi n đường thẳng là Sn Giả sử đã kẻ n-1 đường thẳng Nếu kẻ thêm đường thẳng thứ n thì số phần mặt phẳng được thêm sẽ bằng số giao điểm được thêm cộng với 1 Số giao điểm được thêm là
số giao điểm của đường thẳng thứ n cắt n-1 đường thẳng trước, nghĩa là bằng n-1 Từ đó ta có công thức truy hồi
Sn = Sn-1 + n , n ≥1
Với giá trị ban đầu S0 = 1 Từ công thức này ta tính được Sn, n=1, 2,
Trang 27Phương pháp tìm công thức trực tiếp từ công thức truy hồi được gọi là phương pháp khử Không phải lúc nào cũng dễ dàng khử được công thức truy hồi để đưa được về công thức trực tiếp Trong một số trường hợp đặc biệt, ta
có thể đưa ra phương pháp để giải công thức truy hồi, tức là tìm công thức trực tiếp cho số hạng tổng quát của dãy số thoả mãn công thức truy hồi đã cho
2.4.2 Giải công thức truy hồi tuyến tính thuần nhất hệ số hằng
Định nghĩa 2.1 Công thức truy hồi có dạng:
số (thay vì là các hàm phụ thuộc n) Bậc là k vì an được biểu diễn qua k số hạng trước của dãy
Nếu cho trước k điều kiện ban đầu a0 = C0, a1 = C1, , ak-1 = Ck-1 ,thì theo qui nạp toán học, dãy số thoả mãn công thức truy hồi nêu trong định nghĩa sẽ
Trang 28được xác định duy nhất
Ví dụ 2.13 Công thức truy hồi an = 2an-1 là công thức truy hồi tuyến tính thuần nhất bậc 1 Công thức truy hồi Fn = Fn-1 + Fn-2 là công thức truy hồi tuyến tính thuần nhất bậc 2 Công thức truy hồi Hn = 3Hn-1 + 1 không là thuần nhất Công thức truy hồi An = nAn-1 không có hệ số hằng
Phương pháp cơ bản để giải công thức truy hồi tuyến tính thuần nhất là tìm nghiệm dưới dạng an = rn, trong đó r là hằng số Ta có an = rn là nghiệm của công thức truy hồi an = c1an-1 + c2an-2 + + ckan-k khi và chỉ khi
rn = c1rn-1 + c2rn-2 + + ckrn-k
Hay rn – c1rn-1 – c2rn-2 - – ckrn-k = 0
Vậy, dãy { an} với an = rn là nghiệm khi và chỉ khi r là nghiệm của phương trình đại số trên Phương trình này được gọi là phương trình đặc trưng của công thức truy hồi và nghiệm của nó được gọi là nghiệm đặc trưng của công thức truy hồi Các nghiệm đặc trưng sẽ dùng cho công thức tường minh của tất cả các nghiệm của công thức truy hồi
Trước hết, ta trình bày các kết quả đối với công thức truy hồi tuyến tính thuần nhất bậc 2 và xét trường hợp khi phương trình đặc trưng có hai nghiệm phân biệt
Định lý 2.1 Cho c1, c2 là các hằng số thực Giả sử phương trình r2- c1r- c2 = 0
có hai nghiệm phân biệt r1, r2 Khi đó dãy số { an} là nghiệm của công thức truy hồi an = c1an-1 + c2an-2 khi và chỉ khi
Chứng minh: Giả sử r1 và r2 là hai nghiệm phân biệt của r2- c1r- c2 = 0, tức là
r12 = c1r1+ c2 và r22 = c1r2+ c2 Ta thực hiện các biến đổi sau:
Trang 29c1an-1 + c2an-2 = c1(ỏ1r1n-1 + ỏ2r2n-1) + c2(ỏ1r1n-2 + ỏ2r2n-2)
= ỏ1r1n-2(c1r1 + c2) + ỏ2r2n-2(c1r2 + c2) = ỏ1r1n-2r12 + ỏ2r2n-2r22
Ngược lại, giả sử { an} là một nghiệm bất kỳ của công thức truy hồi, ta sẽ chọn 1 và 2 sao cho dãy { an} với an = ỏ1r1
2 0 1 1
r r
r C C
2 0 1
r r
r C C
=
2 1
1 1 0
r r
C r C
Vậy khi chọn các giá trị ỏ1 và ỏ2 này thì dãy { an} với an = ỏ1r1n + ỏ2r2n thoả mãn các điều kiện đầu Vì công thức truy hồi và các điều kiện đầu xác định duy nhất, nên an = ỏ1r1
Trang 30a1 = 7
Giải: Phương trình đặc trưng của công thức truy hồi này có dạng r2
– r -2 = 0 Nghiệm của nó là r=2 và r=-1 Theo định lý 1 dãy { an} là nghiệm của công thức truy hồi khi và chỉ khi an = 12n + 2(-1)n với các hằng số ỏ1 và ỏ2 nào đó Từ các điều kiện đầu ta suy ra:
Ví dụ 2.15 Dãy Fibonaci được định nghĩa bằng hệ thức truy hồi:
Fn = Fn-1 + Fn-2, n 2 và F0 = F1 = 1 Tìm côngthức hiện cho Fn
Giải: Giải phương trình đặc trưng r2
- r- 1 = 0 ta thu được hai nghiệm
n
F
2
5 1 2
5 1 5 1
Trong trường hợp phương trình đặc trưng của công thức truy hồi tuyến tính thuần nhất bậc 2 có nghiệm đặc trưng là nghiệm bội 2 Bằng cách chứng minh tương tự định lý 2.1 ta có định lý sau :
Trang 31Định lý 2.2 Cho c1, c2 là các hằng số thực Giả sử phương trình r2- c1r- c2 = 0 chỉ có một nghiệm r0 Khi đó dãy số { an} là nghiệm của công thức truy hồi
an = c1an-1 + c2an-2 khi và chỉ khi an = 1r0n + 2n r0n với n= 0, 1, 2, trong đó
a1 =6 suy ra 1 = 1 và 2 = 1 Do vậy nghiệm của hệ thức truy hồi và các
điều
kiện ban đầu đã cho là: an = 3n + n3n
Định lý dưới đây là sự tổng quát hóa kết quả của định lý 2.1 cho trường hợp hệ thức truy hồi tuyến tính thuần nhất hệ số hằng bậc k > 2
Định lý 2.3 Cho c1, c2 , , ck là các hằng số thực Giả sử phương trình đặc
Ví dụ 2.17 Tìm nghiệm của hệ thức an = 6an-1- 11an-2 + 6an-3 với điều kiện đầu
Trang 322.5 Liệt kê
Việc tìm công thức cho kết quả đếm, ngay cả trong trường hợp công thức truy hồi, không phải là dễ thực hiện Cho đến nay, còn rất nhiều bài toán đếm chưa có lời giải dưới dạng một công thức Đối với những bài toán như vậy, người ta chỉ còn cách chỉ ra một phương pháp liệt kê, theo đó có thể đi qua tất
cả các cấu hình cần đếm Bản thân phương pháp liệt kê không chỉ ra được một kết quả cụ thể nào, nhưng qua nó, người ta có thể lập trình cho máy tính điện
tử để nhờ máy tính đếm hộ Nội dung của phương pháp liệt kê sẽ được trình bày trong chương sau
BÀI TẬP CHƯƠNG 2
1 Trong một trường đại học có 18 sinh viên toán và 325 sinh viên tin học
a Có bao nhiêu cách chọn 2 đại diện sao cho 1 là sinh viên toán còn ngưòi kia là sinh viên tin học
b Có bao nhiêu cách chọn một đại diện hoặc là sinh viên toán hoặc là sinh viên tin học
4 Có bao nhiêu xâu nhị phân có dộ dài bằng 10 và có bit đầu tiên và bit cuối cùng bằng 1
5 Trong các só nguyên dương có đúng 3 chữ số, có bao nhiêu số
a Chia hết cho 7 ?
b Lẻ ?
c Có ba chữ số như nhau ?
d Không chia hết cho 4?
e Không chia hết cho 3 hoặc cho 4 ?
f Không chia hết cho 3 hoặc cho 4 ?
g Chia hết cho 3 nhưng không chia hết cho 4 ?
h Chia hết cho 3 và 4 ?
6 Có bao nhiêu cách chọn một tập hợp 2 số nguyên dương nhỏ hơn 100
Trang 337 Có bao nhiêu xâu nhị phân độ dài 10 có
9 Một người khoá xe đạp bằng khóa số gồm 5 chữ số Anh ta quên mất số
đã khoá mà chỉ còn nhớ trong số đó có số 21 và số 40 Hỏi để mở được khoá anh ta phải mò nhiều nhất là bao nhiêu số
10 Có n đại biểu phát biểu trong cuộc họp Hỏi có bao nhiêu cách xếp thứ tự phát biểu sao cho đại biểu B phát biểu sau đại biểu A
11 Có bao nhiêu số từ 1 đến 999 đồng thời không chia hết cho 4, 5 và 6
12 Tìm số giao điểm tối đa của:
a 10 đường thẳng phân biệt
b 10 đường tròn phân biệt
c 10 đường thẳng phân biệt và 10 đường tròn phân biệt
13 Cho p1, p2, , pn là các số nguyên tố khác nhau Giả sử
trong đó ỏ1, ỏ2, , ỏn là các số nguyên dương Hỏi q có bao nhiêu ước số?
14 Trên mặt phẳng, cho n điểm trong đó có k điểm thẳng hàng (3 k n) Hỏi có thể tạo được bao nhiêu tam giác có các đỉnh thuộc n điểm đã cho?
15 Trong một lớp học có 50 sinh viên, có 26 sinh viên đạt yêu cầu môn thi thứ nhất, 21 sinh viên đạt yêu cầu môn thi thứ hai và 17 sinh viên không đạt yêu cầu cả hai môn Hỏi có bao nhiêu sinh viên đạt yêu cầu cả hai môn thi?
16 Trong một lớp học có 52 sinh viên, có 27 sinh viên không phải thi lại môn “Lập trình hướng đối tượng”, 20 sinh viên không phải thi lại môn “Toán
n
n
p p
p
q 1 2
2 1
Trang 34rời rạc” và 15 sinh viên phải thi lại cả hai môn Hỏi có bao nhiêu sinh viên không phải thi lại cả hai môn?
17 Một đội gồm 8 em đi thi học sinh giỏi Đề thi gồm 3 bài Có 5 em làm được bài 1, 4 em làm được bài 2, 6 em làm được bài 3 Ngoài ra biết rằng em nào cũng làm được ít nhất một bài Hỏi nhiều nhất có bao nhiêu em làm được
21 Cho hệ thức truy hồi an = 2an-1 – an-2 với n = 2, 3, 4,
a Dãy { an} với an = 3n có là nghiệm của hệ thức truy hồi đó không?
b Dãy { an} với an = 2n có là nghiệm của hệ thức truy hồi đó không?
c Dãy { an} với an = 5 có là nghiệm của hệ thức truy hồi đó không?
22 Giải các hệ thức truy hồi cùng các điều kiện đầu sau:
a an = an-1 + 6an-2 với n 2, a0 = 3, a1 = 6
b an =7an-1- 10an-2 với n 2, a0 = 2, a1 = 1
c an =2an-1+ an-2- 2 an-3 với n 3, a0 = 3, a1 = 6, a2 = 0
d an =7an-2+ 6 an-3 với n 3, a0 = 9, a1 = 10, a2 = 32
Trang 35Chương 3
BÀI TOÁN TỒN TẠI
3.1 Giới thiệu bài toán
Trong chương trước, ta đã tập trung vào việc đếm số các cấu hình tổ hợp (số phần tử của các đối tượng tổ hợp) thoả mãn những tính chất nào đó Trong những bài toán đó, sự tồn tại của các cấu hình là hiển nhiên và công việc chính là đếm số cấu hình thỏa mãn tính chất đặt ra Trong rất nhiều bài toán tổ hợp, việc chỉ ra sự tồn tại một cấu hình thỏa mãn các tính chất cho trước là hết sức khó khăn Chẳng hạn, một kỳ thủ phải tính toán các nước đi của mình để giải đáp xem liệu có khả năng thắng hay không? Hay một người giải mật mã cần tìm kiếm chìa khoá giải cho một bức mật mã mà anh ta không biết liệu đây có đúng là bức điện thật được mã hoá của đối phương hay không, hay chỉ
là bức mật mã giả của đối phương tung ra nhằm đảm bảo an toàn cho bức điện thật, Như vậy trong tổ hợp xuất hiện một vấn đề thứ hai rất quan trọng là: xét sự tồn tại của các cấu hình tổ hợp với các tính chất cho trước Các bài toán dạng này được gọi là các bài toán tồn tại tổ hợp
Một bài toán tồn tại được xem là giải quyết xong nếu chỉ ra được một cách xây dựng cấu hình, hoặc chứng minh được rằng chúng không có Tuy nhiên
cả hai khả năng đều không phải dễ Để thấy rõ sự phức tạp của vần đề, dưới đây ta sẽ xét một số bài toán tồn tại cổ điển nổi tiếng
Bài toán về 36 sĩ quan
Bài toán này được Euler đề nghị, nội dung của nó như sau: có một lần người ta triệu tập từ 6 trung đoàn mỗi trung đoàn 6 sĩ quan thuộc 6 cấp bậc khác nhau: thiếu uý, trung uý, thượng uý, đại uý, thiếu tá, trung tá về tham dự duyệt binh ở sư đoàn bộ Hỏi rằng có thể xếp 36 sĩ quan này thành một đội ngũ hình vuông sao cho trong mỗi hàng ngang cũng như mỗi hàng dọc đều có đại diện của cả 6 trung đoàn và cả 6 cấp bậc
Để đơn giản ta sẽ dùng các chữ cái in hoa A, B, C, D, E, F để chỉ các
Trang 36phiên hiệu trung đoàn còn các chữ cái thường a, b, c, d, e, f để chỉ các cấp bậc Bài toán này có thể tổng quát hóa nếu thay con số 6 bởi n Trong trường hợp n=4 một lời giải của bài toán 16 sĩ quan là:
dụ trên ta có hình vuông la tinh trực giao cấp 4 và 5
Euler đã mất rất nhiều công sức để tìm lời giải cho bài toán 36 sĩ quan, thế nhưng ông đã không thành công Vì vậy ông đã đề ra giả thuyết là cách xếp như vậy không tồn tại Giả thuyết này được nhà toán học Pháp là Tarri chứng minh bằng cách duyệt tất cả mọi khả năng xếp Euler căn cứ vào sự không tồn tại lời giải khi n = 2 và n = 6 còn đề ra một giả thuyết tổng quát hơn là: không tồn tại hình vuông la tinh trực giao cấp n = 2k +2 Giả thuyết này tồn tại suốt hai thế kỷ Mãi đến năm 1960 ba nhà toán học Mỹ là Boce, Parker
và Srikanda mới chỉ ra được một lời giải với n =10 và sau đó chỉ ra phương pháp xây dựng hình vuông la tinh trực giao cho mọi n = 4k + 2, với k>1.Thời gian gần đây, người ta đã phát hiện những ứng dụng quan trọng của vấn đề trên vào qui hoạch thực nghiệm, sắp xếp các lịch thi đấu trong các giải cờ quốc tế, hình học xạ ảnh,
Trang 37Bài toán 4 mầu: Chứng minh rằng mọi bản đồ trên mặt phẳng đều có thể tô
bằng 4 mầu sao cho không có hai nước láng giềng nào bị tô bởi cùng một mầu Chú ý rằng, ta xem như mỗi nước là một vùng liên thông và hai nước được gọi là láng giềng nếu chúng có chung biên giới là một đường liên tục Con số 4 không phải là một con số ngẫu nhiên Người ta đã chứng minh được rằng mọi bản đồ đều được tô với số màu lớn hơn 4, còn với số màu nhỏ hơn 4 thì không tô được Bài toán này xuất hiện vào khoảng những năm 1850-
1852 từ một nhà buôn người Anh khi tô bản đồ hành chính nước Anh đã cố gắng chứng minh rằng nó có thể tô bằng 4 màu Sau đó, năm 1852 ông ta đã viết thư cho De Morgan để thông báo về giả thuyết này Năm 1878, Keli trong một bài báo đăng ở Tuyển tập các công trình của Hội toán học Anh có hỏi rằng bài toán này đã được giải quyết hay chưa ? Từ đó bài toán trở thành nổi tiếng, và trong suốt hơn một thế kỷ qua đã có rất nhiều người làm toán, nghiệp
dư cũng như chuyên nghiệp, đã cố gắng chứng minh giả thuyết này Tuy nhiên mãi đến năm 1976 hai nhà toán học Mỹ là K.Appel và W.Haken mới chứng minh được giả thuyết này bằng máy tính điện tử
Bài toán hình lục giác thần bí:
Năm 1910 Clifford Adams đề ra bài toán hình lục giác thần bí sau: trên
19 ô lục giác hãy điền vào mỗi ô một số trong các số từ 1 đến 19 sao cho tổng theo 6 hướng của lục giác là bằng nhau (và đều bằng 38)
Sau 47 năm trời kiên nhẫn, cuối cùng ông đã tìm ra được lời giải Sau đó
vì sơ ý đánh mất bản thảo ông đã phải tốn thêm 5 năm để khôi phục lại Năm
1962 Adams đã công bố lời giải đó (hình dưới), và đó lại là lời giải duy nhất
Trang 38Bài toán chọn 2n điểm trên lưới n x n điểm
Cho một lưới ô vuông gồm n x n điểm Hỏi có thể chọn trong số chúng 2n điểm sao cho không có 3 điểm nào được chọn là thẳng hàng hay không?
Hiện nay người ta mới biết được lời giải bài toán này khi n 15
3.2 Phương pháp phản chứng
Một trong những cách giải bài toán tồn tại là dùng lập luận phản chứng: Giả thiết điều định chứng minh là sai, từ đó dẫn đến mâu thuẫn
Ví dụ 3.1: Cho 7 đoạn thẳng có độ dài lớn hơn 10 và nhỏ hơn 100 Chứng
minh rằng luôn tìm được 3 đoạn có thể ghép thành một tam giác
Giải: Vì để 3 đoạn có thể ghép thành một tam giác thì cần và đủ là tổng độ dài
của hai đoạn nhỏ luôn lớn hơn độ dài của đoạn lớn Do đó, ta sắp xếp các đoạn đã cho theo thứ tự tăng dần của độ dài a1, a2,…, a7 và chứng minh rằng trong dãy đã xếp luôn tìm được 3 đoạn liên tiết sao cho tổng của hai đoạn đầu
lớn hơn đoạn cuối Giả sử điều này không xảy ra , nghĩa là đồng thời xảy ra
Bất đẳng thức cuối cùng mâu thuẫn với giả thiết a7 < 100 và điều đó chứng
minh kết luận của bài toán
Ví dụ 3.2: Các đỉnh của một thập giác đều được đánh số bởi các số nguyên 0,
1, 2, , 9 một cách tuỳ ý Chứng minh rằng luôn tìm được 3 đỉnh liên tiếp có tổng các số là lớn hơn 13
Giải: Gọi a1, a2,…, a10 là các số gán cho các đỉnh của 1, 2, , 10 của thập giác
Trang 39Giả sử không tìm được ba đỉnh nào liên tiếp có tổng các số là lớn hơn 13 Khi đó ta có:
3.3.1 Giới thiệu nguyên lý
Nguyên lý Dirichlet do nhà toán học nổi tiếng người Đức là Dirichlet đề xuất từ thế kỷ 19 đã được áp dụng để chứng minh sự tồn tại nghiệm của nhiều bài toán tổ hợp Nguyên lý này đựoc phát triển từ một mệnh đề rất đơn giản gọi là nguyên lý “Chuồng chim bồ câ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ì chắc chắn có ít nhất một ngăn có nhiều hơn một con chim
Trang 40Dĩ nhiên, nguyên lý này 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ột cách tổng quát, nguyên lý Dirichlet được phát biểu như sau:
Nếu xếp nhiều hơn n đối tượng vào n cái hộp thì tồn tại ít nhất một hộp
chứa không ít hơn 2 đối tượng
Việc chứng minh nguyên lý này có thể tiến hành bằng cách lập luận phản chứng rất đơn giản: giả sử không có hộp nào chứa nhiều hơn một đối tượng thì chỉ có nhiều nhất n đối tượng được xếp trong các hộp, trái với giả thiết là
số đối tượng lớn hơn n
Lập luận tương tự, có thể chứng minh nguyên lý Dirichlet tổng quát sau:
Nguyên lý Dirichlet tổng quát:
Nếu đem xếp n đối tượng vào k cái hộp, thì luôn tìm được một cái hộp chứa không ít hơn n/k đối tượng ( x là ký hiệu số nguyên nhỏ nhất lớn hơn hoặc bằng x)
3.3.2 Các ví dụ
Ví dụ 3.3: 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ì có tất cả 366 ngày sinh nhật khác nhau
Ví dụ 3.4: Giả sử điểm thi môn toán rời rạc là một số nguyên từ 0 đến 10
Một lớp có 45 sinh viên thì chác chắn tìm được 5 sinh viên có điểm thi môn toán rời rạc bằng nhau
Ví dụ 3.5: Có 20 thành phố, giữa các thành phố có thể có đường giao thông
nối trực tiếp với nhau hoặc không Chúng minh rằng có ít nhất hai thành phố
có số thành phố khác nối trực tiếp với chúng là như nhau
Giải: ta gọi ai là số thành phố nối trực tiếp với thành phố thứ i và X = { a1, a2, , a20} là tập các giá trị đó Khi đó với mỗi i (1 i 20) ta sẽ có 0 ai 19
Ta nhận thấy rằng, trong tập X không thể đồng thời có mặt giá trị 0 và 19, vì nếu trong X có giá trị 0 thì điều đó có nghĩa là có một thành phố cô lập (không được nối với thành phố nào) và do vậy sẽ không có thành phố nào được nối với cả 19 thành phố còn lại, ngược lại cũng vậy Do đó tập X chỉ có tối đa 19