1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tập hợp và phép đếm

10 473 4
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tập hợp và phép đếm
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Toán Tin Học
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 10
Dung lượng 68,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ : tập hợp các sinh viên trong một lớp, tập hợp các cuốn sách trong một th viện, tập hợp các đ-ờng tròn trong mặt phẳng, tập hợp các kí tự trong bảng mã ASCII … Lý thuyết tập hợp dự

Trang 1

Chơng 1 Tập hợp và phép đếm

I Tập hợp

1 Khái niệm tập hợp

1 Khái niệm

Là một nhóm các đối tợng nào đó hiểu theo nghĩa chung nhất (không kể đến bản chất của các đối tợng đó – không cần các đặc tính chung giữa các đối tợng) Tuy nhiên khi nói về tập hợp ta th-ờng xét nhóm các đối tợng có các đặc tính liên quan đến nhau, cùng thoả một tính chất nào đó Ví

dụ : tập hợp các sinh viên trong một lớp, tập hợp các cuốn sách trong một th viện, tập hợp các đ-ờng tròn trong mặt phẳng, tập hợp các kí tự trong bảng mã ASCII …

Lý thuyết tập hợp dựa trên khái niệm trực giác này đợc nhà bác học Đức George Cantor đa ra năm

1895 đã đặt nền tảng cơ sở cho nhiều bộ môn toán học khác nhau Tuy nhiên do tính không chặt chẽ của “định nghĩa” nên nó dẫn đến nhiều nghịch lý Một trong những nghịch lý nổi tiếng đó do nhà triết học Anh Bertrand Russell chỉ ra năm 1902 (xem phần bài tập) Từ đó lý thuyết tập hợp

đợc xây dựng chặt chẽ hơn dựa trên các hệ tiên đề Ngời đầu tiên xây dựng hệ tiên đề cho lý thuyết tập hợp là E Zemelo (1904) Mọi chứng minh về tập hợp giờ đây chỉ cần suy dẫn ra từ hệ tiên đề mà không cần đến những trực giác liên quan tới khái niệm tập hợp thờng là thiếu tin cậy trong những trờng hợp cần tính toán phức tạp

Tuy vậy trong tập bài giảng này khái niệm trực giác về tập hợp của Cantor là đủ để chúng ta trình bày và chứng minh các kiến thức cơ sở về lý thuyết tập hợp dùng trong các ứng dụng tin học Các đối tợng thuộc một tập hợp cho trớc đợc gọi là các phần tử của tập hợp Một phần tử x thuộc tập hợp X đợc kí hiệu : x ∈ X, nhiều phần tử (ví dụ x, y, z) thuộc cùng một tập hợp có thể đợc viết gọn : x, y, z ∈ X Kí hiệu x ∉ X để chỉ x không phải là phần tử của X

b Biểu diễn tập hợp

i Phơng pháp liệt kê

Ví dụ : A = { 1, 3, 5, 7, 9 }, B = {Xuan, Ha, Thu, Dong }, C = {2, 3, 5, }…

ii Mô tả tính chất

iii.Giản đồ Venn

c Lực lợng của tập hợp

2 Tập con, tập tích

a Tập con

b Tập tích

c Tập của tập hợp, tập luỹ thừa

Trang 2

3 Các phép toán tập hợp

a Các phép toán: Hợp, giao, hiệu, phần bù

b Các hằng đẳng thức

c Phép toán trên nhiều tập hợp

d Tập bằng nhau, cách chứng minh 2 tập bằng nhau

Bằng định nghĩa hoặc dùng các hằng đẳng thức

Ví dụ 1 :

1 Chứng minh A = B với A = {1, 2, 3} và B = {x ∈ R : x3 + 11x = 6x2 + 6}

Chứng minh : A ⊆ B (thử từng phần tử) Ngợc lại B ⊆ A ((x - 1)(x - 2)(x - 3) = 0) 

2 Chứng minh với bất kỳ hai tập A và B, ta có : (A ∪ B) − (A ∩ B) = (A − B) ∪ (B − A)

3 Chứng minh với bất kỳ các tập A, B, C ta có : A ∪ ( B ∩ C ) = A ∩ ( B ∪ C )

4 Biểu diễn tập hợp trên máy tính Vectơ bit

II phép đếm

1 Các qui tắc đếm cơ bản

a Qui tắc cộng

Giả sử có công việc có thể làm đợc theo 2 cách Hai cách này không cần phải làm đồng thời, không phụ thuộc vào nhau Cách 1 có thể làm theo m phơng án và cách 2 có thể làm theo n phơng

