Bà toán đếm TOÁN RỜI RẠC
GIỚI THIỆU Vệt Nam có bao nhêu tỉnh, thành phố? Có bao nhêu tỉnh có tên bắt đầu bằng chữ A? Lớp có bao nhêu snh vên? Có bao nhêu bạn th qua môn toán rờ rạc? Đơn gản Có bao nhêu số chẵn có 6 chữ số khác nhau? Có bao nhêu cách ếp 6 ngườ ngồ quanh một bàn tròn?
GIỚI THIỆU Xác định độ phức tạp thuật toán Xác định em số đện thoạ / địa chỉ IP / số chứng mnh nhân dân có đủ đáp ứng nhu cầu sử dụng? Khả năng trúng số độc đắc? Khả năng nhễm bệnh? 3
BÀI TOÁN Xác định lực lượng của một (hay nhều) tập hơp thỏa mãn một số đều kện cho trước Bà toán đếm có thể được phân cha thành những bà toán nhỏ hơn, dễ tìm được lờ gả hơn 4
CÁC NGUYÊN LÝ CƠ BẢN 5
NGUYÊN LÝ CỘNG Có công vệc A và B. Các vệc này có thể làm tương ứng bằng n, n cách và không thể làm đồng thờ. Kh đó số cách làm một trong vệc đó là n + n. Công thức: Cho tập hợp A, B A B = Ø N A B = N A + N B Tổng quát: Cho A,, A n là một phân hoạch của A N A = N A + + N A n 6
NGUYÊN LÝ CỘNG Ví dụ:. Hôm nay có 5 bà tập môn GT, 6 bà môn TRR, 9 bà môn ĐS. Hỏ có mấy cách chọn bà tập đầu tên để bắt đầu?. Sau kh thực hện đoạn CT sau thì k =? k := 0; for := to n k := k+; for := to n k := k+; for m := to n m k := k+; 7
NGUYÊN LÝ NHÂN Gả sử một nhệm vụ nào đó được tách ra thành vệc A và B. Nếu vệc A có thể làm bằng n cách, vệc B có thể làm (sau A) bằng n cách, kh đó có n.n cách th hành nhệm vụ đã cho Công thức: N A B = N A N B Tổng quát: N A A n = N A N A n 8
NGUYÊN LÝ NHÂN Có bao nhêu cách sắp ếp có thứ tự một bộ gồm n phần tử? Có bao nhêu cách chọn một bộ có thứ tự gồm k phần tử từ n phần tử cho trước? Có bao nhêu cách chọn một bộ không có thứ tự gồm k phần tử từ n phần tử cho trước? 9
NGUYÊN LÝ NHÂN Ví dụ;. Theo cách đặt bển số e hện tạ thì HN có thể cấp tố đa bao nhêu bển? (sử dụng 0 chữ cá) + Kí hệu: 9, 30, 3, 3, 33, 40 + Sử dụng 5 chữ cá: F, H, K, L, M, N, P, R, S, T, U, V, X, Y, Z. Số p n.p n.p n3 3 (p là số nguyên tố phân bệt, n là số nguyên dương) có bao nhêu ước số? 0
NGUYÊN LÝ BÙ TRỪ Cho trước tập hợp A và B. N A B = N A + N B N A B Định lý: cho n tập A, A,, A n N A A n = N N + + n N n Trong đó: N k là tổng số phần tử của gao k tập bất kỳ trong số n tập đã cho Cách chứng mnh: ét số lần được đếm của phần tử a (uất hện k lần trong n tập) trong vế phả của định lý (tr 0)
NGUYÊN LÝ BÙ TRỪ Nguyên lý bù trừ: Đồng nhất tập A k vớ tính chất A k trên tập X. Kh đó số phần tử thuộc X không thỏa mãn tính chất A k nào sẽ bằng: ഥN = N X N A A n
VÍ DỤ. Có bao nhêu số bé hơn 000, cha hết cho hoặc 9. Trong một bữa tệc, có tất cả 35 món ăn. Trong đó: 6 món có thịt, 4 món là đồ rán; trong số các món ăn có thịt, 8 món chứa rau và 7 món được rán; trong các món rán, 5 món có rau. Chỉ món vừa thịt, vừa rán, vừa có rau. 0 món tráng mệng 0 rán, 0 rau, 0 thịt. Hỏ có bao nhêu món chỉ có rau? 3
QUY TẮC CHIA Nếu tập hữu hạn A là hợp của n tập rờ nhau, mỗ tập có k phần tử thì n = N(A)/k Nó cách khác: Nếu f là một toàn ánh từ A vào B, (A, B là tập hữu hạn) mỗ phần tử của B có đúng k phần tử thuộc A sao cho f() = y thì: N(B) = N(A)/k 4
QUY TẮC CHIA Ví dụ:. Có bao nhêu cách sắp ếp có thứ tự bộ số: {,,,, 3}. Có bao nhêu cách sắp 4 ngườ ngồ quanh bàn tròn? ( cách ếp là gống nhau kh ng ngồ bên trá gống nhau và ng ngồ bên phả gống nhau) 5
HỆ SỐ NHỊ THỨC (BINOMIAL COEFFICIENTS)
CÔNG THỨC MỞ RỘNG n! n k = nếu 0 k n k! n k! 0 ngược lạ N chọn k
CÁC TÍNH CHẤT CỦA HỆ SỐ NHỊ THỨC n k = n n k n k = n k ( + y) n = k + n k n k k y n k n k=0 k m = n + m + 3
VÍ DỤ. Độ Croata đăng ký 8 cầu thủ th đấu, gồm thủ môn, 6 hậu vệ, 6 tền vệ, 4 tền đạo. Huấn luyện vên có bao nhêu cách chọn các cầu thủ th đấu theo sơ đồ 4-4-? 4
CÔNG THỨC TRUY HỒI 5
CÔNG THỨC TRUY HỒI Là một trong những kĩ thuật quan trọng nhất của khoa học máy tính Ý tưởng: thu gọn một bà toán thành bà toán tương tự nhưng nhỏ hơn. Đều kện: bà toán nhỏ nhất phả có đáp án rõ ràng 6
CÔNG THỨC TRUY HỒI Định nghĩa: Công thức truy hồ của dãy số {a n } là công thức bểu dễn a n qua một hay nhều số hạng đ trước. Ví dụ: Tền gử ngân hàng Ban đầu: gử số tền A, kỳ hạn tháng, lã suất 6%/năm, lã nhập gốc. Hỏ sau 0 năm 3 tháng có bao nhêu tền? Một chu kì có lã: 6:00: = 0.005 Ban đầu: r 0 = A r = r 0 *.005 r n = r n- *.005 0 năm 3 tháng => n = 3 7
VÍ DỤ Ngườ ta thả lên một hòn đảo hoang cặp thỏ Loà thỏ này trưởng thành kh được tháng Thỏ trưởng thành tháng lạ snh cặp thỏ mớ Sau0 năm thì trên đảo có bao nhêu cặp thỏ? (gả sử là bọn chúng đều thọ trên 0 năm) 8
VÍ DỤ Ký hệu: Số cặp thỏ của tháng thứ n là R n Số cặp thỏ mớ snh của tháng thứ n là: S n Kh đó: R n = R n- + S n- Ta thấy: S n- = R n- R n = R n- + R n- Đây là bà toán thực tế, dãy số dựa trên tính toán về số thỏ sau này được đặt tên Fbonac 9
VÍ DỤ Cho tập con n phần tử S = a, a n Tập S có bao nhêu tập con? (không sử dụng tổ hợp) n = : có tập con {Ф, {a }} r = n = : có 4 tập con {Ф, {a }, {a }, {a,a }} r = 4 n = 3: hợp của tập {Ф, {a }, {a }, {a,a }} và {a 3, {a,a 3 }, {a,a 3 }, {a,a,a 3 }} r 3 = r 30
VÍ DỤ Các tập con của S n- {Ф,{a },{a },, {a,a,,a n- }} Các tập con của S n? Định nghĩa qua các phần tử trước đó? {Ф, {a }, {a },, {a,a,,a n- }} Và {a n, {a,a n }, {a,a n },, {a,a,,a n-,a n }} Kết luận: r n = r n- 3
VÍ DỤ 3 Có bao nhêu âu nhị phân độ dà n không chứa âu 00? Kí hệu: r n là số lượng âu thỏa mãn đều kện Ta thấy: r = : {0, } r = 3: {0, 0, } r 3 = 5: {0, 0,, 00, 0} r 4 = 8: {0, 0,, 00, 0, 00, 00, 0} r 4 = {0, 0,, 00, 0} {00, 00, 0} 3
VÍ DỤ 3 Vớ âu có độ dà n: Kí tự đầu tên là => n- kí tự phía sau không chứa âu thì âu sẽ thỏa mãn đều kện (có r n- âu thỏa mãn đều kện này) Kí tự đầu tên là 0 n- kí tự phía sau không chứa âu 00 thì âu sẽ thỏa mãn đều kện (có r n- âu thỏa mãn đều kện này) Ngoà ra? Vậy số âu nhị phân độ dà n, không chứa âu 00 sẽ là r n = r n- + r n- 33
THÁP HÀ NỘI Cọc Cọc Cọc 3 Mục têu: chuyển các đĩa từ cột sang cột 3 Luật chơ: mỗ lần chuyển đĩa, đĩa nằm trên phả nhỏ hơn đĩa nằm dướ 34
THÁP HÀ NỘI Vớ đĩa Tổng số 3 lần chuyển
THÁP HÀ NỘI Vớ 3 đĩa
THÁP HÀ NỘI Vớ 3 đĩa Tổng cộng 7 lần chuyển
THÁP HÀ NỘI Có thể gả quyết n đĩa được không?
THÁP HÀ NỘI Vớ 4 đĩa (gả sử đã có chương trình chuyển 3 đĩa) Để chuyển đĩa to nhất từ cọc sang cọc 3. Ta phả chuyển 3 đĩa phía trên sang cọc trước Sử dụng đoạn chương trình cho 3 đĩa Sau đó ta chuyển đĩa từ cọc sang sọc 3. Sau đó ta lạ dùng chương trình chuyển 3 đĩa để chuyển từ cọc sang cọc 3 Để chuyển 3 đĩa cần 7 bước ~> chuyển 4 đĩa cần 7 + = 5 bước
THÁP HÀ NỘI Vớ trường hợp n đĩa Để chuyển đĩa to nhất từ cọc sang cọc 3. Ta phả chuyển n- đĩa phía trên sang cọc trước Sử dụng đoạn chương trình cho n- đĩa Sau đó chuyển đĩa to nhất từ cọc sang cọc 3 Sau đó lạ dùng chương trình chuyển n- đĩa từ cọc sang 3 Tổng số: r n = r n- +
THÁP HÀ NỘI Publc statc vod move(nt n, char sta, char sto, char md){ f (n == ){ System.out.format( %c? %c \n, sta, sto); total++; return; } else { move(n-, sta, md, sto); move(, sta, sto, md); move(n-, md, sto, sta) ; } } move (n, A, C, B ); //man 4
HÀM SINH 4
ĐỊNH NGHĨA Định nghĩa: Cho trước dãy số thực {a 0, a, }. f() = a 0 + a + a + = σ k=0 được gọ là hàm snh của dãy số. a Nếu dãy là hữu hạn {a 0, a,, a m } thì các hệ số từ a m+ trở đ sẽ bằng 0. Hàm snh của dãy trở thành đa thức bậc m 43
VÍ DỤ Cho n là số nguyên dương; Hàm snh của dãy {a }? a k n k Hàm snh là: f n n n n... n 0 n 44
VÍ DỤ Hàm a là hàm snh của {, a, a, } vì a a a... Kh a ; a a 0 45
CÁC KHAI TRIỂN THƯỜNG DÙNG... 4 3 ln... 3!!!... 4 3 3 3 e 46
PHÉP TOÁN ĐỐI VỚI HÀM SINH Cho f(), g() là hàm snh của {a } và {b } Cộng: f() + g() là hàm snh của {a + b } Nhân vớ số: αf() là hàm snh của {α.a } Tích: f f g a b. f g 0 0 Đạo hàm: f () là hàm snh của {a, a, 3a 3, }. a k k 0 0 a b k k 47
PHÉP TOÁN ĐỐI VỚI HÀM SINH Dịch trá: f k 0 k a là hàm snh của {a k, a k+, } Dịch phả: n.f() là hàm snh của {0,,0, a 0, a, a, } Thay α cho : Hàm f(α) là hàm snh của {a 0,αa,α a, } Thay n cho : Hàm f( n ) là hàm snh của {a 0,0,,0,a,0,,0,a, } (n- số 0 một bộ) 48
HỆ SỐ NHỊ THỨC MỞ RỘNG Vớ u là số thực, k là số nguyên không âm: hệ số nhị thức mở rộng được ác định như sau: u k u u... u k k! k 0 k 0 Kh u = -n (số nguyên âm) n k = n n n k + k! = k n + k k 49
ĐỊNH LÝ NHỊ THỨC MỞ RỘNG Cho là số thực có < ; u là một số thực bất kỳ. Kh đó: + u = k=0 u k k 50
VÍ DỤ Cho f() = /(-) Tìm hệ số trong kha trển Taylor? Sử dụng: 3 Và công thức đạo hàm, tích... k k k 0 0 k 0 k k 5
VÍ DỤ Tìm số nghệm nguyên của phương trình 3 sao cho 4,, 3 Xét các đa thức: f() = 4 + 5 + 6 + 7 + 8 g() = + 3 + 4 + 5 + 6 h() = + 3 + 4 + 5 Hệ số của trong tích F() = f()g()h() là số nghệm của phương trình trên. =? Hàm F() được gọ là hàm snh của số nghệm của phương trình 5. 5
VÍ DỤ. Tìm số nghệm nguyên không âm của phương trình + + 3 = 0 Thỏa mãn: lẻ, chẵn, 3 > 4 Hàm snh: F() = ( + 3 + 5 )( + + 4 + )( 5 + 6 + ) 5 6.. Hệ số của 0 =? 53
VÍ DỤ Có bao nhêu cách để trả 70k cho máy bán hàng tự động bết rằng máy chỉ nhận tền 0k, 0k và 50k Đổ thành 7,,, 5 Hàm snh: Hệ số của 7 =? 54......... 0 5 4 f 5 5
HÀM SINH VÀ CÔNG THỨC ĐỆ QUY Ý tưởng: f 0 là hàm snh của dãy {a } được cho bở công thức truy hồ. Ta sẽ sử dụng công thức truy hồ để bến đổ f() đến kh thu được phương trình có thể dễ dàng gả ra f() Công thức f() gúp ta ác định các hệ số a a 55
VÍ DỤ Dãy số Fbonac F 0 =, F =, F n = F n- + F n- Hàm snh Lưu ý: f f f 0 F F 0 F F 0 F 56
VÍ DỤ Như vậy 57 F F F F F F F F F f f f F F f F F F f F F F F f 3 3 4 3 4 3 3 4 4 3 3 0.............
VÍ DỤ b B a A f 58 5 5 ; 5 5 ; 5 ; 5 B A b a b b B a a A f / /
VÍ DỤ Vì Dãy Fbonac là: 59 b b B a a A f / / 0 0 / / ; / / b b a a b b B a a A b b B a a A f 0 0 0 / / / / b b B a a A F / /