Lời giới thiệu Lý thuyết tổ hợp hình thành từ rất sớm và trở thành một ngành toán học mới vào thế kỷ XVII bằng những công trình nghiên cứu của các nhà toán học xuất xắc như: Fermat, Pas
Trang 1MỤC LỤC
Lời giới thiệu 2
Chương 1 ðẠI CƯƠNG VỀ TỔ HỢP 4
1 Sơ lược lịch sử 4
2 Bài toán tổ hợp 8
1 Bài toán tồn tại 9
2 Bài toán ñếm 10
3 Bài toán liệt kê 10
4 Bài toán tối ưu tổ hợp 10 Chương 2 CÔNG THỨC TRUY HỒI 11
2.1 Khái niệm công thức truy hồi 11
2.2 Giải công thức truy hồi bằng phương pháp lặp 11
2.3 Công thức truy hồi tuyến tính hệ số hằng 12
2.3.1 ðịnh nghĩa 12
2.3.2 Nghiệm 12
2.3.2.1 Nghiệm tổng quát h(n) 13
2.3.2.2 Nghiệm riêng p(n) 14
Chương 3 ỨNG DỤNG CÔNG THỨC TRUY HỒI 16
3.1 Ứng dụng vào bài toán tổ hợp 16
3.2 Ứng dụng của công thức truy hồi tuyến tính bậc 1 16
3.3 Ứng dụng của công thức truy hồi tuyến tính bậc 2 16
Kết luận 17
Tài liệu tham khảo 18
Trang 2
Lời giới thiệu
Lý thuyết tổ hợp hình thành từ rất sớm và trở thành một ngành toán học mới vào thế kỷ XVII bằng những công trình nghiên cứu của các nhà toán học xuất xắc như: Fermat, Pascal, Leibnitz…
Các vấn ñề liên quan ñến lý thuyết tổ hợp là một bộ phận quan trọng của toán học nói chung và toán rời rạc nói riêng ðặc biệt, từ khi ngành tin học ra ñời thì tổ hợp ñược ứng dụng rộng rãi và trở thành lĩnh vực ñược các nhà lập trình nghiên cứu Trong toán sơ cấp thì tổ hợp càng ñược ứng dụng rộng rãi với các bài toán từ ñơn giản ñến khó và rất khó
Công thức truy hồi là một trong những chủ ñề hay và khó Và ñây chính là một công cụ ñếm cao cấp nhằm giải quyết các bài toán ñếm và ứng dụng trong một số các bài toán khác
Nhóm 1 xin trình bày ñề tài: “CÔNG THỨC TRUY HỒI VÀ ỨNG DỤNG” với 3
nội dung chính là:
Chương 1: ðại cương về tổ hợp
Chương 2: Công thức truy hồi
Chương 3: Ứng dụng
Trong thời gian nghiên cứu ñề tài vì kiến thức, thông tin và thời gian có hạn nên ñề tài không tránh khỏi thiếu sót Kính mong thầy và các bạn góp ý ñể ñề tài ñược hoàn chỉnh hơn
Danh sách nhóm 1 và công việc cụ thể:
(theo mục lục)
Chữ ký Nhận xét của
giáo viên
1 Nguyễn Thị Thanh
Thủy
Chương 1: ðại cương về tổ hợp
2 Võ Thị Kim Oanh Chương 2: Công thức truy hồi
3 Mai Thị Trang Chương 2: Công thức truy hồi
4 Nguyễn Kim Quyết Chương 3: Ứng dụng công thức truy
hồi
Trang 3CHƯƠNG 1 ðẠI CƯƠNG VỀ TỔ HỢP
1 SƠ LƯỢC LỊCH SỬ
Có thể nói tư duy tổ hợp ra ñời từ rất sớm Vào thời nhà Chu Trung Quốc người
ta ñã biết ñến những hình vuông thần bí Thời cổ Hi-lạp, thế kỷ 4 trước Công nguyên, nhà triết học Kxenokarat ñã biết cách tính số các từ khác nhau lập từ bảng chữ cái cho trước Nhà toán học Pitagor và học trò ñã tìm ra ñược nhiều số có tính chất ñặc biệt Chẳng hạn 36 không những là tổng 4 số chẵn và 4 số lẻ ñầu tiên, mà còn là tổng lập phương của 3 số tự nhiên ñầu tiên
36 = 1 + 2 +3 + 4 + 5 + 6 + 7 + 8 = 13 + 23 + 33
Từ ñịnh lý Pitagor người ta cũng ñã tìm ra những số mà bình phương của
nó bằng tổng bình phương của 2 số khác Các bài toán như vậy ñòi hỏi phải có 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 vào thế kỷ 17 bằng một loạt công trình nghiên cứu của các nhà toán học xuất sắc như Pascal, Fermat, Euler, Leibnitz,…
Các bài toán tổ hợp có ñặc trưng bùng nổ tổ hợp với số cấu hình tổ hợp khổng lồ Việc giải chúng ñòi hỏi một khối lượng tính toán khổng lồ (có trường hợp mất hàng chục năm) Vì vậy trong thời gian dài, khi mà các ngành toán học như Phép tính vi phân, Phép tính tích phân, phương trình vi phân, phát triển như vũ bão, thì dường như nó nằm ngoài sự phát triển và ứng dụng của toán học Tình thế thay ñổi từ khi xuất hiện máy tính và sự phát triển của toán học hữu hạn Nhiều vấn ñề tổ hợp ñã ñược giải quyết trên máy tính Từ chỗ chỉ nghiên cứu các trò chơi, tổ hợp ñã trở thành ngành toán học phát triển mạnh mẽ, có nhiều ứng dụng trong các lĩnh vực toán học, tin học… Chúng ta sẽ tìm hiểu một số bài toán tổ hợp nổi tiếng trong lịch sử
• Bài toán tháp Hà nội.
Bài toán này do Edouard Lucas ñưa ra ở cuối thế kỷ 19 (Ông cũng là người ñưa
ra dãy Fibonacci) Bài toán phát biểu như sau Có 3 cọc, cọc thứ nhất có n ñĩa kích
thước khác nhau xếp chồng nhau, ñĩa nhỏ nằm trên ñĩa lớn Hãy chuyển các ñĩa từ cọc thứ nhất sang cọc thứ ba, sử dụng cọc trung gian thứ hai, sao cho luôn ñảm bảo ñĩa nhỏ trên ñĩa lớn Hãy ñếm số lần di chuyển ñĩa Tìm phương án di chuyển tối ưu Số lần di chuyển là 2n – 1 Khi n = 64, ta có số lần di chuyển là:
Trang 418 446 744 073 709 551 615
• Bài toán xếp n cặp vợ chồng
Bài toán này cũng do Lucas ñưa ra năm 1891 Bài toán phát biểu như sau Có n
cặp vợ chồng cần xếp vào bàn tròn sao cho không có cặp nào ngồi gần nhau Có bao nhiêu cách xếp như vậy?
Bài toán này dẫn ñến việc nghiên cứu một khái niệm quan trọng là số phân
bố và mãi ñến năm 1934 mới có lời giải Số cách xếp là
2.n!.U n
trong ñó U n là số phân bố Bảng sau cho thấy sự bùng nổ tổ hợp ghê gớm của số phân
bố
U n = 2 13 80 579 4 738 43 387 439 792 4 890 741
• Bài toán ñường ñi quân ngựa trên bàn cờ
Cho bàn cờ vua với kích thước 8 x 8 = 64 ô Tìm ñường ñi của quân ngựa qua tất
cả các ô, mỗi ô chỉ 1 lần và quay về ô xuất phát Người ta chứng minh tổng quát ñược rằng:
Trên bàn cờ vuông có số cạnh chẵn lớn hơn hoặc bằng 6 bao giờ cũng tồn tại ñường ñi
ðường ñi của Euler (1759) có tính chất: hiệu các ô ñối xứng qua tâm bàn cờ bằng 32
37 62 43 56 35 60 41 50
44 55 36 61 42 49 34 59
63 38 53 46 57 40 51 48
54 45 64 39 52 47 58 33
1 26 15 20 7 32 13 22
16 19 8 25 14 21 6 31
27 2 17 10 29 4 23 12
18 9 28 3 24 11 30 5
Trang 5
ðường ñi của Beverle (1848) có tính chất: tổng các ô trên cột và hàng bằng 260
1 30 47 52 5 28 43 54
48 51 2 29 44 53 6 27
31 46 49 4 25 8 55 42
50 3 32 45 56 41 26 7
33 62 15 20 9 24 39 58
16 19 34 61 40 57 10 23
63 14 17 36 21 12 59 38
18 35 64 13 60 37 22 11
• Hình vuông la tinh
Hình vuông la tinh cấp n là hình vuông gồm các số 1,2 …, n – 1, n thỏa mãn tổng
mỗi hàng và tổng mỗi cột ñều bằng nhau và bằng
Hình vuông la tinh chuẩn cấp n là hình vuông la tinh cấp n có dòng ñầu và cột ñầu là 1, 2, …,n
Bảng sau ñây là hình vuông la tinh chuẩn cấp 7
1 2 3 4 5 6 7
2 3 4 5 6 7 1
3 4 5 6 7 1 2
4 5 6 7 1 2 3
5 6 7 1 2 3 4
6 7 1 2 3 4 5
7 1 2 3 4 5 6
Công thức số hình vuông la tinh ñến nay vẫn còn bỏ ngỏ Tuy nhiên ta có thể lập chương trình liệt kê tất cả hình vuông la tinh chuẩn Dưới ñây là một số giá trị
n = 1 2 3 4 5 6 7
ln = 1 1 1 4 56 9 408 16 942 080
Trang 6
• Hình lục giác thần bí
Năm 1910 Clifford Adams ñưa ra là 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 các số từ 1 ñến 19 sao cho tổng theo sáu hướng của lục giác bằng nhau (= 38)
Sau 47 năm trời kiên nhẫn cuối cùng ông ta ñã tìm ra lời giải Nhưng do sơ ý ñánh mất bản thảo ông ñã tốn thêm 5 năm nữa ñể khôi phục lời giải Năm 1962 Adams công
bố lời giải ðây cũng là lời giải duy nhất
1.2 BÀI TOÁN TỔ HỢP
Qua các bài toán trên ta thấy bài toán tổ hợp rất ña dạng, liên quan tới nhiều lĩnh vực khoa học và ñời sống khác nhau
Có thể nói một cách tổng quát rằng lý thuyết tổ hợp nghiên cứu việc phân bố,
sắp xếp các phần tử của một hoặc nhiều tập hợp, thoả mãn một số ñiều kiện nào ñó.
Mỗi cách phân bố, sắp xếp như thế gọi là một cấu hình tổ hợp
• Cấu hình tổ hợp
Cho các tập hợp A1, …, An Giả sử S là sơ ñồ sắp xếp các phần tử của A1, …,
An, ñược mô tả bằng các quy tắc sắp xếp và R1, …, Rm là các ñiều kiện ràng buộc lên mỗi sắp xếp theo sơ ñồ S Khi ñó mỗi sắp xếp các phần tử của A1, …, An thoả mãn các ñiều kiện R1, …, Rm gọi là một cấu hình tổ hợp trên các tập A1, …, An
• Ví dụ Xét sự bố trí các quân cờ trên bàn cờ vua Mỗi thế cờ có thể coi là một
cấu hình tổ hợp Ở ñây ta có thể ñịnh nghĩa
A là tập hợp các quân cờ trắng
B là tập hợp các quân cờ ñen
S là sơ ñồ sắp xếp cá quân cờ trên bàn cờ
R là hệ thống các ñiều kiện ñược xác ñịnh bằng luật cờ vua
Trang 7• Ví dụ Bài toán tháp Hà Nội
A là tập hợp n ñĩa
S là sơ ñồ sắp xếp các ñĩa trên 3 cọc
R1 là ñiều kiện mỗi lần chuyển 1 ñĩa từ một cọc sang cọc khác
R2 là ñìều kiện ñĩa nằm dưới lên hơn ñĩa nằm trên
Cấu hình tổ hợp là một cách sắp xếp các ñĩa trên 3 cọc thoả các ñiều kiện R1 và R2
• Ví dụ Bài toán ñường ñi quân ngựa trên bàn cờ
A là tập hợp các ô trên bàn cờ, có thể biểu diễn như sau
A = {[i,j] | i,j = 1, …, 8}
S là sơ ñồ sắp xếp tất cả các ô của A thành 1 vòng tròn khép kín
R là ñiều kiện từ mỗi ô trên vòng có thể ñi ñến các ô kề theo quy tắc ñi của quân ngựa
• Các dạng bài toán tổ hợp
Với các cấu hình tổ hợp ta thường gặp các dạng bài toán sau: bài toán tồn tại, bài toán ñếm, bài toán liệt kê và bài toán tối ưu
1 Bài toán tồn tại
Mục tiêu của bài toán tồn tại là chứng minh sự tồn tại hoặc không tồn tại của cấu hình tổ hợp nào ñó
Có những bài toán loại này rất khó và việc cố gắng giải chúng ñã thúc ñẩy sự phát triển nhiều hướng nghiên cứu toán học
• Ví dụ Cho n nguyên dương
A là tập n n ñiểm
A = {[i,j] | i,j = 1, …, n}
S là tâp hợp 2n ñiểm trong A
Trang 8R là ñiều kiện không có 3 ñiểm trong S thẳng hàng
Với 2n15 cấu hình tổ hợp tồn tại Nhưng bài toán chưa có lời giải với n > 15
2 Bài toán ñếm
Nội dung bài toán ñếm trả lời câu hỏi “Có bao nhiêu cấu hình tổ hợp thuộc dạng ñang xét?” Phương pháp ñếm cấu hình tổ hợp thường dựa vào một số quy tắc, nguyên
lý ñếm và phân rã ñưa về các cấu hình tổ hợp ñơn giản Khi việc xác ñịnh chính xác
số cấu hình tổ hợp gặp khó khăn, có thể ước lượng cận trên và cận dưới của nó Bài toán ñếm ñược áp dụng vào những công việc như tính xác suất hay tính ñộ phức tạp thuật toán
• Ví dụ ðếm số tập con của một tập hợp
• Ví dụ ðếm số nghiệm nguyên dương của phương trình x + y + z = 10
3 Bài toán liệt kê
Các bài toán loại này nghiên cứu những thuật toán hiệu quả ñể xây dựng tất cả các cấu hình tổ hợp ñã cho Những vấn ñề trong các lĩnh vực khác nhau thường ñược ñưa
về bài toán liệt kê và kiểm tra xem các cấu hình tổ hợp có thoả mãn tính chất cho trước hay không
• Ví dụ Liệt kê tất cả các hoán vị của n phần tử
4 Bài toán tối ưu tổ hợp
Trong nhiều vấn ñề, mỗi cấu hình tổ hợp ñược gắn một giá trị bằng số (chẳng hạn như hiệu quả sử dụng, hay chi phí thực hiện) Khi ñó bài toán tối ưu tổ hợp nghiên cứu những thuật toán tìm cấu hình tổ hợp có giá trị tối ưu (lớn nhất hoặc nhỏ nhất)
Ví dụ (Bài toán ba lô) Một nhà thám hiểm dùng một cái ba lô trọng lượng không quá
b ñể mang ñồ vật Có n ñồ vật 1, 2, …, n ðồ vật thứ j có trọng lượng aj và giá trị sử dụng là cj, j = 1, 2, …, n Hỏi nhà thám hiểum cần mang theo những ñồ vật nào ñể tổng giá trị sử dụng là lớn nhất?
Trang 9
CHƯƠNG 2 CÔNG THỨC TRUY HỒI
2.1 KHÁI NIỆM CÔNG THỨC TRUY HỒI
Ví dụ Xét bài toán ñếm số tập con P(X) của tập X Gọi s(n) là số tập con của tập có n
phần tử Giả sử X có n phần tử Cho x là phần tử của X Tách P(X) ra làm hai nhóm A
và B, nhóm A gồm các tập con chứa x và nhóm B gồm các tập con không chứa x Khi
ñó B chính là P(X\{x}) và A tương ñương B Như vậy ta có
Từ ñó ta có công thức
s(n) = 2.s(n-1),
ðây là một công thức truy hồi
ðịnh nghĩa 2.1
Công thức truy hồi của dãy số s(0), s(1), s(2),… là phương trình xác ñịnh s(n) bằng các phần tử s(0), s(1), s(2),…, s(n – 1) trước nó
s(n) = F(s(0), s(1), s(2),…, s(n – 1))
ðiều kiện ban ñầu là các giá trị gán cho một số hữu hạn các phần tử ñầu
Trong ví dụ 2.1 trên, ta có ñiều kiện ban ñầu là s(0) = 1
2.2 GIẢI CÔNG THỨC TRUY HỒI BẰNG PHƯƠNG PHÁP LẶP
Nội dung của phương pháp này là thay thế liên tiếp công thức truy hồi vào chính nó, mỗi lần thay bậc n giảm ít nhất một ñơn vị, cho ñến khi ñạt giá trị ban ñầu
Ví dụ ðếm số tập con của tập có n phần tử
Giải Ký hiệu s(n) là số tập con của tập có n phần tử, thì
s(n) = 2.s(n – 1) & s(0) = 1
Ta có:
s(n) = 2.s(n – 1) = 2.2.s(n – 2) =…= 2.2…2.s(0) = 2n
2.3 CÔNG THỨC TRUY HỒI TUYẾN TÍNH HỆ SỐ HẰNG
2.3.1 ðịnh nghĩa
ðịnh nghĩa 2.3.1.1
Công thức truy hồi tuyến tính hệ số hằng bậc k có dạng
s(n) = c1.s(n – 1) + c2.s(n – 2) +…+ ck.s(n – k) + f(n), (2.1) trong ñó c1, c2,…, ck là các hằng số, ck ≠0 và f(n) là hàm theo n
ðiều kiện ban ñầu của (2.1) là giả thiết một số phần tử ñầu của dãy có giá trị cho trước
s(0) = C0, s(1) = C1,…, s(k-1) = Ck-1
Trang 10ðịnh nghĩa 2.3.1.2
Nếu f(n) ≠ 0, thì (2.1) ñược gọi là công thức truy hồi tuyến tính không thuần nhất hệ số hằng bậc k
Nếu f(n) = 0, thì (2.1) ñược gọi là công thức truy hồi tuyến tính thuần nhất
hệ số hằng bậc k
2.3.2 Nghiệm
ðịnh nghĩa 2.3.2.1
Hàm số s(n) thỏa mãn (2.1) ñược gọi là nghiệm của công thức truy hồi tuyến tính hệ số hằng bậc k
ðịnh lý 2.3.2.1
Cho công thức truy hồi tuyến tính không thuần nhất hệ số hằng bậc k
s(n) = c1.s(n – 1) + c2.s(n – 2) +…+ ck.s(n – k) + f(n) (2.2) Khi ñó nghiệm tổng quát của (2.2) có dạng
s(n) = h(n) + p(n), với p(n) là nghiệm riêng nào ñó của (2.2) và h(n) là nghiệm tổng quát của công thức truy hồi tuyến tính thuần nhất ứng với (2.2)
s(n) = c1.s(n – 1) + c2.s(n – 2) +…+ ck.s(n – k) (2.3)
ðịnh nghĩa 2.3.2.2
Phương trình: (2.4)
ñược gọi là phương trình ñặc trưng của công thức truy hồi tuyến tính không thuần nhất hệ số hằng k (2.2) và công thức truy hồi tuyến tính thuần nhất hệ số hằng k (2.3)
2.3.2.1 Nghiệm tổng quát h(n) của 2.3
ðịnh lý2.3.2.1.1
* Nếu (2.4) có k nghiệm thực khác nhau là thì nghiệm tổng quát h(n) của (2.3) có
dạng
h(n)=
trong ñó Ci, i = 1,…, k là các hằng số tùy ý
* Nếu phương trình ñặc trưng (2.4) có nghiệm thực bội s , thì ngoài nghiệm , ta lấy thêm các vectơ bổ sung cũng là các nghiệm ñộc lập tuyến tính của (2.3) và do ñó trong ñó và là các hằng số tùy ý
* Nếu phương trình ñặc trưng (2.4) có nghiệm phức , trong ñó , có nghĩa là = , thì (2.4) cũng có nghiệm liên hợp phức Khi ñó ta có ; là các nghiệm của (2.3)
Ta lấy
làm các nghiệm ñộc lập tuyến tính của (2.3) , khi ñó
Trang 11trong ñó ,,là các hằng số tùy ý
* Nếu phương trình ñặc trưng có nghiệm phức bội s, thì nó cũng có nghiệm liên hợp phức bội s ; trong trường hợp này, ngoài nghiệm ta cần lấy thêm 2n – 2 vectơ nghiệm bổ sung
…,
…,
và ta có
,
trong ñó , là các hằng số tùy ý
2 Nghiệm riêng p(n) của 2.2
2.3.2.2.1 Trường hợp là ña thức bậc m của n ; :
,
1 Nếu các nghiệm là các nghiệm thực khác 1 của phương trình ñặc trưng (4), thì
,
là ña thức cùng bậc m với
2 Nếu có nghiệm bội s , thì
,
trong ñó là ña thức của n cùng bậc m với
2.3.2.2.2 Trường hợp f n = P m (n)β n trong ñó P m (n) là ña thức bậc m của n; m∈N.
1 Nếu các nghiệm của phương trình ñặc trưng (2.4) ñều là các nghiệm thực khác β, thì có dạng
=
(n)βn,
trong ñó (n) là ña thức cùng bậc với fn
2 Nếu (2.4) có nghiệm λ = β bội s, thì tìm dưới dạng
=
(n)
,
trong ñó (n) là ña thức của n cùng bậc với fn
2.3.2.2.3 Trường hợp f n = α cos nx + β sin nx, với α, β là hằng số
Trong trường hợp này nghiệm riêng ñược tìm dưới dạng
= a cos nx + b sin nx
2.3.2.2.4 Trường hợp f n = f n1 + f n2 + … + f ns
Trong trường hợp này ta tìm nghiệm riêng p(ni) ứng với từng hàm , i = 1, 2, …,
s