án Khi đó số phơng án để thực hiện công việc trên là m + n

Ví dụ 1 : Cần chọn một đại biểu là sinh viên nam trong 86 nam hoặc là sinh viên nữ trong 34 sinh

viên nữ => số phơng án chọn là 86 + 34 = 120 Tơng tự chọn một gà hoặc một vịt

Có thể mở rộng qui tắc trên cho trờng hợp 1 công việc có thể thực hiện đợc theo k cách, tơng ứng với số phơng án n 1 , n 2 , , n k (không có 2 cách nào cùng phải tiến hành đồng thời), khi đó số

ph-ơng án để thực hiện công việc là m = n 1 + n 2 + + n k

Ví dụ 2 : Một sinh viên có thể chọn câu hỏi thi theo 4 chủ đề khác nhau.

b Qui tắc nhân

Giả sử một công việc có thể thực hiện đợc theo 2 giai đoạn lần lợt nhau tơng ứng với m và n

ph-ơng án chọn Khi đó số phph-ơng án để chọn là m*n

Tơng tự ta cũng có qui tắc nhân mở rộng : m = n 1 * n 2 * * n k

Ví dụ 3 :

Trang 3

sinh viên nữ ⇒ số phơng án chọn là 86 * 34 = 3224.

− Một từ máy 2 byte ghi đợc số lớn nhất là 216 - 1 = 65535

− Số tập con của tập hữu hạn A = 2|A| (đợc suy từ mỗi tập con có thể biểu diễn bởi dãy nhị phân độ dài |A|)

Có thể phát biểu các qui tắc trên dới dạng tập hợp :

• A1, , An là các tập hữu hạn, rời nhau từng đôi một Khi đó :

|A1∪ A2∪ ∪ An| = |A1| + |A2| + + |An|

• A1, , An là các tập hữu hạn Khi đó :

|A1ì A2ì ì An| = |A1| * |A2| * * |An|

c Kết hợp 2 qui tắc cộng và nhân

Ví dụ 4 :

(27*37*37) = 38089

bộ ba giống nhau

B2 = Ba + Bb + Bc + Bd + Be

là khả năng bộ đôi theo 10, j, q, k, át = 5*Ba = 5*6 = 30

B3 = Ba + Bb + Bc + Bd + Be là khả năng bộ ba theo 10, j, q, k, át

= 5*Ba = 5*3 = 15 => S = 30*15 = 450 cách chọn

− Số dãy nhị phân có độ dài n là 2n

− Số tập con của tập n phần tử là 2n (Tơng ứng 1-1 với dãy 0,1 độ dài n)

2 Nguyên lý bù trừ

Giả sử có công việc có thể làm theo 2 cách : cách 1 chọn trong m phơng án, cách 2 chọn trong n phơng án Nếu 2 cách này trùng nhau theo k phơng án thì số phơng án chọn sẽ là m + n k

Phát biểu dới dạng tập hợp : A ∪ B  = A + B  - A ∩ B 

Trờng hợp tổng quát n tập : A1∪ A2∪ …∪ An =

n n

n k j i i

k j i n

j i

j i n

i

i A A A A A ( ) A A A

<

<

<

1 1

1

1

Chứng minh : Xem phần tổ hợp, chỉnh hợp và chơng : Logic và suy luận toán học

Trang 4

Ví dụ 5 : Đếm số số nguyên bé hơn 100 hoặc chẵn hoặc chia hết cho 3

Số chẵn = 100/2 = 50, số chia hết cho 3 = 100/3 = 33

Số đồng thời chẵn và chia hết cho 3 => chia hết cho 6 = 100/6 = 16

⇒ S = 50 + 33 - 16 = 67 số

Ví dụ 6 : Số các xâu không dài quá 8 có chữ đầu là 1 hoặc kết thúc 00 = 27 + 26 - 25

3 Nguyên lý lồng chim bồ câu (nguyên lý Dirichlet)

Định lý 1 Nếu nhốt k+1 con chim bồ câu vào trong k chuồng thì có ít nhất 1 chuồng chứa

2 hoặc nhiều hơn 2 con chim bồ câu

Ví dụ 7 : Nếu sinh viên phải học 6 môn/tuần (5 ngày) ⇒ có ít nhất 1 ngày phải học 2 môn khác nhau

Định lý 2 (Nguyên lý Dirichlet tổng quát) : Nếu có N vật đặt vào trong k hộp sẽ tồn tại ít

