1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu toán rời rạc

171 2K 38
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 171
Dung lượng 2,82 MB

Nội dung

Tài liệu toán rời rạc - Dành cho ôn thi cao học hoặc sinh viên đại học cao đẳng

PHẦN 1: KỸ THUẬT ĐẾM CHƯƠNG 1 TỔ HỢP 1. Giới thiệu môn học toán rời rạc - Toán rời rạc là một lĩnh vực của toán học, nghiên cứu các đối tuợng rời rạc. Ví dụ tập các số nguyên, tập hợp các sinh viên trong một lớp là tập hợp các đối tượng rời rạc, tập hợp các số thực không phải là tập hợp các đối tượng rời rạc mà là tập các đối tượng liên tục. - Toán rời rạc là môn học quan trọng trong ngành tin học vì máy tính chỉ lưu trữ và xử lý các đối tương rời rạc nên việc tìm hiểu, nghiên cứu các tính chất của các đối tương rời rạc là rất cần thiết. - Toán rời rạc được chia thành hai phần: phần 1 trình bày các bài toán cơ bản của lý thuyết tổ hợp như là 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; phần 2 trình bày lý thuyết đồ thị, đồ thị là một cấu trúc rời rạc được ứng dụng để giải nhiều bài toán trong tin học. 2. Tập hợp 2.1Các bài toán về tập hợp Một cấu hình tập hợp là một cách phân bố các phần tử của một tập hợp theo những điều kiện xác định. Ví dụ: một chỉnh hợp lặp hoặc không lặp, một hoán vị, một tổ hợp chặp k … gọi là một cấu hình tập hợp. Có 4 bài toán cơ bản về tập hợp: - Bài toán đếm: Đếm số cấu hình thoả mãn các điều kiện cho trước - Bài toán liệt kê: Liệt kê tất cả các cấu hình thoả mãn các điều kiện cho trước - Bài toán tối ưu: Tìm cấu hình tốt nhất theo một nghĩa nào đó. - Bài toán tồn tại: Có hay không các cấu hình thoả mãn các điều kiện cho trước Ví dụ: + Bài toán đếm: Đếm số chỉnh hợp lặp chặp k của tập hợp có n phần tử: Đáp số = n k + Bài toán liệt kê: Liệt kê các hoán vị của tập hợp X={1,2,3}: (1,2,3); (1,3,2); (2,1,3); (2,3,1); (3,1,2); (3,2,1) + Bài toán tối ưu: Tìm tổ hợp chặp k của tập hợp X={1,2,3,…,n} sao cho tổng các phần tử của tổ hợp này là lớn nhất: (n-k+1, ,n) 2.2Các phép toán trên tập hợp - Phần bù của A trong X (X gọi là tập vũ trụ chứa A): là tập các phần tử thuộc X nhưng không thuộc A , kí hiệu A - Hợp của hai tập hợp A và B: là tập các phần tử thuộc A hay thuộc B, kí hiệu: { : }A B x x A hay x B ∪ = ∈ ∈ - Giao của hai tập hợp A và B: là tập các phần tử thuộc A và thuộc B, kí hiệu: { : }A B x x A va x B ∩ = ∈ ∈ - Hiệu của hai tập hợp A và B: là tập các phần tử thuộc A nhưng không thuộc B, kí hiệu: \ { : }A B x x A va x B= ∈ ∉ A A X A ∩ B A B A DIENLOI.NET - 1 - B A ∪ B A B A\B (Giản đồ Venn biểu diễn các phép toán) Ghi chú: Tập hợp cùng với các phép toán trên tập hợp gọi là đại số tập hợp. Các phép toán trên tập hợp có thể chuyển sang các phép toán trên mệnh đề. Mệnh đề và các phép toán trên mệnh đề gọi là đại số mệnh đề. - Phủ định A: kí hiệu NOT A ⇔ A - Tuyển của A và B: kí hiệu A OR B (A V B) ⇔ A ∪ B - Hội của A và B: kí hiệu A AND B (A ∧ B) ⇔ A ∩ B 2.3Các tính chất của các phép toán - Tính kết hợp ( ) ( ) ( ) ( ) A B C A B C A B C A B C ∪ ∪ = ∪ ∪ ∩ ∩ = ∩ ∩ //Dạng mệnh đề (A||B)||C=A||(B||C) (A&&B)&&C=A&&(B&&C) - Tính giao hoán A B B A A B B A ∪ = ∪ ∩ = ∩ //Dạng mệnh đề A||B=B||A A&&B=B&&A - Tính phân bố ( ) ( ) ( ) ( ) ( ) ( ) A B C A B A C A B C A B A C ∪ ∩ = ∪ ∩ ∪ ∩ ∪ = ∩ ∪ ∩ //Dạng mệnh đề A||(B&&C)=(A||B)&&(A||C) A&&(B||C)=(A&&B)||(A&&C) - Tính đối ngẫu A B A B A B A B ∪ = ∩ ∩ = ∪ //Dạng mệnh đề !(A||B)=!A&&!B !(A&&B)=!A||!B 2.4Tích Đề Các Tích Đề Các của hai tập hợp A và B là một tập hợp mà mỗi phần tử là một cặp (a,b), với a ∈ A, b ∈ B. Kí hiệu AxB={(a,b)| a ∈ A, b ∈ B} Mở rộng: Tích Đề Các của nhiều tập hợp A 1 x A 2 x … x A k = { (a 1 , a 2 , …, a k ) |a i ∈ A i , i = 1,2,…,k } A k = A x A x … x A (k lần) DIENLOI.NET - 2 - 3. Quan hệ tương đương 3.1Định nghĩa Tập hợp R ⊆ X 2 gọi là một quan hệ tương đương trên X, nếu thoả các tính chất sau: - Tính phản xạ: với mọi a ∈ X, a có quan hệ R với a ∀ a ∈ X, (a,a) ∈ R - Tính đối xứng: nếu a có quan hệ R với b thì b có quan hệ R với a ∀ a, b ∈ X: (a,b) ∈ R ⇒ (b,a) ∈ R - Tính bắc cầu: nếu a có quan hệ R với b và b có quan hệ R với c thì a có quan hệ R với c ∀ a, b, c ∈ X: (a,b), (b,c) ∈ R ⇒ (a,c) ∈ R Ghi chú: nếu (a,b) ∈ R ta nói a có quan hệ R với b và kí hiệu a R b (a,b) ∈ R ⇔ a R b Ví dụ: Cho X={1,2,3,4}. Xét quan hệ “chia hết” R trên tập X; R={(a,b)| a chia hết cho b ; a,b ∈ X}. R có là quan hệ tương đương trên X? HD: Xét ba điều kiện - Tính phản xạ: ∀ a ∈ X, hiển nhiên a chia hết cho a ⇒ a có quan hệ R với a ⇒ (a,a) ∈ R ⇒ R có tính phản xạ - Tính đối xứng: 4 chia hết cho 2 ⇒ (4,2) ∈ R, nhưng 2 không chia hết cho 4 ⇒ (2,4) ∉ R ⇒ R không có tính đối xứng - Tính bắc cầu: ∀ a,b,c ∈ X: (a,b), (b,c) ∈ R ⇒ a chia hết cho b, b chia hết cho c ⇒ a=k 1 b, b=k 2 c ⇒ a = (k 1 k 2 )c = kc ⇒ a chia hết cho c ⇒ (a,c) ∈ R ⇒ R có tính bắc cầu Do không có tính đối xứng nên R không phải là quan hệ tương đương trên X. * Nhận xét: số quan hệ có thể xây dựng trên tập có n phần tử là 2 2 n 3.2Lớp tương đương và phân hoạch Một quan hệ tương đương trên tập X sẽ chia X thành các tập con gọi là các lớp tương đương sao cho hai phần tử ở cùng một lớp thì có quan hệ với nhau và hai phần tử khác lớp thì không có quan hệ với nhau. Gọi X 1 ,…,X n là các lớp tương đương, ta có: X= 1 n i i X = ∪ (1) X i ∩ X j = ∅ ∀ i ≠ j (2) Tập hợp S= {X i | i=1,…,n} thoả hai tính chất (1) và (2) gọi là một phân hoạch của tập X. Ngược lại với một phân hoạch bất kỳ trên X sẽ có quan hệ tương đương trên X sinh ra phân hoạch này. Cách xây dựng qhtđ R từ phân hoạch {X i } như sau: aRb ⇔ ∃ X i : a,b ∈ X i Ví dụ: Nếu a và b có cùng số dư khi chia cho k, kí hiệu là a ≡ b (mod k). Cho X={1,2,…,m}, và k<m. Xét quan hệ “đồng dư” R; R={(a,b)| a ≡ b (mod k) ; a,b ∈ X} a) R có là quan hệ tương đương trên X? b) Nếu R là quan hệ tương đương trên X, tìm phân hoạch S tương ứng với R DIENLOI.NET - 3 - HD: a) Xét ba tính chất - Tính phản xạ: ∀ a ∈ X, hiển nhiên a ≡ a (mod k) ⇒ (a,a) ∈ R ⇒ R có tính phản xạ - Tính đối xứng: ∀ a,b ∈ X: (a,b) ∈ R ⇒ a ≡ b (mod k) ⇒ b ≡ a (mod k) ⇒ (b,a) ∈ R ⇒ R có tính đối xứng - Tính bắc cầu: ∀ a, b, c ∈ X: (a,b), (b,c) ∈ R ⇒ a ≡ b (mod k), b ≡ c (mod k) ⇒ a ≡ c (mod k) ⇒ (a,c) ∈ R ⇒ R có tính bắc cầu Do thoả cả ba điều kiện nên R là quan hệ tương đương trên X. c) Một số chia cho k chỉ có thể có số dư là 0, hoặc 1, …, hoặc k-1 nên các phần tử x ∈ X chia cho k dư là i (0, ,k-1) sẽ có quan hệ đồng dư R với nhau. Gọi tập X i gồm các phần tử chia cho k dư là i. X i ={x ∈ X| x mod k =i}; i=0,…,k-1. Ta có: X= 1 0 k i i X − = ∪ và X i ∩ X j = ∅ ∈ i ≠ j nên S= {X i | i=1,…,n} là một phân hoạch của tập X. 4. Công thức cộng và công thức nhân 4.1Công thức cộng Gọi N(X) là số phần tử của tập X (bản số của X) a) X 1 ∩ X 2 = ∅ ⇒ N(X 1 ∪ X 2 )= N(X 1 )+N(X 2 ) b) {X 1 ,X 2, …,X n } là một phân hoạch của tập X ⇒ N(X)=N(X 1 )+N(X 2 )+…+N(X n ) Ví dụ : Một đoàn vận động viên gồm hai môn bắn súng và bơi. Nam có 10 người. Số vận động viên bắn súng là 14. Số nữ thi bơi bằng số nam thi bắn súng. Hỏi đoàn có bao nhiêu người? HD: Gọi X là tập hợp các vđv. Phân hoạch tập X thành các tập sau: X 1 : nữ bơi, X 2 : nữ bắn súng X 3 : nam bơi, X 4 : nam bắn súng Ta có: N(X)=N(X 1 )+N(X 2 )+N(X 3 )+N(X 4 ) (công thức cộng) Nam có 10 người ⇒ N(X 3 )+N(X 4 )=10 (1) Số vđv bắn súng = 14 ⇒ N(X 2 )+N(X 4 )=14 (2) Nữ bơi=nam bắn súng ⇒ N(X 1 )=N(X 4 ) (3) Từ (3) thay N(X4) = N(X1) vào (1), rồi cộng (1) với (2) ta được: N(X 3 )+N(X 1 )+N(X 2 )+N(X 4 )= 24 ⇒ N(X)=24 4.2Công thức nhân a) Nếu mỗi thành phần x i của bộ có thứ tự (x 1 ,…,x n ) có k i khả năng chọn thì số bộ khác nhau là tích của các khả năng này k 1 k 2 … k n b) N(X 1 x X 2 x … x X n ) = N(X 1 ) x N(X 2 ) x …x N(X n ) Ví dụ: DIENLOI.NET - 4 - 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 thủy. Hỏi từ Hà Nội đến Sài Gòn (qua Huế) có bao nhiêu cách đi? HD: X 1 : tập hợp các cách đi từ Hà Nội đến Huế X 2 : tập hợp các cách đi từ Huế đến Sài Gòn X: tập hợp các cách đi từ Hà Nội đến Sài Gòn (qua Huế) Ta có: X=X 1 x X 2 ⇒ N(X)= N(X 1 ) x N(X 2 )= 3x4=12 Ví dụ: Có bao nhiêu cách đặt tên biến độ dài 10, chỉ chứa chữ cái A, B và bắt đầu bằng AAA hoặc ABA? HD: Gọi X là tập các biến cần tìm. Phân hoạch X thành hai tập: X 1 là tập các biến bắt đầu bằng AAA và X 2 là tập các biến bắt đầu bằng ABA. Phần tử thuộc X 1 có dạng (AAAx 4 x 5 …x 10 ), mỗi x i có hai khả năng là A hoặc B nên N(X 1 )=2 7 =128 (công thức nhân) Tương tự N(X 2 )=2 7 =128 ⇒ N(X)= N(X 1 ) + N(X 2 )= 128+128 = 256 (công thức cộng) 5. Các cấu hình tập hợp Một cấu hình tập hợp là một cách phân bố các phần tử của một tập hợp theo những điều kiện xác định. Các cấu hình thông dụng là chỉnh hợp, hoán vị, tổ hợp. 5.1Chỉnh hợp a) Chỉnh hợp lặp: Một chỉnh hợp lặp chặp k của tập hợp có n phần tử là một bộ có thứ tự gồm k phần tử lấy từ n phần tử đã cho, các thành phần có thể lặp lại. Tập hợp gồm tất cả các chỉnh hợp lặp chặp k của tập A có n phần tử chính là tập hợp A k = AxAx…xA (k lần) ⇒ Ví dụ: Liệt kê tất cả các chỉnh hợp lặp chặp 2 của tập X={1,2,3}. HD: Có 3 2 =9 chỉnh hợp lặp là: (1,1),(2,2),(3,3),(1,2)(2,1),(1,3),(3,1)(2,3)(3,2) Ví dụ: Tính số hàm có thể xây dựng được từ tập A có k phần tử vào tập B có n phần tử f: A B (a 1, …,a k ) (b 1 ,…,b k ) với b i = f(a i ) và b i ∈ B HD: Mỗi hàm có thể biểu diễn bởi một bộ k phần tử lấy từ n phần tử của tập B và do b i có thể trùng nên số hàm = số chỉnh hợp lặp chặp k của n phần tử = n k . Ví dụ: Cho tập X = {x 1 , x 2 , …, x n } có n phần tử. Tính số tập con của tập X. HD: DIENLOI.NET - 5 - Số chỉnh hợp lặp chặp k của n pt = N(A k )= n k . Một tập con A của tập X có thể biểu diễn bằng một dãy nhị phân n phần tử. Vị trí thứ i = 1 nghĩa là A có phần tử x i , vt(i)= 0 là không có x i . ví dụ: A={x 3 , x 1 } biểu diễn là (1,0,1,0,…0). Do số dãy nhị phân chiều dài n là 2 n ⇒ số tập con là 2 n . b) Chỉnh hợp không lặp: Một chỉnh hợp không lặp chặp k của tập hợp có n phần tử là một bộ có thứ tự gồm k phần tử lấy từ n phần tử đã cho, các phần tử không được lặp lại. Để xây dựng một chỉnh hợp không lặp, ta xây dựng dần 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, số khả năng chọn giảm đi 1 so với thành phần đứng trước. Theo công thức nhân: Số chỉnh hợp không lặp chặp k của n pt = n(n-1)(n-2)…(n-k+1)= ! ( )! n n k − Ví dụ Liệt kê tất cả các chỉnh hợp không lặp chặp 2 của tập X={1,2,3}. HD: Có 3.2 =6 chỉnh hợp không lặp là: (1,2),(1,3),(2,1),(2,3), (3,1), (3,2) Ví dụ: Tính số hàm đơn ánh có thể xây dựng được từ tập A có k phần tử vào tập B có n phần tử f: A B (a 1, …,a k ) (b 1 ,…,b k ) với b i = f(a i ) và b i ∈ B HD: Mỗi hàm có thể biểu diễn bởi một bộ k phần tử lấy từ n phần tử của tập B và do f đơn ánh nên các b i không thể trùng ⇒ số hàm đơn ánh = số chỉnh hợp không lặp chặp k của n phần tử = ! ( )! n n k − 5.2Hoán vị Một hoán vị của tập hợp có n phần tử là một cách xếp thứ tự các phần tử đó. Một hoán vị chính là một chỉnh hợp không lặp chặp n của n phần tử. Do đó: Ví dụ: Liệt kê tất cả các hoán vị của tập X={1,2,3}. HD: Có 3!=6 hoán vị là: (1,2,3) (1,3,2) (2,1,3) (2,3,1) (3,1,2) (3,2,1) Ví dụ: Có 3 người xếp thành hàng ngang để chụp ảnh. Hỏi có thể bố trí bao nhiêu kiểu? HD: Mỗi kiểu là một hoán vị ⇒ số kiểu = 3!=6 5.3Tổ hợp a) Tổ hợp không lặp - Một tổ hợp không lặp chặp k của tập hợp có n phần tử là một bộ không có thứ tự gồm k thành phần lấy từ n phần tử đã cho (k<=n), các thành phần không được lặp lại. - Một tổ hợp chặp k của tập hợp X có n phần tử chính là một tập con k phần tử của X. DIENLOI.NET - 6 - Số hoán vị của n pt = n(n-1)(n-2)…1= n! - Số tổ hợp chặp k của tập A có n phần tử, kí hiệu là k n C hoặc C(n,k). Gọi X là tập hợp các chỉnh hợp không lặp chập k của A. Chia X thành những lớp X i sao cho hai chỉnh hợp thuộc cùng một lớp chỉ khác nhau về thứ tự. Cách chia này là một phân hoạch của X, ví dụ xét tập A={1,2,3}, tập các chỉnh hợp không lặp chặp 2 của A là X={(1,2),(1,3),(2,1),(2,3), (3,1), (3,2)}. Chia tập X thành 3 tập X 1 ={(1,2) (2,1)}; X 2 ={(1,3)(3,1)}; X 3 ={(2,3)(3,2)}; {X 1 , X 2 , X 3 } là một phân hoạch của X. Ta có số phần tử trong mỗi lớp bằng nhau và bằng k! (số hoán vị) và mỗi lớp chính là một tổ hợp chặp k của n, do đó số lớp = số tổ hợp chặp k của n = k n C . Theo công thưc cộng: Nếu {X 1 ,X 2, …,X p } là một phân hoạch của tập X ⇒ N(X 1 )+N(X 2 )+…+N(X p )=N(X) Với N(X 1 )=…=N(X n )=k! và N(X)= ! ( )! n n k− (số chỉnh hợp không lặp chặp k của n pt) ⇒ k! x k n C = ! ( )! n n k− ⇒ k n C = ! !( )! n k n k− Ví dụ: liệt kê tất cả các tổ hợp chặp 2 của tập X={1,2,3}. HD: Có ! 3! !( )! 2!(3 2)! n k n k = − − =3 tổ hợp chặp 2 là: (1,2),(1,3),(2,3). Ví dụ: có n đội bóng thi đấu vòng tròn. Hỏi phải tổ chức bao nhiêu trận? HD: 1 trận gồm hai đội không kể thứ tự, lấy từ n đội. Do đó số trận chính là số tổ hợp chặp 2 của n và bằng ! ! ( 1) !( )! 2!( 2)! 2 n n n n k n k n − = = − − Ví dụ: số giao điểm tối đa của các đường chéo của một đa giác lồi n đỉnh (n ≥ 4). HD: Cứ 4 đỉnh lấy từ n đỉnh của đa giác lồi (không kể thứ tự) sẽ tạo ra hai đường chéo giao nhau tại một điểm trong đa giác. Do đó số giao điểm chính là số tổ hợp chặp 4 của n và bằng ! ! ( 1)( 2)( 3) !( )! 4!( 4)! 24 n n n n n n k n k n − − − = = − − + Một số công thức tổ hợp không lặp a) k n C = n k n C − b) 0 n C = n n C = 1 (điều kiện ngừng đệ qui) c) k n C = 1 1 k n C − − + 1 k n C − (n>k>0) (công thức đệ qui) d) (x+y) n = 0 n C x n + 1 n C x n-1 y + …+ 1n n C − xy n-1 + n n C y n = 0 n k = ∑ k n C x n-k y k e) (x+1) n = 0 n C x n + 1 n C x n-1 + …+ 1n n C − x + n n C = 0 n k = ∑ k n C x n-k f) 0 n C + 1 n C +…+ n n C =2 n ⇒ số tập con của tập n phần tử là 2 n (đã cm ct này bằng chỉnh hợp lặp) DIENLOI.NET - 7 - Số tổ hợp không lặp chặp k của n pt = k n C = ! !( )! n k n k− g) 0 n C - 1 n C +…+(-1) n n n C = 0 ⇒ số tập con có số phần tử là số chẵn = số tập con có số phần tử là số lẻ. h) n 0 n C +(n-1) 1 n C +…+ 1n n C − = n 2 n-1 g) (n+1) 0 n C +n 1 n C +…+ n n C = (n+1) 2 n+1 Chứng minh: xem như bài tập Từ công thức b) và c) ta có thể tính được tất cả các hệ số k n C bằng tam giác Pascal như sau: 0 0 C 0 1 C 1 1 C 0 2 C 1 2 C 2 2 C ⇒ 0 3 C 1 3 C 2 3 C 3 3 C vv… dòng n (n= 0,1,2,…,) là các hệ số của (x+y) n b) Tổ hợp lặp Một tổ hợp lặp chặp k của tập hợp có n phần tử là một bộ không có thứ tự gồm k thành phần lấy từ n phần tử đã cho (k có thể lớn hơn n), các thành phần có thể lặp lại. Ví dụ: Một học sinh đến cửa hàng mua 4 cây bút chọn trong ba màu khác nhau là xanh, đỏ, vàng. Có bao nhiêu cách khác nhau để chọn mua hàng? HD: Có các trường hợp sau: + 4 bút cùng màu: 4 bút cùng xanh, hoặc cùng đỏ hoặc cùng vàng => số cách = 3 + 3 bút cùng màu: 3 bút cùng xanh, hoặc cùng đỏ hoặc cùng vàng; bút còn lại chọn một trong hai màu còn lại => số cách= 3*2=6 + 2 bút cùng màu, 2 bút còn lại khác màu: 2 bút cùng xanh, hoặc cùng đỏ hoặc cùng vàng; hai bút còn lại chọn một trong hai màu còn lại => số cách= 3 + 2 cặp bút cùng màu: số cách=C(2,3)=3 tổng cộng có = 3+6+3+3=15 cách Nhận xét: - Gỉa sử chọn hai xanh, một đỏ, một vàng = {x,x,d,v} nên một cách chọn chính là một tổ hợp lặp chặp k=4 của tập n=3 phần tử {x,d,v}. - Nếu liệt kê như cách làm trên sẽ rất khó mở rộng cho trường hợp có nhiều bút và nhiều màu để chọn. Ta có thể giải bằng cách khác tổng quát hơn như sau: Biểu diễn mỗi trường hợp bởi 4 dấu “+” và 2 dấu “–“ đặt liên tiếp trên một đường thẳng: số dấu “+” bên trái dấu “-“ đầu tiên là số bút xanh, số dấu “+” giữa hai dấu “-” là số bút đỏ và số dấu cộng ở bên phải dấu “-” cuối cùng là số bút vàng. Ví dụ: 4 xanh: ++++-- 3 xanh, 1 đỏ:+++-+- 2 xanh, 1đỏ, 1 vàng: ++-+-+ 2 đỏ, 2 vàng: -++-++ DIENLOI.NET - 8 - 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 vv… Như thế mỗi cách chọn tương ứng với việc chọn 2 vị trí trong số 6 vị trí để làm dấu “-” . Nên mỗi cách chọn là một tổ hợp không lặp chặp 2 của 6 phần tử=>số cách = 2 6 C =15 cách vậy số cách chọn k bút từ n màu = số tổ hợp lặp chặp k của tập n phần tử = số tổ hợp không lặp chặp n-1 của tập k+n-1 phần tử, nên: Ví dụ: 1/ Có k vật đồng chất nhau, hỏi có bao nhiêu cách chia chúng vào n hộp phân biệt nhau? Ví dụ: có 3 vật chia vào 2 hộp thì có các cách chia sau: 111,222,112, 221 vậy mỗi cách chia là một tổ hợp lặp chặp 3 của tập hai phần tử {1,2} => số cách chia = 1 k n k C + − 2/ Tìm số nghiệm nguyên không âm của phương trình sau: x 1 +x 2 +…+x n = k (k là số nguyên không âm). Gọi k là số vật, n là số hộp, x i là số vật cất vào hộp i . Bài toán trở thành bài toán chia k vật đồng chất vào n hộp phân biệt và mỗi nghiệm là một cách chia => số nghiệm=số cách chia = 1 k n k C + − DIENLOI.NET - 9 - Số tổ hợp lặp chặp k của tập n phần tử = 1 1 n n k C − + − = 1 k n k C + − CHƯƠNG 2 BÀI TOÁN ĐẾM 1. Giới thiệu bài toán đếm + Bài toán đếm: là đếm số cấu hình tập hợp thoả các điều kiện cho trước. + Phương pháp đếm: - Phương pháp 1 : Đưa cấu hình cần đếm về các cấu hình đã biết như là chỉnh hợp lặp, không lặp, hoán vị, tổ hợp chặp k. Sau đó áp dụng các công thức tổ hợp: - Phương pháp 2 : Đếm tập vũ trụ X, đếm phần bù A (đếm số cấu hình không thoả điều kiện), sau đó áp dụng công thức phần bù: Áp dụng cách này khi đếm phần bù A dễ hơn là đếm A - Phương pháp 3: Đưa bài toán đang xét về các bài toán nhỏ hơn, giải quyết các bài tóan nhỏ này rồi dùng công thức cộng và nhân: . Áp dụng cách này khi bài toán lớn khó giải trực tiếp, đưa về bài toán nhỏ dễ giải hơn. Ví dụ: Có 5 nguời A,B,C,D,E. Có bao nhiêu cách xếp 5 người đứng thành hàng ngang sao cho A không đứng cạnh B. HD:. A={ các cách xếp A không đứng cạnh B} ⇒ tính N(A) +X={tất cả các cách xếp }; ⇒ N(X)=số hoán vị của 5 phần tử=5! + A ={ các cách xếp A đứng cạnh B} A đứng cạnh B nên có thể xem dãy còn 4 phần tử và A có thể đứng bên trái B (…AB…) hoặc bên phải B (….BA…) ⇒ N( A )= 4! + 4! =2.4! DIENLOI.NET - 10 - Số chỉnh hợp lặp chặp k của n pt = N(A k )= n k . Số chỉnh hợp không lặp chặp k của n pt = n(n-1)(n-2)…(n-k+1)= ! ( )! n n k − Số hoán vị của n pt = n(n-1)(n-2)…1= n! Số tổ hợp chặp k của n pt = k n C = ! !( )! n k n k− N(A)=N(X) – N( A ). * Công thức cộng N(X) là số phần tử của tập X (bản số của X) a) X 1 ∩ X 2 = ∅ ⇒ N(X 1 ∪ X 2 )= N(X 1 )+N(X 2 ) b) {X 1 ,X 2, …,X n } là một phân hoạch của tập X ⇒ N(X)=N(X 1 )+N(X 2 )+…+N(X n ) * Công thức nhân a) Nếu mỗi thành phần x i của bộ có thứ tự (x 1 ,…,x n ) có k i khả năng chọn thì số bộ khác nhau được tạo ra là tích của các khả năng này k 1 k 2 … k n b) N(X 1 x X 2 x … x X n ) = N(X 1 ) x N(X 2 ) x …x N(X n ) [...]... toán( Algorithms) 2.1 - Khái niệm thuật toán Thuật toán là dãy các thao tác mà máy tính cần thực hiện theo trình tự xác định để giải quyết một vấn đề nào đó Khi viết chương trình, ta phải xây dựng cấu trúc dữ liệu và Thuật toán Cấu trúc dữ liệu và Thuật toán có quan hệ chặt chẽ với nhau: nếu chọn một cấu trúc dữ liệu phù hợp, Thuật toán sẽ đơn giản, dễ mở rộng và ngược lại nếu chọn một cấu trúc dữ liệu. .. BÀI TOÁN LIỆT KÊ 1 Giới thiệu bài toán Việc liệt kê cụ thể tất các cấu hình thoả một số điều kiên cho trước gọi là bài toán liệt kê Có nhiều cách liệt kê nhưng không được bỏ sót hoặc lặp lại một cấu hình Có hai thuật toán thường sử dụng để giải bài tóan liệt kê là thuật toán sinh và thuật toán quay lui Vì có nhiều thuật toán để giải một bài toán nên ta cần có phương pháp để đánh giá một thuật toán. .. Thuật toán khi sử dụng ctdl là mảng động với Thuật toán khi sử dụng ctdl là mảng tĩnh xem như không đổi nhưng nếu dùng ctdl là danh sách liên kết thì Thuật toán sẽ thay đổi Yêu cầu của một Thuật toán Tính đúng: Thuật toán phải cho kết quả đúng trong mọi trường hợp Tính dừng: Thuật toán phải dừng sau một số hữu hạn bước thực hiện Tính tổng quát: Thuật toán phải giải quyết được một lớp các bài toán tương... dịch… Do đó cần có phương pháp đánh giá Thuật toán độc lập với các yêu tố kể trên Thuật toán được đánh gía dựa vào các trường hợp của dữ liệu: tốt nhất, trung bình, xấu nhất Thường Thuật toán được đánh giá trong trường hợp dữ liệu đưa vào là “xấu nhất”, nghĩa là trường hợp với tập dữ liệu đó, Thuật toán thực hiện chậm nhất Trường hợp “trung bình” ứng với tập dữ liệu ngẫu nhiên và thường rất khó đánh giá,... Khi lượng dữ liệu nhỏ, thời gian thực hiện của các Thuật toán là như nhau, do đó chỉ đánh gía Thuật toán khi dữ liệu đưa vào là rất lớn Do thời gian thực hiện của mỗi lệnh là rất bé nên ta có thể xem thời gian thực hiện của mỗi lệnh là bằng nhau Với các nhận xét trên, cách đánh giá Thuật toán như sau: + Với số lượng dữ liệu vào là n, đếm tổng số lần thực hiện các lệnh trong trường hợp dữ liệu “xấu nhất”... giải quyết được một lớp các bài toán tương tự Tính đơn giản: Thuật toán phải dễ đọc, dễ sửa lỗi, dễ nâng cấp Thực hiện nhanh và tiết kiệm tài nguyên máy tính Lưu đồ của Thuật toán: Là hình vẽ biểu diễn các bước thực hiện của Thuật toán Có các qui ước vẽ hình sau: Kí hiệu hình vẽ Ý nghĩa Hướng thực hiện lệnh kế tiếp Lệnh nhập hoặc xuất dữ liệu nhập/xuất Điều kiện Đ S Lệnh kiểm tra điều kiện, có hai trường... mũi tên sai Lệnh thực hiện việc tính toán, lệnh gán Biểu thức Chương trình con Bắt đầu/ kết thúc Lệnh gọi chương trình con Bắt đầu hay kết thúc Thuật toán Ví dụ: Lưu đồ của thuật toán tìm số lớn nhất trong n số cho trước nhập dãy an Bắt đầu max=a[0]; i=1; imax Đ S max=a[i]; DIENLOI.NET - 25 - i=i+1 Kết thúc 2.4 - - - Đánh giá thuật toán Thuật toán được đánh giá qua thời gian thực... được cấu hình 2, biết cấu hình 2 lại theo thuật toán sinh tìm được cấu hình 3, vv… lặp lại cho đến khi tìm được cấu hình cuối cùng thì ngừng Nhận xét: Các bài toán liệt kê cấu hình chỉ áp dụng được thuật toán sinh khi ta xây dựng đuợc một “thứ tự” trên tập các cấu hình cần liệt kê và xây dựng được thuật toán “sinh cấu hình kế tiếp” Dạng tổng quát của thuật toán //cac bien toan cuc int stop; void init()... sẽ đơn giản, dễ mở rộng và ngược lại nếu chọn một cấu trúc dữ liệu không phù hợp, Thuật toán sẽ phức tạp, khó mở rộng Công thức: CẤU TRÚC DỮ LIỆU + GIẢI THUẬT = CHƯƠNG TRÌNH Ví dụ: a) Tìm số lớn nhất trong 3 số cho trước - CTDL: sử dụng cấu trúc lưu trữ dữ liệu là 4 biến a, b, c, max (max chứa số lớn nhất) - Thuật toán: B0: nhập a,b,c B1: gán max=a B2: so sánh b với max: nếu b>max thì lưu b vào max B3:... F(n)=4n hiện Nếu thời gian thực hiện một lệnh là 10 -3 ms thì thời gian thực hiện của thuật toán trong trường hợp xấu nhất là T=4n x 10-3 ms (n là số phần tử của dãy số) Cho n->vc thì f(n)->n Vậy độ phức tạp của thuật toán là O(n) Ví dụ 2: Xây dựng và đánh giá Thuật toán sắp xếp dãy n số nguyên tăng dần - Thuật toán: B0: nhập n, sau đó nhập dãy n số nguyên a[0], a[1],…,a[n-1] B1: i=0; B2: Trong khi i . 1 TỔ HỢP 1. Giới thiệu môn học toán rời rạc - Toán rời rạc là một lĩnh vực của toán học, nghiên cứu các đối tuợng rời rạc. Ví dụ tập các số nguyên,. hợp các đối tượng rời rạc, tập hợp các số thực không phải là tập hợp các đối tượng rời rạc mà là tập các đối tượng liên tục. - Toán rời rạc là môn học quan

