BÀI 2

BÀI TOÁN ĐẾM

Giáo viên: TS. Nguyễn Văn Hiệu Email: nvhieuqt@dut.udn.vn

1

Nhắc lại

Quy tắc nhân

Quy tắc cộng

Hoán vị

Chỉnh hợp (lặp)

Tổ hợp (không lặp)

Tổ hợp lặp ???

2

Nôi dung

2.1. Ví dụ đếm cơ bản 2.2. Nguyên lý bù trừ 2.3. Hoán vị lặp 2.4. Tổ hợp lặp 2.5. Bài tập

2.1. Ví dụ đếm cơ bản Ví dụ 2.1

4 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.1. Ví dụ đếm cơ bản

Ví dụ 2.1 (tổng quát)

A

B

5 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.1. Ví dụ đếm cơ bản

Ví dụ 2.1 (tổng quát)

A,B

--

--

n!

n-1!

n-1!

AB

BA

6 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.1. Ví dụ đếm cơ bản

Ví dụ 2.2

7 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.1. Ví dụ đếm cơ bản

Ví dụ 2.3 < kiến tha mồi>

(2 x 2)

(2 x 3)

8 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.1. Ví dụ đếm cơ bản

Ví dụ 2.3 (tổng quát)

Sang phải - 1 Đi xuống - 0

Số đoạn sang phải: n Số đoạn đi xuống: m

n

Dãy nhị phân độ dài n+m và có đúng m bit 0

Số tập con của m phần tử của tập n+m phần tử

m

9 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

• A1và A2 là hai tập hưu hạn, A1 A2 ≠ 

N(A1 A2 ) = N(A1) + N(A2) – N(A1 A2)

A2

A1

A2

A1

N1= N(A1 ) + N(A2)

N(A1 ) + N(A2) – N(A1  A2 )

• Tổng quát: khi Ai Aj ≠  mọi i, j

N(A1…An) = N1 - N2 + … +(-1)n-1 Nn Nk là tổng phần tử của tất cả các giao của k tập lấy từ n tập.

 N1 = N(A1) + …+ N(Am) ,  ….  Nm= N(A1 A2  …  Am).

10 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

• Nguyên lý bù trừ

– Ak tính chất nào đó cho trên X – tổng số phần tử của X không thỏa mản bất cứ tính chất Ak

N(X) - N(A1A2…An)

• Ni - là tổng số phần tử của X thỏa mản i tính chất.

Tổng số phần tử thỏa mản ít nhất một tính chất Ak nào đó

11 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

N(A1  A2  A3) = ?

1

A1

1

A1

1

1

2

2

0

3

1

2

A2

A3

A2

A3

1

1

1

1

1

A1

N1

N1 - N2

b)

1

1

1

1

A2

A3

1

1

N1 - N2 + N3

c)

12 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

• Ví dụ 2.2.1 Hỏi tập X={1,2,…50} có bao nhiêu số không chia hết cho bất các số 2, 3, 4 ?

Ai = { x € X: x % i ==0 } i=2,3,4.

A2A3A4 là tập chia hết ít nhất 1 trong 3 số

N (X) - N(A2A3A4) = N- (N1 - N2 + N3 )

13 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

Ta có: • N = 50 số. • N1 = N(A2) + N(A3) + N(A4) = [50/2] + [50/3] + [50/4] = 25 + 16 + 12 =53. • N2 = N(A2  A3) + N(A3  A4) + N(A2  A4) = [50/6] + [50/12] + [50/4] = 8 + 4 + 12 = 24. • N3 = N(A2  A3  A4) = [50/12] = 4. • Suy ra 50 – ( 53 – 24 + 4 ) = 17 số.

14 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

Ví dụ 2.2.2 Có bao nhiêu xâu nhị phân độ dài 10 hoặc bắt đầu bởi

00 hoặc kết thúc bởi 11?

0

0

1

1

HD:

0

0

1

1

256 + 265 - 64 ------ 448

15 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