nhất 1 hộp chứa ít nhất N/k vật

Ví dụ 8 : Sẽ có một tháng nào đó bạn phải dự sinh nhật của ít nhất 9 ngời bạn khác nhau trong lớp

(100 sinh viên)

Ví dụ 9 : Trong khoá học với 400 học viên, có ít nhất 2 ngời trùng ngày sinh.

Ví dụ 10 : Một sinh viên học 40 từ tiếng Anh trong một tháng 30 ngày, mỗi ngày ít nhất 1 từ Chỉ

ra có một dãy các ngày liên tiếp sinh viên trên học đúng 19 từ tiếng Anh

Chứng minh : Gọi ai là số từ sv học từ đầu tháng đến ngày thứ i, khi đó dãy a1, a2, , a… 30 là khác nhau và tăng dần, ngoài ra 1 ≤ ai≤ 40 Đặt bi = ai + 19 ⇒ 20 ≤ bi≤ 59 và cũng tạo thành dãy phân biệt và tăng dần Dãy 60 số a1, a2, , a… 30, b1, b2, , b… 30 có mỗi số bé hơn 59 nên tồn tại 2 số bằng nhau : ai và bj nào đó Nh vậy từ ngày i đến ngày j sv học đúng 19 từ tiếng Anh vì bj = aj + 19 = ai

Ví dụ 11 : Chứng minh trong n + 1 số nguyên dơng không vợt quá 2n tồn tại ít nhất một số chia

hết cho số khác

Chứng minh : Có thể biểu diễn mỗi số nguyên dơng dới dạng tích v.2u trong đó v là một số lẻ, nh vậy ứng với dãy a1, a2, , a… n+1 ta có n+1 số lẻ v1, v2, , v… n+1 , các số này không vợt quá 2n Do từ 0

đến 2n chỉ có n số lẻ nên phải có 2 số vi và vj bằng nhau Từ đó nếu ui≥ uj thì ai chia hết aj và ngợc

Ví dụ 12 : Mọi dãy n2+1 số thực phân biệt đều có một dãy con n+1 số thực sự tăng hoặc giảm

Chứng minh : Xét dãy a1, a2, , a… n2+1 các số thực khác nhau Gọi ik, dk là độ dài của dãy con tăng,

Trang 5

giảm dài nhất bắt đầu từ ak, nh vậy với mỗi ak ta có cặp (ik, dk) Giả thiết không có dãy tăng hoặc giảm có độ dài n+1, tức mọi ik, dk không vợt quá n Theo qui tắc nhân có tất cả n2 cặp ik, dk (k=1, , n

… 2+1) do đó có ít nhất hai cặp (ik, dk) bằng nhau Tức tồn tại 2 số as và at sao cho is = it và ds =

dt Điều này là mâu thuẫn vì as và at là khác nhau nên độ dài dãy (tăng hoặc giảm) xuất phát từ

Ví dụ 13 : Chứng tỏ trong nhóm 6 ngời với mỗi cặp hoặc là bạn hoặc là thù có tồn tại 3 ngời hoặc

là bạn hoặc là thù lẫn nhau

Chứng minh : Lấy A Còn lại 5 ngời với 2 khả năng : hoặc là bạn hoặc là thù của A Do vậy, sẽ có

ít nhất 3 ngời B, C, D hoặc là bạn hoặc là thù của A Giả sử là bạn của A Nếu trong B, C, D có một cặp là bạn thì sẽ hợp cùng A tạo thành bộ ba là bạn của nhau Ngợc lại B, C, D là bộ ba thù

III Hoán vị và tổ hợp không lặp

1 Định nghĩa

a Hoán vị

Hoán vị của tập n đối tợng là một cách sắp xếp có thứ tự n đối tợng đó Số các hoán vị của một tập hợp n phần tử đợc kí hiệu là P(n)

Ví dụ 14 : Cho tập A = {1, 2, 3, 4, 5} Khi đó các cách sắp xếp 12345, 23541, 31425 là những… hoán vị của tập A

b Chỉnh hợp

Một cách sắp xếp k đối tợng có kể thứ tự đợc gọi là một chỉnh hợp chập k của tập hợp n đối tợng

Số chỉnh hợp chập k của n đối tợng đợc kí hiệu là A(n,k)

Ví dụ 15 : Cho tập A = {1, 2, 3, 4, 5} Khi đó các cách sắp xếp 123, 235, 314, 321 là những… chỉnh hợp chập 3 của tập A