Ngày đăng: 03/04/2013, 10:16

HÌNH ẢNH LIÊN QUAN

Một cấu hình tập hợp là một cách phân bố các phần tử của một tập hợp theo những điều kiện xác định - Tài liệu toán rời rạc
t cấu hình tập hợp là một cách phân bố các phần tử của một tập hợp theo những điều kiện xác định (Trang 1)
4.3 Dùng hàm sinh để đếm số cấu hình * Phương pháp:  - Tài liệu toán rời rạc
4.3 Dùng hàm sinh để đếm số cấu hình * Phương pháp: (Trang 17)
B3: hn chính là số cấu hình cần đếm Ví dụ: - Tài liệu toán rời rạc
3 hn chính là số cấu hình cần đếm Ví dụ: (Trang 17)
Là hình vẽ biểu diễn các bước thực hiện của Thuật toán. Có các qui ước vẽ hình sau: - Tài liệu toán rời rạc
h ình vẽ biểu diễn các bước thực hiện của Thuật toán. Có các qui ước vẽ hình sau: (Trang 25)
Đồ thị này không là hai phía vì chứa chu trình độ dài lẻ (=3). 1 2 - Tài liệu toán rời rạc
th ị này không là hai phía vì chứa chu trình độ dài lẻ (=3). 1 2 (Trang 66)
Đồ thị có trọng số là đồ thị mà mỗi cạnh (i,j) có một giá trị c(i,j) gọi là trọng số của cạnh - Tài liệu toán rời rạc
th ị có trọng số là đồ thị mà mỗi cạnh (i,j) có một giá trị c(i,j) gọi là trọng số của cạnh (Trang 69)
Hình 3. Minh hoạ cho chứng minh định lý 1. - Tài liệu toán rời rạc
Hình 3. Minh hoạ cho chứng minh định lý 1 (Trang 77)
Hình 3. Minh hoạ cho chứng minh định lý 1. - Tài liệu toán rời rạc
Hình 3. Minh hoạ cho chứng minh định lý 1 (Trang 77)
Bảng dưới đây ghi nhãn của các đỉnh trong các bước lặp của thuật toán, đỉnh đánh dấu * là đỉnh được chọn để bổ sung vào cây khung (khi đó nhãn của nó không còn bị biến đổi trong các bước  lặp tiếp theo, vì vậy ta đánh dấu * để ghi nhận điều đó): - Tài liệu toán rời rạc
Bảng d ưới đây ghi nhãn của các đỉnh trong các bước lặp của thuật toán, đỉnh đánh dấu * là đỉnh được chọn để bổ sung vào cây khung (khi đó nhãn của nó không còn bị biến đổi trong các bước lặp tiếp theo, vì vậy ta đánh dấu * để ghi nhận điều đó): (Trang 87)
Đồ thị có hướng G=(V,E) với n đỉnh, - Tài liệu toán rời rạc
th ị có hướng G=(V,E) với n đỉnh, (Trang 90)
3. Đồ thị Tăng Luồng, Đường Tăng Luồng - Tài liệu toán rời rạc
3. Đồ thị Tăng Luồng, Đường Tăng Luồng (Trang 96)
Hình: Mạng với nhiều điểm phát và thu. - Tài liệu toán rời rạc
nh Mạng với nhiều điểm phát và thu (Trang 99)
Luồng trong hình (b) là cực đại. Lát cắt hẹp nhất: X = {s, v2, v3 , v 5 },  - Tài liệu toán rời rạc
u ồng trong hình (b) là cực đại. Lát cắt hẹp nhất: X = {s, v2, v3 , v 5 }, (Trang 99)
Hình a cho ví dụ mạng G với khả năng thông qua ở cung và đỉnh. - Tài liệu toán rời rạc
Hình a cho ví dụ mạng G với khả năng thông qua ở cung và đỉnh (Trang 100)
Hình b là mạng G’ tương ứng chỉ có khả năng thông qua trên các cung. - Tài liệu toán rời rạc
Hình b là mạng G’ tương ứng chỉ có khả năng thông qua trên các cung (Trang 100)
Thí dụ. Có 4 chàng trai T1, T2, T3,T4 và 5 cô gái G1, G2, G3,G4, G 5. Sự vừa ý cho trong bảng sau Chàng traiCác cô gái mà chàng trai ưng  - Tài liệu toán rời rạc
h í dụ. Có 4 chàng trai T1, T2, T3,T4 và 5 cô gái G1, G2, G3,G4, G 5. Sự vừa ý cho trong bảng sau Chàng traiCác cô gái mà chàng trai ưng (Trang 101)
Đồ thị tương ứng được cho trong hình 7. - Tài liệu toán rời rạc
th ị tương ứng được cho trong hình 7 (Trang 101)
Hình 8 chỉ ra cách xây dựng mạng G(k). - Tài liệu toán rời rạc
Hình 8 chỉ ra cách xây dựng mạng G(k) (Trang 103)
Hình 8 chỉ ra cách xây dựng mạng G(k). - Tài liệu toán rời rạc
Hình 8 chỉ ra cách xây dựng mạng G(k) (Trang 103)
Một lưới ô vuông được phủ trên một bảng điện hình vuông. Vị trí nằm trên giao củ a2 đường kề của lưới sẽ được gọi là nút - Tài liệu toán rời rạc
t lưới ô vuông được phủ trên một bảng điện hình vuông. Vị trí nằm trên giao củ a2 đường kề của lưới sẽ được gọi là nút (Trang 105)
Ví dụ: Bảng điện và các tiếp điểm được cho trong hình 2a. Nút tô đậm trong hình vẽ thể hiện vị trí các tiếp điểm. - Tài liệu toán rời rạc
d ụ: Bảng điện và các tiếp điểm được cho trong hình 2a. Nút tô đậm trong hình vẽ thể hiện vị trí các tiếp điểm (Trang 105)
Đồ thị cho bởi danh sách kề. Viết thủ tục loại bỏ cạnh, thêm cạnh. - Tài liệu toán rời rạc
th ị cho bởi danh sách kề. Viết thủ tục loại bỏ cạnh, thêm cạnh (Trang 125)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w