• Ví dụ 2.2.3 (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 phong bì.

Hỏi xác suất để không một lá thư bỏ đúng địa chỉ.

– HD:

X – là tập hợp tất cả các cách bỏ thư. A k – là tính chất lá thư thứ k bỏ đúng địa chỉ.

16 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

= N - (N1 - N2 + … +(-1)n-1 Nn )

• • N = n! • Nk - là số tất cả các cách bỏ thư sao cho có k lá thư

n (n-k)! = n!/k!

đúng địa chỉ. Nk = Ck = n! - (n!/1! – n!/2! + … +(-1)n-1 n!/n! ) = n!(1 - 1/1! +1/2! + … +(-1)n-1/n! ) • Xác suất cần tìm: 1 - 1/1! +1/2! + … +(-1)n-1/n!

17 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.2.Nguyên lý bù trừ

 Ví dụ 2.2.4

 Ví dụ 2.2.5< Số người tham gia tất cả khóa học>

 Ví dụ 2.2.6

2.3. Hoán vị lặp

 Bài toán: Số hoán vị của n pt:

– có n1 phần tử như nhau thuộc loại 1, – có n2 phần tử như nhau thuộc loại 2, – ………………………………………. , – có nk phần tử như nhau thuộc lại k.

 ĐN: Một cách sắp xếp n pt trên gọi là một hoán vi

lặp.

 Tổng số hoán vị lặp của n phần là:

19 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.3. Hoán vị lặp

•Ví dụ 2.3.1. SUCCESS

SUCCESS.

• 3 S • 2 C • 1 U • 1 E

7!

• C(7,3)- chọn 3 chổ cho kí tự S, còn lại 4 chổ • C(4,2) – chọn 2 chổ cho kí tự C, còn 2 chổ • C(2,1)- chọn 1 chổ cho kí tự U, còn lại 1 chổ • C(1,1)- chọn 1 chổ cho kí tự S

20 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.3. Hoán vị lặp

Ví dụ 2.3.2. MISSISSIPPI

21 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Phân bố đồ vật vào túi

 Ví dụ 2.3.3. Có bao nhiêu cách chia những xấp bài 5 quân cho mỗi một trong 4 người chơi từ một cỗ bài chuẩn 52 quân?

 Tổng quát: Số cách phân chia n đồ vật khác nhau vào trong k hộp khác nhau sao cho có ni vật được đặt vào trong hộp thứ i, với i = 1, 2, ..., k

2.4. Tổ hợp lặp

Cho n loại, mỗi loại có không ít hơn k phần tử:

Một tổ hợp lặp chập k từ n loại – một bộ không có thứ tự k phần tử lấy từ n loại (các phần tử có thể lặp, k >n )

Số tổ hợp lặp chập k của n loại:

23 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

Ví dụ 2.4.1.

Đếm cách mua mâm ngũ quả từ 3 loại: Cam, Quýt, Xoài.

24 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

Ví dụ 2.4.2.

đ 0 0 0 0 0 5

đ 0 0 0 0 5

đ 0 0 0 0 1

đ 0 0 0 0 2

đ 0 0 0 0 0 1

đ 0 0 0 5

đ 0 0 0 0 0 2

25 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

đ 0 0 0

đ 0 0 0

đ 0 0 0

.

.

.

đ 0 0 0

đ 0 0 0

đ 0 0 0

.

.

.

0 0 5

0 5

0 1

0 2

0 0 1

đ 0 0 0 5

0 0 2

26 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.3. Tổ hợp lặp

C(7+5−1,5) = 462.

đ 0 0 0

đ 0 0 0

đ 0 0 0

.

.

.

đ 0 0 0

đ 0 0 0

đ 0 0 0

.

.

.

0 0 5

0 5

0 1

0 2

0 0 1

đ 0 0 0 5

0 0 2

27 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

Ví dụ 2.4.3

Phương trình x1 + x2 + x3 = 15 với x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0.

Loai 2 x2≤15

Loại 3 x3≤15

Loai 1 x1≤15

C(3+15−1, 15) = C(3+15−1, 2) = 136

28 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

Ví dụ 2.4.4- 2.3.6

Ví dụ 2.4.4: x1 + x2 + x3 = 12 với x1 ≥ 1 , x2 ≥ -2 , x3 ≥3 .

Ví dụ 2.4.5: x1 + x2 + x3 ≤ 12 với x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0 .

Ví dụ 2.4.6: x1 + x2 + x3 = 11 với 3 ≥ x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0 .

29 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.3. Tổ hợp lặp

• Ví dụ 2.4.4: Đặt:

`x1 = x1 – 1 ≥ 0, `x2 = x2 + 2 ≥ 0 , `x3 = x3 -3 ≥ 0,

Bài toán gốc tương đương:

`x1 + `x2 + `x3 = 10 với `x1 ≥ 0 , `x2 ≥ 0 , `x3 ≥0 . Kết quả: C(3+10−1, 10) = C(3+10−1, 2) = 66.

30 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp

Giải Ví dụ 2.4.5: • Đặt ẩn phụ x4 ≥ 0 , • Bài toán gốc tương đương: x1 + x2 + x3 + x4 = 12 với x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0 , x4 ≥ 0 , .

• Kết quả:

C(12+4-1,12) = C(12+4-1,3)=455

31 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.4. Tổ hợp lặp Giải Ví dụ 2.4.6:

x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0

3 ≥ x1 ≥ 0,x2 ≥ 0,x3 ≥ 0

x1 ≥ 4 , x2 ≥ 0 , x3 ≥ 0

32 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.5. Bài tập

• Bài tập 2.5.1: Ngôn ngữ C 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ữ cai (từ A đến Z) hoặc là các chữ số (từ 0 đến 9) và phải bắt đầu bằng chữ cái.

Hỏi có thể định nghĩa bao nhiêu biến khác nhau

34 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.5. Bài tập

• Bài tập 2.5.2:

35 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

2.5. Bài tập

• Bài tập 2.5.3:

36 Nguyễn Văn Hiệu, 2012, Discrete Mathematics

THAT’S ALL; THANK YOU

What NEXT?

BÀI TOÁN ĐẾM NÂNG CAO