c Tổ hợp

Một cách sắp xếp k đối tợng không kể thứ tự đợc gọi là một tổ hợp chập k của tập hợp n đối tợng

Số tổ hợp chập k của n đối tợng đợc kí hiệu là C(n,k)

Ví dụ 16 : Cho tập A = {1, 2, 3, 4, 5} Khi đó các cách sắp xếp 123, 235, 314, là những tổ hợp… chập 3 của tập A

2 Công thức tính

Định lý 3

Chứng minh :

Lần lợt lấy phần tử thứ nhất trong n vật, thứ hai trong n-1, , cuối cùng phần tử thứ k đ… ợc lấy

Trang 6

trong (n-k+1) vật, theo qui tắc nhân ta có số chỉnh hợp A(n, k) = n(n-1)(n-2) (n-k-1) = n!/(n-k)!

Khi đó P(n) là trờng hợp riêng của A(n,k) khi k = n Từ đó P(n) = n!/(n-n)! = n!

Ta cũng có A(n,k) = k!C(n,k) vì một dãy có thứ tự có thể có k! hoán vị khác nhau để tạo thành tập

Tóm lại ta có : P > A > C (giao hoán > chỉnh hợp > tổ hợp)

Từ định lý trên ta có hệ quả : C(n, k) = C(n, n-k) Ví dụ C(10,3) = C(10, 7)

3 Ví dụ

4 Một số tính chất

Định lý 4 (Hệ số nhị thức) : (x + y)n = n k n k

k

y x ) k , n (

=

0

Đại lợng C(n, k) còn gọi là hệ số nhị thức, vì là hệ số của thừa số xkyn-k trong khai triển nhị thức (x + y)n

Chứng minh : Có C(n,k) cách chọn k số hạng x từ n tổng (x + y) của phép nhân, khi đó y chỉ chọn

k

) k , n (

0

=

∑=

Chứng minh : Số tập con của tập có n phần tử là 2n Gồm số tập con có 0 phần tử (C(n,0)), 1 phần

tử (C(n,1), , và n phần tử (C(n,n))

Cách khác (dùng định lý nhị thức): (1+1)n = ∑

=

n k

) k , n ( C

0

=

n

k 0

(-1)kC(n,k) = 0

Chứng minh : Dùng định lý nhị thức: (1-1)n = ∑

=

n

k 0

Trang 7

Định lý 7 (Hằng đẳng thức Pascal) : C(n+1,k) = C(n,k-1) + C(n,k)

Chứng minh : Xét tập S có n+1 phần tử và S = T\{a} có n phần tử Lấy k phần tử từ T gồm : có

Đây là cơ sở tạo thành tam giác Pascal

Định lý 8 (Hằng đẳng thức Vandermonde) : C(n+m, k) =

=

k

j 0

C(n, j)*C(m, k-j)

Chứng minh : Cho tập S có n phần tử và tập T có m phần tử C(n+m,k) là số cách chọn k phần tử

từ 2 tập này Mỗi cách chọn có thể sinh từ j phần tử của S và k-j của T Theo qui tắc nhân ta đ ợc

IV Hoán vị và tổ hợp có lặp

1 Định nghĩa

a Hoán vị có lặp

Hoán vị của tập n đối tợng, trong đó có một số đối tợng đợc lặp lại là một cách sắp xếp có thứ tự n

đối tợng đó Số các hoán vị lặp lại của một tập hợp n phần tử đợc kí hiệu là P’(n/n1, n2, , n… k) hoặc ngắn gọn hơn là P’(n/ni), trong đó ni là số lần lặp lại của đối tợng thứ i Trờng hợp không gây nhầm lẫn ta ký hiệu P’(n)

Chú ý vì các đối tợng có lặp lại nên số hoán vị sẽ bị trùng nhau, việc đếm phải trừ ra các phơng án này nên số hoán vị có lặp sẽ ít hơn không lặp

Ví dụ 17 : Một sắp xếp lại từ NGHIENG là một hoán vị có lặp vì trong 7 chữ cái trên có các chữ

cái N và G đợc lặp lại với số lần lặp là 2, 2

b Chỉnh hợp có lặp

Một cách sắp xếp k đối tợng có kể thứ tự, trong đó các đối tợng đợc phép lặp lại đợc gọi là một chỉnh hợp chập k của tập hợp n đối tợng Số chỉnh hợp chập k của n đối tợng đợc kí hiệu là A’(n,k)

Ví dụ 18 : Cho tập A = {1, 2, 3} Khi đó các cách sắp xếp 11, 12, 13, 21, 22, 23 là những chỉnh… hợp có lặp chập 2 của tập A

c Tổ hợp

Một cách sắp xếp k đối tợng không kể thứ tự, các đối tợng đợc lặp lại đợc gọi là một tổ hợp có lặp chập k của tập hợp n đối tợng Số tổ hợp chập k của n đối tợng đợc kí hiệu là C’(n,k)

Ví dụ 19 : Cho tập A = {1, 2, 3} Khi đó các cách sắp xếp 11, 12, 13, 22, 23, 31, là những tổ… hợp có lặp chập 2 của tập A

Ví dụ 20 : Cho một hộp gồm 3 quả bóng Vàng, Xanh, Đỏ Giả thiết mỗi lần lấy ra 1 quả bóng và

bỏ trở lại hộp Một cách lấy 4 quả bóng qua 4 lần từ hộp trên là một tổ hợp có lặp chập 4 của 3

Trang 8

Ví dụ 21 : Giả thiết cần chọn 5 sinh viên từ 4 khối lớp A, B, C, D (mỗi lớp có không ít hơn 5 sinh

viên) Mỗi phơng án chọn là một tổ hợp có lặp chập 5 của 4 đối tợng

2 Công thức tính

Định lý 9

• P’(n/ n1, n2, , n… k) = n!/n1! nk!

• A’(n, k) = nk

Chứng minh

− A'(n, k): mỗi lần chọn một đối tợng (trong n khả năng) k lần chọn ⇒ nk khả năng

Ví dụ : Số dãy nhị phân độ dài n là số chỉnh hợp chập n của 2 đối tợng 0 và 1 tức A’(2, n) = 2n Số chỉnh hợp có lặp chập 4 từ 3 đối tợng 1,2,3 là A’(3,4) = 34 = 81

− P'(n) : Đầu tiên đặt n1 đối tợng (giống nhau) vào n vị trí đợc C(n, n1) phơng án Tiếp tục

đặt n2 đối tợng vào n-n1 vị trí còn lại đợc C(n-n1, n2) phơng án áp dụng qui tắc nhân lấy tích các thừa số này cho kết quả cần tìm

Ví dụ : Số phơng án sắp xếp lại từ ‘NGHIÊNG’ đợc tính : Đầu tiên đặt 2 chữ N vào 2 trong 7 vị trí

có thể cho C(7, 2) = 21 phơng án Tiếp theo việc sắp xếp từ G vào 5 vị trí sẽ cho C(5, 2) = 10

ph-ơng án Việc sắp xếp H trong 3 vị trí cho 3 phph-ơng án, I cho 2 và Ê cho 1 phph-ơng án Tích các số này ta đợc : 21 * 10 * 3 * 2 * 1 = 1260 phơng án Đó chính là số P’(n) = 7!/2!2! = 1.2.3.5.6.7 = 1260

viên từ 4 khối lớp A, B, C, D (mỗi lớp có không ít hơn 5 sinh viên)

Để biểu diễn một phơng án chọn ta kí hiệu một sinh viên bằng 1 dấu * và 4 lớp bởi 4 khoang cách nhau bởi 3 vách ngăn Hình vẽ dới chỉ ra một phơng án chọn gồm 2 sinh viên lớp A, 1 lớp C và 2 lớp D

Các phơng án khác có thể đạt đợc từ phơng án trên bằng cách dịch chuyển các vách ngăn một cách thích hợp Nói cách khác mỗi phơng án là một cách sắp xếp 3 vách ngăn (hoặc 5 sinh viên) trong số 8 vị trí có thể, hay số phơng án sẽ là C(8,5) = C(4+5-1,5) Tổng quát hoá ví dụ trên ta đợc

đfcm

3 Các ví dụ

− Số tổ hợp 5 màu (có tính thứ tự) từ 7 sắc cầu vồng : A'(7,5) = 75

án ? C’(5,2) = C(6,2)

Một nghiệm tơng ứng một cách chọn 11 phần tử trong 3 loại đối tợng x, y, z không phân biệt thứ

Trang 9

tự Do vậy nó bằng tổ hợp chập 11 từ 3 đối tợng C(11+3-1,11) = C(13,11).

lặp với n = 32 và có số các quân trắng, đen lặp theo thứ tự : tốt, xe, mã, tợng = 8, 8, 2, 2,

2, 2, 2, 2 Do đó số phơng án là : 32!/(8!.2!.2!.2!.2!)2

quân bài đợc đánh dấu 1 trong 4 ngời sẽ nhận nó, nh vậy bộ bài gồm 4 đối tợng, mỗi đối

Số phơng án là 52!/(13!)4

4 Định lý về sự phân chia đồ vật vào trong hộp

Định lý 10 : Số phơng án phân chia n đối tợng khác nhau vào k hộp khác nhau sao cho hộp

thứ i có ni đối tợng bằng số hoán vị n đối tợng với các số lặp lại ni (1 ≤ i ≤ k)

Sau đây là bảng tóm tắt các công thức tổ hợp

V Sinh hoán vị và tổ hợp

1 Sinh hoán vị

Có nhiều phơng pháp khác nhau để sinh hoán vị từ tập n phần tử Trong phần này ta chỉ trình bày phơng pháp sinh theo thứ tự từ điển Để đơn giản các phần tử của tập hợp đợc đánh số từ 1 đến n

a Định nghĩa

− Hoán vị đi trớc : hoán vị a1a2 a… n đợc gọi là đi trớc (hoặc nhỏ hơn) hoán vị b1b2 b… n

nếu với k nào đó (1 ≤ k ≤ n) ta có : ai = bi (1 ≤ i ≤ k-1) và ak < bk

Ví dụ : 12345 < 12354, 135642 < 145362

− Hoán vị liền sau : Hoán vị b1b2 b… n đợc gọi là hoán vị liền sau hoán vị a1a2 a… n nếu không tồn tại hoán vị c1c2 c… n sao cho a1a2 a… n < c1c2 c… n < b1b2 b… n

Ví dụ : hoán vị 123456 có hoán vị liền sau là 123465, 124356 là liền sau của 123654

b Cách tạo hoán vị liền sau

Tìm từ phải qua trái của hoán vị xuất phát cặp số nguyên aj, aj+1 đầu tiên có aj < aj+1 Chọn số nhỏ nhất trong các số nguyên lớn hơn aj từ aj+1 đến an đặt vào vị trí thứ i Các số còn lại đợc đặt liên tiếp từ nhỏ đến lớn từ vị trí i+1 đến hết

Ví dụ : Từ hoán vị 123654 tìm đợc cặp (3,6), số bé nhất lớn hơn 3 là 4 Đặt 4 vào vị trí của 3 ta

đ-ợc xâu 124, các số còn lại (3,6,5) đđ-ợc đặt tiếp theo từ nhỏ đến lớn ta đđ-ợc : 124356 là hoán vị liền sau của hoán vị ban đầu

c Thuật toán

Trang 10

Program Sinh_hoan_vi_theo_thu_tu_tu_dien;

Begin

s := 123 n ; ‘ … ’

i := Vitricap; { i là vị trí đầu tiên từ phải sang sao cho s[i] < s[i+1] } While i <> 0 do Begin

j := Min(i); { j là vị trí s[k] bé nhất từ i+1 đến cuối xâu s[k] > s[i] } Swap(i,j); { Đổi s[i] với s[k] }

Sapxep(i+1, n); { Sắp xếp tăng dần dãy s từ i+1 đến cuối xâu } Write(s);

i := Vitricap;

End;

End;

Thuật toán này cần dùng 4 hàm Vitricap, Min(i), Swap(i,j) và Sapxep(i,j)

Minh hoạ với ví dụ xâu s = ‘123’

2 Sinh tổ hợp chập k

a Sinh tổ hợp liền sau

Lùi từ phải sang trái cho đến i đầu tiên thoả mãn : ai≠ n – k + i, tăng ai lên 1 đơn vị và thay các

số tiếp theo số sau hơn số trớc 1 đơn vị

b Thuật toán

Program Sinh_to_hop_chap_k_theo_thu_tu_tu_dien;

Begin

s := 123 k ; ‘ … ’

i := Vitri; { i là vị trí đầu tiên từ phải sang trái sao cho s[i] ≠ n-k+i } While i <> 0 do Begin

s[i] := s[i] + 1;

For j:=i+1 to k do s[j] := s[j-1] + 1;

Write(s);

i := Vitri;

End;

End;

Ngoài thuật toán sinh theo thứ tự từ điển ta còn một số thuật toán khác nh : dựa trên khai triển Cantor của một số nguyên, quay lui …

Ngày đăng: 06/09/2013, 10:49

TỪ KHÓA LIÊN QUAN

w