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

giao trinh toan roi rac ppsx

121 1,5K 23

Đ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 121
Dung lượng 1,98 MB

Nội dung

Nếu có chính xác n phần tử phân biệt trong S, với n là số nguyên không âm thì ta nói rằng S là một tập hữu hạn và n là bản số của S... Khái niệm thuật toán: Mô tả thuật toán tìm phần tử

Trang 1

CHƯƠNG 1 LÝ THUYẾT CƠ SỞ BÀI 1: LOGIC VÀ MỆNH ĐỀ

1 Mở đầu:

- Các quy tắc của logic cho ý nghĩa chính xác của các mệnh đề Các quy tắc này dùng được sử dụng

để phân biệt giữa các lập luận toán học đúng hoặc không đúng

- Các quy tắc của logic đóng vai trò quan trọng trong suy luận toán học và nhiều ứng dụng trong lĩnh vực tin học như: thiết kế các mạng trong máy tính, xây dựng các chương trình máy tính, kiểm tra tính đúng đắn của các chương trình và nhiều ứng dụng khác

1 Hôm nay là thứ mấy?

2 Vấn đề này cần được xem xét cẩn thận

3 x + 1 = 2

4 x + y = zCác câu 1 và 2 không phải là mệnh đề vì chúng không phải là câu trần thuật Còn các câu 3 và

4 không phải là mệnh đề vì chúng chẳng đúng cũng chẳng sai bởi các biến trong các câu đó còn chưa được gán cho giá trị cụ thể nào

Từ các câu loại này có thể tạo thành các mệnh đề bằng nhiều cách khác nhau (xem phần sau của chương này)

Phân loại mệnh đề:

- Mệnh đề đơn (sơ cấp): Là những mệnh đề chỉ có một câu

- Mệnh đề phức hợp: Là những mệnh đề được kết hợp từ nhiều mệnh đề

Quy ước:

- Các mệnh đề và các biến được ký hiệu bởi các chữ cái như: p,q,r,s,

- Giá trị chân lý của một mệnh đề là đúng và sẽ được ký hiệu là T nếu đó là một mệnh đề đúng,

và là sai và được ký hiệu là F, nếu đó là một mệnh đề sai

Trang 2

- Một bảng chân lý trình bày mối quan hệ giữa các giá trị chân lý của các mệnh đề Bảng giá trị chân lý đặc biệt có ý nghĩa trong việc xác định giá trị chân lý của các mệnh đề được tạo ra từ các mệnh đề đơn giản hơn.

3 Các định nghĩa phép toán mệnh đề:

Phép toán mệnh đề là phương pháp tạo ra các mệnh đề mới từ các mệnh đề đã có – Geogre Boole

“Các định luật của tư duy”.

+ Định nghĩa 1: Giả sử p là một mệnh đề Câu “không phải là p” là một mệnh đề, được gọi là phủ

định của p Phủ định của p được ký hiệu là ¬p (hoặc p)

- Bảng chân lý:

TF

FT

- Ví dụ: Tìm phủ định của mệnh đề: “Hôm nay là chủ nhật”

Phủ định của mệnh đề trên là: “Hôm nay không phải là chủ nhật”

Phủ định của một mệnh đề cũng có thể được xem như là kết quả tác dụng của toán tử phủ định lên một mệnh đề Toán tử phủ định xây dựng một mệnh mới từ mệnh đề đơn hiện có

+ Định nghĩa 2: Giả sử p và q là hai mệnh đề Mệnh đề “p và q” được ký hiệu bởi p ^ q là đúng khi

cả p và q là đúng, còn sai trong các trường hợp còn lại Mệnh đề p ^ q được gọi là hội của p và q

- Bảng chân lý:

TTFF

TFTF

TFFF

- Ví dụ: Giả sử p là mệnh đề “Hôm nay là chủ nhật” và q là mệnh đề “Hôm nay trời mưa” Tìm hội của các mệnh đề p và q

Giải: Hội của hai mệnh đề p ^ q là mệnh đề “Hôm nay là chủ nhật và trời mưa” Mệnh đề này là đúng vào hôm chủ nhật trời mưa và là sai vào bất kỳ ngày nào không phải là chủ nhật và vào ngày chủ nhật nhưng trời không mưa

+ Định nghĩa 3: Giả sử p và q là hai mệnh đề Mệnh đề “p hoặc q”, được ký hiệu là p ۷ q, là mệnh

sai khi cả p và q đều sai, và đúng trong các trường hợp còn lại (có nghĩa là hoặc q là đúng, hoặc

q là đúng, hoặc cả p và q cùng đúng) Mệnh đề p ۷ q được gọi là tuyển của p và q.

- Bảng chân lý:

TT

TF

TT

Trang 3

TF

TF

- Ví dụ 1: Giả sử p là mệnh đề “Hôm nay là chủ nhật” và q là mệnh đề “Hôm nay trời mưa” Tìm tuyển của các mệnh đề p và q

Giải: Tuyển của p và q (p ۷ q) là mệnh đề: “Hôm nay là chủ nhật hoặc hôm nay trời mưa”.Mệnh đề này đúng vào bất kỳ ngày nào là chủ nhật hoặc ngày trời mưa (kể cả ngày chủ nhật có mưa) Nó chỉ sai khi ngày đó không phải là ngày chủ nhật và trời không mưa

- Ví dụ 2: Giả sử p là mệnh đề “Các sinh viên đã học giải tích có thể theo học lớp này.” và q là mệnh đề “Các sinh viên đã học đại số có thể theo học lớp này.” Tìm tuyển của các mệnh đề p

Ở đây, người ta muốn nói rằng

+ Định nghĩa 4: Giả sử p và q là hai mệnh đề Mệnh đề tuyển loại trừ của p và q, ký hiệu là p ⊕ q là một mệnh đề chỉ đúng khi một trong hai mệnh đề p và q là đúng và sai trong mọi trường hợp còn lại (mệnh đề p ⊕ q chỉ đúng trong trường hợp p hoặc q là đúng)

- Bảng chân lý:

TTFF

TFTF

FTTF

- Ví dụ: Giả sử p là mệnh đề “Tôi sẽ mua một chiếc máy tính để bàn.” và q là mệnh đề “Tôi sẽ mua một chiếc máy tính sách tay.” Tìm tuyển loại trừ của các mệnh đề p và q

Giải: Mệnh đề tuyển loại trừ của p và q (p ⊕ q) là mệnh đề: “Tôi sẽ mua một chiếc máy tính để bàn hoặc sách tay.”

Mệnh đề trên có nghĩa là:

“Tôi sẽ mua một chiếc máy tính để bàn hoặc sách tay

nhưng không phải mua cả hai.”

+ Định nghĩa 5: Giả sử p và q là hai mệnh đề Mệnh đề kéo theo “p → q” là một mệnh đề chỉ sai khi

p đúng và q sai, còn đúng trong mọi trường hợp còn lại

Trong phép kéo theo nói trên p được gọi là giả thuyết còn q được gọi là kết luận

- Bảng chân lý:

Trang 4

TFTF

TFTT

- Ví dụ: Giả sử p là mệnh đề “Hôm nay là thứ ba.” và q là mệnh đề “Hôm nay học toán rời rạc.” Tìm mệnh đề p kéo theo q

Giải: Mệnh đề kéo theo của mệnh đề p và q là mệnh đề: “Nếu hôm nay là thứ ba, thì chúng

o “p là điều kiện đủ của q”

o “q là điều kiện cần của p”

o Trong ngôn ngữ lập trình kép theo được thể hiện trong câu lệnh lập trình nếu p thì S (if p then S) trong đó p là mệnh đề còn S là một đợn chương trình (gồm một hoặc nhiều câu lệnh cần được thực hiện)

• Có một số phép kéo theo liên quan có thể được tạo từ p → q:

o q → p: được gọi là mệnh đề đảo của mệnh đề p → q.

o ¬q → ¬p: được gọi là mệnh đề phản đảo của mệnh đề p → q.

+ Định nghĩa 6: Cho p và q là hai mệnh đề Mệnh đề tương đương “p ↔ q” là một mệnh đề chỉ đúng

khi p và q có cùng giá trị chân lý và sai trong mọi trường hợp còn lại

- Bảng chân lý:

TTFF

TFTF

TFFT

- Chú ý: Mệnh đề tương đương p ↔ q là đúng chỉ khi hai mệnh đề kéo theo p → q và q → p đều đúng (p↔q⇔(p→q)∧(q←p)) Vì thế mệnh đề tương đương p ↔ q còn được phát biểu: “p

nếu và chỉ nếu q” hay “p là cần và đủ đối với q”

+ Độ ưu tiên của các toán tử logic:

Ưu tiên mức 1: ()

Ưu tiên mức 2: ¬

Trang 5

Ưu tiên mức 3: ^, ۷.

Ưu tiên mức 4: →, ↔

4 Các phép toán logic và các phép toán bit:

4.1 Khái niệm:

o Biểu diễn thông tin dưới dạng nhị phân (bit): 0 – không có năng lượng, 1 – có năng lượng

o Biểu diễn giá trị chân lý: 1- đúng, 0 – sai

o Biến Boole chỉ nhận giá trị đúng hoặc sai

01

11

01

00

01

01

01

10

OR bit 11101 11111

AND bit 01000 10100

XOR bit 10101 01011

5 Sự tương đương của các mệnh đề:

Tương đương mệnh đề có nghĩa là các mệnh đề khác nhau nhưng có cùng giá trị chân lý Trong các lập luận thường thay thế các mệnh đề phức hợp bởi các mệnh đề tương đương đơn giản hơn.

5.1 Định nghĩa 1(Phân loại mệnh đề phức hợp theo giá trị chân lý):

o Một mệnh đề phức hợp mà luôn đúng với bất kỳ giá trị chân lý của các mệnh đề thành phần của nó được gọi là hằng đúng

o Một mệnh đề mà luôn luôn sai được gọi là mâu thuẫn

o Một mệnh đề không phải là hằng đúng, cũng không phải là mâu thuẫn được gọi là tiếp liên

o Ví dụ: Cho mệnh đề p Xét bảng chân lý của các mệnh đề p ۷ ¬p và p ^ ¬p

Mệnh đề p ۷ ¬p luôn cho giá trị đúng với mọi giá trị của p do đó nó hằng đúng, mệnh đề p ^

¬p luôn cho giá trị sai với mọi p do đó nó là một mâu thuẫn

Trang 6

FT

TT

FF

5.2 Định nghĩa 2 (Tương đương logic):

Các mệnh đề p và q được gọi là tương đương logic nếu p ↔ q là hằng đúng

Ký hiệu p ⇔ q để chỉ p và q là tương đương logic.

(Để xác định hai mệnh đề có tương đương hay không ta dùng bảng chân lý.)

Ví dụ 1: Chứng minh rằng ¬(p ۷ q) và ¬p ^ ¬q là tương đương logic.

Bảng chân lý đối với ¬(p ۷ q) và ¬p ^ ¬q.

Ví du 2: Chứng mimh rằng p → q và ¬p ۷ q là tương đương logic.

Bảng chân lý đối với rằng p → q và ¬p ۷ q.

Ví du 3: Chứng mimh rằng p ⊕ q và ¬(p ↔ q) là tương đương logic.

Bảng chân lý đối với p q và ¬(p ↔ q).

5.3 Bảng tương đương logic:

Trang 7

Luật DeMorgan mở rộng

(Bảng tương đương logic)

Ví dụ 1: Chứng minh rằng ¬(p ۷ (¬p ^ q)) và ¬p ^ ¬q là tương đương

Biến đổi vế trái theo bảng tương đương logic

Ví dụ 1: Cho câu P(x): “x > 3” Xác định giá trị chân lý của P(4) và P(2)

Giải: Mệnh đề P(4) nhận được khi thay x = 4 vào câu “x > 3” Do đó P(4) tức là câu “4 > 3”

là đúng Còn mệnh đề P(2) tức là câu “2 > 3” là sai

Ví dụ 2: Cho câu Q(x,y): “x = y + 3” Xác định giá trị chân lý của Q(1,2) và Q(3,0)

Giải: Mệnh đề Q(1,2) nhận được khi thay x = 1 và y =2 vào câu “x = y + 3” Do đó mệnh đề Q(1,2) là mệnh đề “1 = 2+3” là sai Còn mệnh đề Q(3,0) là mệnh đề “3 = 0 + 3” là đúng

Lượng từ với mọi của P(x) được ký hiệu là: ∀x P(x)

Mệnh đề ∀x P(x) cũng được diễn đạt như:

“Đối với mọi x P(x)”

Ví dụ: Diễn đạt câu:

Trang 8

“Tất cả sinh viên ở lớp này đều đã học giải tích”

như một lượng từ với mọi

Giải: Cho P(x) là ký hiệu câu: “x đã học giải tích”

Khi đó câu “Tất cả sinh viên ở lớp này đều đã học giải tích”có thể được viết ∀x P(x), ở đây không gian gồm tất cả sinh viên trong lớp học đó

cho P(x) là đúng”

Lượng từ tồn tại của P(x) được ký hiệu là: ∃xP (x).

Lượng từ tồn tại ∃xP (x) cũng được diễn đạt như sau:

“Tồn tại x sao cho P(x)”

“Tồn tại ít nhất một x sao cho P(x)”

“Đối với một x nào đó P(x)”

Ví dụ: Cho P(x) là câu “x > 3” Tìm giá trị chân lý của ∃xP (x) với không gian là tập các số

 Cách 3: Mô tả tập hợp bằng hình vẽ hay giản đồ Venn (do nhà toán học người Anh John Venn đưa ra lần đầu tiên vào năm 1881)

c Quy ước:

 Để biểu diễn một phần tử a thuộc một tập hợp A ta ký hiệu: aA.

 Để biểu diễn một phần tử a không thuộc một tập hợp A ta ký hiệu: aA.

 Tập hợp không chứa một phần tử nào được gọi là tập rỗng và được ký hiệu là Ø Ví dụ tập hợp các số lẻ chia hết cho 2

d Định nghĩa 2:

Hai tập hợp là bằng nhau nếu và chỉ nếu chúng có cùng phần tử.

Trang 9

Tập A được gọi là tập con của tập B nếu và chỉ nếu mỗi phần tử của A đều là một phần tử của

B Chúng ta dùng ký hiệu AB để chỉ A là tập con của B.

Chúng ta thấy rằng AB nếu và chỉ nếu lượng từ

)

x ∈ → ∈

Ví dụ: A = {x | x là số nguyên dương lẻ nhỏ hơn 10}

B = {x | x là số nguyên dương nhỏ hơn 10}

=> AB.

- Tập rỗng là tập con của mọi tập hợp (cần chứng minh mệnh đề “nếu x∈ ∅ thì xS là đúng” Mệnh đề này luôn đúng vì x∈ ∅ luôn sai)

- Mọi tập hợp đều là tập con của chính nó

- Nếu tập A là con của tập B và tồn tại bB sao cho bA thì tập A được gọi là tập con thực sự của tập B Ký hiệu A⊂B

- Hai tập hợp A và B được gọi là bằng nhau nếu tập A là con của tập B và ngược lại

- Các tập cũng có thể có các phần tử là các tập hợp khác

f Định nghĩa 4:

Cho S là một tập hợp Nếu có chính xác n phần tử phân biệt trong S, với n là số nguyên không

âm thì ta nói rằng S là một tập hữu hạn và n là bản số của S Bản số của S được ký hiệu là |S|.

A A

Trang 10

Luật nuốt

A A A

A A A

A B B A

)(

)(

)(

)(

)(

C A B A C B A

C A B A C B A

A

C B A C B A C B

)(

)(

)(

Luật phân phối

A B B A

A B B A

Hai dãy (bộ) sắp thứ tự là bằng nhau nếu và chỉ nếu các phần tử tương ứng của chúng

|b){(a,B

Tổng quát:

An}

anA2^ ^

a2A1^

a1 |an) ,a2,{(a1,

An

x

x A2

x

Trang 11

- A: được gọi là miền xác định của hàm f.

- B: được gọi là miền giá trị của hàm f

- Nếu f(a) = b ta nói b là ảnh của a và a là nghịch ảnh của b Ký hiệu f-1(b) = a

- Tập hợp tất cả các ảnh của các phần tử thuộc A được gọi là ảnh của A qua hàm f

A}

a |{f(a)

Viết hàm lấy phần nguyên của một số thực:

function floor (x: real): integer

(f + g)(x) = f(x) + g(x) và (f.g)(x) = f(x).g(x)

2 Các hàm đơn ánh và toàn ánh:

Trang 12

a Đơn ánh:

Hàm f : X → Y được gọi là một đơn ánh khi các ảnh của 2 phần tử khác nhau tùy ý thì khác nhau, nghĩa là với mọi x và x' thuộc X ta có:

x ≠ x' => f(x) ≠ f(x')hay f(x) = f(x') => x = x'

3 Biểu diễn hàm (Đồ thị của hàm):

Trang 13

BÀI TẬP CHƯƠNG I Bài 1: Logic và mệnh đề

1 Dùng bảng chân lý để chứng minh luật giao hoán:

Trang 14

9 Cho P(x) và câu “x nói được tiếng Nga” và Q(x) là câu “x biết ngôn ngữ C++” Hãy diễn đạt các câu sau bằng cách dùng P(x), Q(x), các lượng từ và các liên từ logic Cho không gian đối với các lượng từ là tập hợp tất cả sinh viên ở trường bạn:

a Có một sinh viên ở trường bạn nói được tiếng Nga và biết C++

b Có một sinh viên ở trường bạn nói được tiếng Nga và không biết C++

c Mọi sinh viên ở trường bạn đều nói được tiếng Nga hoặc biết C++

d Không có một sinh viên nào ở trường bạn nói được tiếng Nga hoặc biết C++

10 Cho Q(x) là câu “x đã là người tham gia cuộc thi y” Hãy diễn đạt các câu sau bằng cách dùng Q(x, y), các lượng từ và các liên từ logic Cho không gian của x là tập hợp tất cả sinh viên của trường bạn, còn không gian của y là tập hợp tất cả các cuộc thi trên truyền hình

a Có một sinh viên ở trường bạn đã tham gia cuộc thi trên truyền hình

b Không có một sinh viên nào ở trường bạn đã tham gia cuộc thi trên truyền hình

c Có một sinh viên ở trường bạn đã tham gia cuộc thi Jeopardy và Wheel of Fortune trên truyền hình

d Mọi cuộc thi trên truyền hình đều có một sinh viên ở trường bạn tham gia

e Ít nhất có hai sinh viên ở trường bạn đã tham gia cuộc thi Jeopardy trên truyền hình

11 Cho L(x, y) là một câu “x yêu y”, với không gian của cả x và y là tập hợp mọi người trên thế giới Hãy dùng các lượng từ để diễn đạt các câu sau:

a Mọi người đều yêu Jerry

b Mọi người đều yêu một ai đó

c Có một người mà tất cả mọi người đều yêu

d Không có ai yêu tất cả mọi người

e Có một người mà Lydia không yêu

f Có một người mà không ai yêu

g Có đúng một người mà tất cả mọi người đều yêu

h Có đúng hai người mà Lynn yêu

i Mọi người đều yêu chính mình

j Có một người nào đó không yêu ai ngoài chính mình

12 Cho F(x, y) là câu “x có thể lừa gạt y”, với không gian là tập hợp mọi người trên thế giới Hãy dùng các lượng từ để diễn đạt các câu sau:

a Mọi người đều có thể lừa gạt Fred

b Evelyn có thể lừa gạt được mọi người

c Mọi người đều có thể lừa gạt được ai đó

d Không có ai có thể lừa gạt được tất cả mọi người

e Mọi người đều có thể bị lừa gạt bởi ai đó

f Không ai có thể lừa gạt được cả Fred lẫn Jerry

g Nancy có thể lừa được chính xác hai người

h Có chính xác một người mà ai cũng lừa gạt được

i Không ai có thể lừa gạt được chính mình

Trang 15

j Có một người nào đó có thể lừa gạt được chính xác một người trừ bản thân mình.

13 Dùng các lượng từ để diễn đạt các câu sau:

a Tất cả các sinh viên tin học đều cần phải học môn toán học rời rạc

b Có một sinh viên ở lớp này đã có máy vi tính

c Tất cả các sinh viên ở lớp này đã học ít nhất một môn tin học

d Có một sinh viên ở lớp này đã học ít nhất một môn tin học

e Mỗi sinh viên ở lớp này ở một nhà trong ký túc xá

f Có một sinh viên ở lớp này đã ở tất cả các phòng của ít nhất một nhà trong ký túc xá

g Tất cả các sinh viên ở lớp này ít nhất đã ở một phòng trong tất cả các nhà trong ký túc xá

14 Lớp toán học rời rạc có một sinh viên ngành toán năm thứ nhất, 12 sinh viên ngành toán năm thứ hai, 15 sinh viên tin học năm thứ hai, hai sinh viên toán năm thứ ba, hai sinh viên tin học năm thứ ba và một sinh viên tin học năm thứ tư (năm cuối cùng) Diễn đạt các câu sau bằng cách dùng các lượng từ rồi sau đó xác định giá trị chân lý của chúng:

a Có một sinh viên trong lớp là sinh viên năm thứ ba

b Mọi sinh viên trong lớp đều là sinh viên ngành tin học

c Có một sinh viên trong lớp không phải là sinh viên ngành toán và cũng không phải sinh viên năm thứ ba

d Mọi sinh viên trong lớp hoặc là sinh viên năm thứ hai hoặc là sinh viên ngành tin

e Có một ngành học sao cho mỗi khóa học có một sinh viên ở lớp này học ngành đó

15 Cho P(x) là câu “x = x2” Nếu không gian là tập hợp các số nguyên, thì giá trị chân lý của các mệnh đề sau là như thế nào?

Trang 16

17 Giả sử không gian của hàm mệnh đề P(x, y) gồm các cặp số x và y với x là 1, 2 hoặc 3

và y là 1, 2 hoặc 3 Dùng các phép hội và tuyến viết các mệnh đề sau:

a Mọi sinh viên ở lớp này đều thích môn toán

b Có một sinh viên trong lớp này chưa hề bao giờ nhìn thấy một chiếc máy tính

c Có một sinh viên trong lớp này đã học tất cả các môn toán được dạy ở trường này

d Có một sinh viên ở lớp này đã ở ít nhất một phòng trong tát cả các tòa nhà ở ký túc xá

19 Cho P(x), Q(x) và R(x) là các câu “x là giáo sư”, “x là kẻ ngu dốt” và “x là kẻ vô tích sự”, tương ứng Bằng cách dùng các lượng từ, các liên từ logic cùng với P(x), Q(x) và R(x) diễn đạt các câu sau với không gian là tập hợp toàn thể loài người

a Không có giáo sư nào là kẻ ngu dốt

b Mọi kẻ ngu dốt đều là vô tích sự

c Không có giáo sư nào là vô tích sự

d (c) có thể suy ra từ (a) và (b) không? Nếu không, liệu có một kết luận đúng nào không?

20 Cho P(x), Q(x) và R(x) tương ứng là các câu “x là lời giải thích rõ ràng”, “x là thỏa đáng”

và “x là một lý do” Giả sử không gian của biến x là tập hợp toàn bộ văn bản Dùng các lượng từ, các liên từ logic cùng với P(x), Q(x) và R(x) diễn đạt các câu sau:

a Tất cả các giải thích rõ ràng đều là thỏa đáng

b Một số lý do là không thỏa đáng

c Một số lý do không phải là giải thích rõ ràng

d (c) có thể suy ra từ (a) và (b) không? Nếu không, liệu có một kết luận đúng không?

21 Cho P(x), Q(x), R(x) và S(x) tương ứng là các câu “x là một đứa bé”, “x là logic”, “x có khả năng cai quản một con cá sấu” và “x bị coi thường” Giả sử không gian là tập hợp tất cả mọi người Hãy dùng các lượng từ, các liên từ logic cùng với P(x), Q(x), R(x) và S(x) để diễn đạt các câu sau:

a Những đứa bé là không logic

b Không ai bị coi thường nếu cai quản được cá sấu

c Những người không logic bị coi thường

d Những đứa bé không cai quản được cá sấu

e (d) có thể suy ra từ (a), (b) và (c) không? Nếu không, liệu có một kết luận đúng không?

Trang 17

22 Cho P(x), Q(x), R(x) và S(x) tương ứng là các câu sau: “x là một con vịt”, “x là một trong

số gia cầm của tôi”, “x là một viên sĩ quan” và “sẵn lòng khiêu vũ” Dùng các lượng từ, các liên từ logic cùng với P(x), Q(x), R(x) và S(x) để diễn đạt các câu sau:

a Không có con vịt nào sẵn lòng khiêu vũ cả

b Không có viên sĩ quan nào từ chối khiêu vũ cả

c Toàn bộ đàn gia cầm của tôi đều là vịt

d Đàn gia cầm của tôi không phải là các sĩ quan

e (d) có thể suy ra từ (a), (b) và (c) không? Nếu không,liệu có một kết luận đúng không?

23 Chứng tỏ rằng các câu ¬ x y P(x, y) và x y ¬ P(x, y) có cùng giá trị chân lýƎ ∀ ∀ Ǝ

a ∀x P(x) x Q(x) và x y (P(x) Q(y)) là tương đương logic.∧ Ǝ ∀ Ǝ ∧

b ∀x P(x) x Q(x) và x y (P(x) Q(y)) là tương đương logic.∨ Ǝ ∀ Ǝ ∨

32 Ǝ!x P(x) là kí hiệu của mệnh đề “Tồn tại duy nhất một x sao cho P(x) là đúng” Nếukhông gian là tập các số nguyên, hãy xác định giá trị chân lý của các lượng từ sau:

Trang 18

2 Xác định xem mỗi cặp tập hợp sau đây có bằng nhau không?

a {1, 3, 3, 3, 5, 5, 5, 5, 5} và {5, 3, 1}

b {{1}} và {1, {1}}

c Ø và {Ø}

3 Giả sử rằng A = {2, 4, 6}, B = {2, 6}, C = {4, 6} và D = {4, 6, 8} Hãy xác định các tập nào là những tập con của tập nào

Trang 19

17, Nêu ý nghĩa của tích Đề các A x B x C trong đó A là tập hợp tất cả các tuyến bay, B và C

22 Cho A là tập hợp các sinh viên sống cách xa trường trong vòng bán kính một km và B là tập hợp các sinh viên đang trên đường tới lớp Hãy mô tả các sinh viên thuộc một trong các tập hợp sau:

23 Giả sử A là tập hợp các sinh viên năm thứ hai ở trường bạn và B là tập hợp các sinh viên đang học môn toán rời rạc ở trường bạn Hãy biểu diễn các tập sau đây qua A và B

a Tập hợp các sinh viên năm thứ hai học toán rời rạc ở trường bạn

b Tập hợp sinh viên năm thứ hai ở trường bạn không học toán rời rạc

c Tập hợp các sinh viên ở trường bạn hoặc học toán rời rạc hoặc đang học toán rời rạc

d Tập hợp các sinh viên ở trường bạn hoặc không phải là sinh viên năm thứ hai hoặc không học toán rời rạc

Trang 20

CHƯƠNG 2 THUẬT TOÁN BÀI 1: KHÁI NIỆM THUẬT TOÁN

1 Khái niệm thuật toán:

Mô tả thuật toán tìm phần tử lớn nhất trong một dãy hữu hạn các số nguyên

2 Biểu diễn thuật toán:

Ðể trình bày một thuật toán hay biểu diễn một thuật toán, ta có thể sử dụng các phương pháp biểu diễn thuật toán sau đây:

- Lưu đồ là một hệ thống các nút có hình dạng khác nhau, thể hiện các chức năng khác nhau và được nối với nhau bởi các cung Lưu đồ được tạo thành bởi 4 thành phần chủ yếu sau đây:

1/ Nút giới hạn: Bắt đầu hoặc kết thúc thuật toán

Trang 21

2/ Nút nhập/xuất dữ liệu: Nhập dữ liệu hoặc xuất dữ liệu.

3/ Nút thao tác: Thực hiện một công việc nào đó

4/ Nút điều kiện: Rẽ nhánh thực hiện

5/ Cung: Tiến trình thực hiện

- Hoạt động của thuật toán theo lưu đồ được bắt đầu từ nút đầu tiên Sau khi thực hiện các thao tác hoặc kiểm tra điều kiện ở mỗi nút thì bộ xử lý sẽ theo một cung để đến nút khác Quá trình thực hiện thuật toán dừng khi gặp nút kết thúc hay nút cuối

- Sử dụng một số qui ước của một ngôn ngữ lập trình, chẳng hạn là ngôn ngữ lập trình PASCAL, nhất là các cấu trúc điều khiển của ngôn ngữ lập trình như các cấu trúc chọn, các cấu trúc lặp để mô tả thuật toán

- Mã giả còn sử dụng cả các ký hiệu toán học, các biến, và đôi khi cả cấu trúc kiểu thủ tục Cấu trúc thuật toán kiểu thủ tục thường được sử dụng để trình bày các thuật toán đệ qui hay các thuật toán quá phức tạp cần phải được trình bày thành nhiều cấp độ

- Các cấu thường được sử dụng trong mã giả dựa theo ngôn ngữ lập trình PASCAL gồm:

1/ Cấu trúc chọn:

if (điều kiện) then (hành động)

if (điều kiện) then (hành động)

else (hành động)2/ Cấu trúc lặp:

while (điều kiện) do (hành động)

Repeat

(hành động)

Until (điều kiện)

for (biến) := (giá trị đầu) to (giá trị cuối) do (hành động)

for (biến) := (giá trị đầu) downto (giá trị cuối) do (hành động)

3/ Cấu trúc nhảy goto Ngoài ra người ta còn sử dụng lệnh ngắt vòng lặp break

Ví dụ: Thuật toán tìm phần tử lớn nhất trong một dãy hữu hạn các số nguyên:

Input/

Output

Command

If

Trang 22

Nhập: dãy số a1, a2, , anXuất: max là giá trị lớn nhất trong dãy số đã cho trong input.

Biểu diễn thuật toán trên theo 3 cách

1 Sử dụng ngôn ngữ tự nhiên

• Bài toán tìm phần tử lớn nhất trong một dãy hữu hạn tương đối tầm thường Tuy nhiên đây là một trong những ví dụ khá tốt để minh họa cho khái niệm về thuật toán Có nhiều vấn

đề mà trong đó đòi hỏi phải tìm số nguyên lớn nhất trong một dãy số Chẳng hạn như việc tìm

ra một học sinh có điểm cao nhất trong một kỳ thi, hay tìm ra một nhân viên có năng suất cao nhất trong một xí nghiệp, v.v

• Chúng ta có nhiều cách để giải bài toán này Một cách đơn giản là dùng ngôn ngữ thông thường để mô tả các bước cần thực hiện Sau đây là các bước để giải bài toán trên:

1 Trước hết ta đặt cho giá trị lớn nhất tạm thời bằng số nguyên đầu tiên (Giá trị lớn nhất tạm thời này chính là giá trị lớn nhất ở mỗi giai đoạn của thủ tục.)

2 So sánh số nguyên kế tiếp trong dãy với giá trị lớn nhất tạm thời, và nếu nó lớn hơn giá trị lớn nhất tạm thời thì đặt cho giá trị lớn nhất tạm thời bằng số nguyên này

3 Lặp lại bước 2 nếu còn số nguyên trong dãy chưa được xét tới

4 Dừng nếu không còn số nguyên nào trong dãy chưa được xét Giá trị lớn nhất tạm thời lúc này chính là giá trị lớn nhất trong dãy số

2.Sử dụng lưu đồ

Trang 23

3 Sử dụng giả mã

1 max := a1

2 for i := 2 to n do

if max < a1 then max := a1

3 max là giá trị lớn nhất trong dãy số

3 Tính chất của thuật toán:

Thuật toán có vai trò rất quan trọng trong khoa học máy tính Ðể có thể lập trình giải bài toán trên máy tính, ta cần có một thuật toán bảo đảm những tính chất nhất định Khi mô tả một thuật toán chúng ta cần chú ý đến các tính chất sau đây:

Nhập (input): Mỗi thuật toán có các giá trị đầu vào (input values) từ một tập hợp xác định nào

đó

Xuất (output): Từ mỗi tập hợp các giá trị đầu vào, thuật toán sẽ tạo ra những giá trị đầu ra

(output values) thuộc một tập hợp nhất định nào đó, các giá trị đó chính là lời giải cho bài toán

Tính xác định (definiteness): Các bước trong thuật toán phải chính xác rõ ràng.

bước

Tính hiệu quả (về thời gian): Thuật toán cần phải được thực hiện một cách chính xác và trong

một khoảng thời gian cho phép

chứ không phải chỉ áp dụng được cho một số trường hợp đặc biệt nào đó

Trong các tính chất trên, 3 tính chất cơ bản của thuật toán đòi hỏi phải được thỏa mãn là tính xác định, tính hữu hạn và tính đúng

4 Một số ví dụ:

4.1 Thuật toán tìm kiếm:

a Thuật toán tìm kiếm tuần tự:

- Bài toán được đặt ra là xác định xem một phần tử x có trong một dãy a1, a2, , an hay không? Lời giải của bài toán này là giá trị chỉ vị trí (hay chỉ số) của một phần tử trong dãy bằng phần tử x, hoặc là 0 nếu x không có trong dãy

Trang 24

- Một thuật toán đơn giản để giải bài toán này là thuật toán tìm kiếm tuyến tính (hay còn gọi

là tìm kiếm tuần tự) Thuật toán bắt đầu bằng việc so sánh x với a1, và nếu x = a1 thì lời giải là vị trí của a1(tức là 1) Khi x ≠ a1, ta tiếp tục so sánh x với a2 Nếu x = a2, thì lời giải

là vị trí của a2 (tức là 2) Khi x ≠ a2, ta tiếp tục so sánh x với a3 Cứ tiếp tục quá trình này: lần lượt so sánh x với từng phần tử của dãy cho tới khi gặp một phần tử bằng x hoặc là cho tới khi đạt đến cuối dãy Lời giải là vị trí của phần tử trong dãy bằng x; hoặc là 0 nếu không có phần tử nào trong dãy bằng x Thuật toán này có thể được viết dưới dạng mã giả như dưới đây

i := i + 1;

if i ≤ n then location := ielse location := 0

location là một lời giải (ví trí cần tìm)

End;

Trong thuật toán này từ "location" là một biến nguyên

b Thuật toán tìm kiếm nhị phân:

- Trong trường hợp dãy a1, a2, , an có thứ tự thì ta có thể tìm kiếm theo thuật toán tìm kiếm nhị phân (binary search)

- Thuật toán được tiến hành bằng cách so sánh phần tử cần xác định vị trí với số hạng ở giữa bảng liệt kê Sau đó bảng này được tách làm hai bảng con nhỏ hơn có kích thước như nhau, hoặc một trong hai bảng con hơn bảng con kia một số hạng Sự tìm kiếm tiếp tục bằng cách hạn chế tìm kiếm ở một bảng con thích hợp dựa trên sự so sánh phần tử cần xác định vị trí với số hạng ở giữa bảng

- Ví dụ: Để tìm kiếm số nguyên x trong bảng liệt kê a1, a2, … an với a1 < a2 < … < an, ta bắt đầu bằng việc so sánh x với số hạng am ở giữa của dãy, với = +2 

Bây giờ sự tìm kiếm chỉ giới hạn trong bảng có không hơn n/2 phần tử Dùng chính thủ tục này, so sánh x với số hạng ở giữa của bảng đã được hạn chế Sau đó lại hạn chế việc tìm kiếm ở nửa thứ nhất hoặc nửa thứ hai của bảng Lặp lại quá trình này cho tới khi nhận

Trang 25

được một bảng chỉ có một phần tử Sau đó chỉ còn xác định phần tử này có phải là x hay không.

if x>am then i = m+1else j = m

end

if x = ai then location = ielse location = 0

End;

4.2 Thuật toán cho các phép tính số nguyên:

a Thuật toán tìm USCLN

Cách tìm USCLN của hai số theo thuật toán Euclide:

USCLN(a,b) = USCLN(a mod b,b)

b Thuật toán Euclide

int USCLN(int x, int y)

{

int r;

a = x; b = y;

while (b != 0){

r = a % b;

a = b;

b = r;

}return a;

}

4.3 Các thuật toán ma trận:

a Thuật toán kiểm tra tính đối xứng của một ma trận:

Nhập : Ma trận A cấp n.

Xuất : True nếu ma trận A là ma trận đối xứng.

False nếu A không đối xứng

Trang 26

Thuật toán:

Procedure Ma_tran_doi_xung;

Beginfor i := 1 to n-1 dofor j := i + 1 to n do

if Aij ≠ Aij then Kết xuất "False", và dừng thuật toán

Kết xuất "True"

End;

b Thuật toán nhân hai ma trận:

BÀI 2: ĐỘ PHỨC TẠP TÍNH TOÁN

- Đánh giá tính thực tiễn của hàm chính là việc phân tích độ tăng của hàm thời gian

b Khái niệm O lớn (big O):

i Định nghĩa:

Cho f và g là hai hàm từ tập các số nguyên hoặc số thực đến tập các số thực Ta nói f(x) là O(g(x)) nếu tồn tại hai hằng số C và k sao cho:

|f(x)| <= C|g(x)| với mọi x>k

- Cặp C và k không phải là duy nhất

- Hai hàm f và g là cùng bậc nếu f là O(g) và g là O(f)

- Nếu f(x) là O(g(x)) và |g(x)|<|h(x)| thì f(x) là O(h(x)) Do đó khi dùng khái niệm O-lớn, hàm g(x) trong quan hệ f(x) là O(g(x)) được chọn là nhỏ nhất có thể được (đôi khi lấy từ tập các hàm sơ cấp, như cac hàm có dạng xn với n là số nguyên dương)

2 Cho ước lượng của hàm giai thừa và hàm logarit của hàm giai thừa

Giải: n! là O(nn) và logn! là O(nlogn)

Trang 27

• Yêu cầu đối với một thuật toán: đúng đắn và hiệu quả.

• Hiệu quả của một thuật toán: thời gian giải bài toán theo thuật toán đang xét với giá trị đầu vào có kích thước xác định, và dung lượng bộ nhớ đòi hỏi để thực hiện thuật toán với giá trị đầu vào có kích thước xác định

• Phân tích thời gian cần thiết để giải bài toán có kích thước đặc biệt nào đó có liên quan đến phức tạp thời gian của thuật toán

• Phân tích bộ nhớ cần thiết của máy tính liên quan với độ phức tạp không gian của thuật toán

• Độ phức tạp không gian liên quan đến cấu truc dữ liệu nên không xét ở đây Chúng ta chỉ tập trung xem xét độ phức tạp thời gian

• Độ phức tạp thời gian của một thuật toán có thể biểu diễn qua số các phép toán được dùng bởi thuật toán đó với giá trị đầu vào có kích thước xác định

Trang 28

O(1) Độ phức tạp hằng sốO(logn) Độ phức tạp logaritO(n) Độ phức tạp tuyến tính

O(nb) Độ phức tạp đa thứcO(bn) b>1 Độ phức tạp hàm mũO(n!) Độ phức tạp giai thừa

elsereturn (n*dqgt(n-1));

Trang 29

Lời gọi hàm dqgt(3) sẽ kiểm tra điều kiện if, do điều kiện if không thoả mãn nên câu lệnh sau else được gọi thực hiện 3*dqgt(3-1) Để tính biểu thức 3*dqgt(3-1), hệ thống gọi tới hàm dqgt(2) (*) Tương tự như trên việc gọi hàm dqgt(2) sẽ kiểm tra điều kiện if, do điều kiện if vẫn chưa thoả mãn nên câu lệnh sau else được gọi thực hiện 2*dqgt(2-1) Để tính biểu thức 2*dqgt(2-1), hệ thống gọi tới hàm dqgt(1)(**).

Tương tự như trên việc gọi hàm dqgt(1) sẽ kiểm tra điều kiện if, với n = 1 thoả mãn điều kiện if nên giá trị 1 được trả về cho lời gọi hàm dqgt(1), (**) đã được tính

Điều đó dẫn tới biểu thức 2*dqgt(1) có giá trị là 2*1, sau khi biểu thức này được tính lời gọi hàm dqgt(2) trả về kết quả 2, (*) đã được tính

Sau khi dqgt(2) nhận kết quả 2 thì biểu thức 3*dqgt(2) có kết quả là 3*2 = 6 Đây chính là kết quả của lời gọi hàm dqgt(3)

2 Khái niệm đệ quy:

• Hàm cho phép từ một điểm trong thân hàm gọi tới chính hàm đó gọi là hàm đệ quy

• Khi hàm gọi đệ quy đến chính nó thì mỗi lần gọi, máy sẽ tạo ra một tập các biến cục bộ mới hoàn toàn độc lập với các tập biến (cục bộ) đã được tạo ra trong các lần gọi trước

3 Cách dùng đệ quy:

a Dạng bài toán sử dụng đệ quy:

Dạng bài toán sử dụng đệ quy có hai đặc điểm sau:

o Bài toán giả quyết được trong trường hợp riêng ứng với giá trị đặc biệt của tham số Trường hợp suy biến

o Trong trường họp tổng quát, bài toán có thể quy về bài toán cùng dạng nhưng tham số thì

bị thay đổi và sau một số hữu hạn các bước biến đệ quy sẽ dẫn tới trường hợp suy biến

}

4 Ví dụ minh hoạ:

Cách tìm USCLN của hai số theo phương pháp đệ quy như sau:

- Trường hợp suy biến:

USCLN(a,b) = a nếu a = b

- Trường hợp tổng quát:

USCLN(a,b) = USCLN(a-b,b) nếu a>b

Trang 30

USCLN(a,b) = USCLN(a,b-a) nếu a<b

Với định nghĩa trên ta có thể viết hàm đệ quy tính USC(a,b) như sau:int USCLN(int a, int b)

{

if (a == b)return a;

else

if (a > b)return (USCLN(a-b,b));

elsereturn (USCLN(a,b-a));

}

5 Khử đệ quy:

Trang 31

CÂU HỎI ÔN TẬP VÀ BÀI TẬP CUỐI CHƯƠNG

Đã bổ sung

Bài 1: Lập thuật toán tính tổng tất cả các số nguyên trong một danh sách các số cho trước

Bài 2: Liệt kê các bước cần tiến hành để tìm số 2 trong danh sách sau 1, 2, 5, 9, 13 khi dùng

a Thuật toán tìm kiếm tuyến tính

b Thuật toán tìm kiếm nhị phân

Bài 3: Mô tả thuật toán tìm phần tử nhỏ thứ nhất và phần tử nhỏ thứ hai trong một bảng liệt kê các số

nguyên Số phép so sánh cần dùng trong thuật toán là bao nhiêu

Bài 4: Mô tả thuật toán chèn một số nguyên x vào vị trí thích hợp trong dãy n số nguyên đã được sắp xếp

theo thứ tự giảm dần

Bài 5: Mô tả thuật toán xác định tất cả các vị trí xuất hiện của một số nguyên trong một bảng liệt kê các

số nguyên được sắp xếp theo thứ tự giảm dần Hỏi có bao nhiêu phép so sánh được dùng trong thuật toán đó

Bài 6: Viết thuật toán sắp 4 số hạng đầu tiên của một dãy có chiều dài tuỳ ý theo thứ tự tăng dần Chứng

minh rằng thuật toán này có độ phức tạp theo thời gian là O(1) được tính qua số các phép so sánh được

sử dụng

Bài 7: Giả sử một phần tử đã biết có mặt trong 4 số hạng đầu tiên của một bảng liệt lê gồm 32 số hạng

Hỏi thuật toán tìm kiếm tuyến tính hay thuật toán tìm kiếm nhị phân tìm ra vị trí của phần tử đó nhanh hơn

Bài 8: Hãy định nghĩa đệ quy của dãy {an} với n =1, 2, nếu

a an = 4n -2

b an = 2n +2

c an = n(n+1)

d an = n2

Bài 9: Cho F(n) là tổng của n số nguyên dương đầu tiên.

Hãy đưa ra định nghĩa đệ quy của hàm F(n)

Bài 10: Hãy biểu diễn thuật toán tìm kiếm tuyến tính như một thủ tục đệ quy

CHƯƠNG 3 LÝ THUYẾT ĐẾM

BÀI 1: NGUYÊN LÝ ĐẾM CƠ BẢN

1 Giới thiệu bài toán:

• Bài toán 1: Có bao nhiêu tập tin trong một thư mục được đặt với phần tên gồm 8 ký tự Mỗi ký tự có thể là một chữ cái hoặc một chữ số, ký tự đầu tiên phải là một chữ cái

• Bài toán 2: Có bao nhiêu cách để đánh số nhà trong một dãy phố gồm hai chữ cái và một chữ số theo sau

Trang 32

• …

2 Nguyên lý đếm:

2.1 Nguyên lý cộng (quy tắc cộng):

a Nguyên lý:

Giả sử có hai công việc Việc thứ nhất có thể làm bằng n1 cách, việc thứ hai có thể làm bằng n2

cách và nếu hai việc này không thể thực hiện đồng thời, khi đó sẽ có n1 + n2 cách làm một trong hai việc đó

c Phát biểu dưới dạng tập hợp:

Nếu A1, A2, A3, ….,An là các tập hợp rời nhau Ai ∩ Aj = Ø, khi đó số các phần tử của các tập hợp này bằng tổng số các phần tử của các tập thành phần:

|A1 U A2 U A3 U … U An| = |A1| + | A2| + … + |An|

2.2 Nguyên lý nhân (Quy tắc nhân):

a Nguyên lý:

Giả sử có một nhiệm vụ nào đó được tách ra làm hai việc Việc thứ nhất có thể làm bằng n1

cách, việc thứ hai có thể làm bằng n2 cách sau khi việc thứ nhất đã được làm, khi đó sẽ có n1 x

n2 cách làm nhiệm vụ này

ii Ví dụ 2: Có bao nhiêu xâu nhị phân có độ dài bằng 7?

Giải: Bit thứ nhất của xâu có thể chọn bằng 2 cách, bit thứ 2 có thể chọn bằng 2 cách, , bit thứ 7 có thể chọn bằng 2 cách Nguyên lý nhân chỉ ra rằng có 27 cách chọn các bit của xâu nhị phân, do đó có 27 xâu nhị phân

iii Ví dụ 3: Đếm số tập con của một tập hữu hạn

Giải: Giữa các tập con của S và dãy nhị phân có độ dài |S| có sự tương ứng một – một Cụ thể là, một tập con của S được gán với dãy nhị phân có số 1 ở vị trí thứ i nếu phần tử thứ i trong dãy thuộc tập con này, và là 0 trong trường hợp ngược lại

c Phát biểu dưới dạng tập hợp:

Nếu A1, A2, A3, ….,An là các tập hợp hữu hạn, khi đó số phần tử của tích Đề-các của các tập hợp này bằng tích của các phần tử của các tập thành phần:

|A1 x A2 x A3 x … x An| = |A1| x | A2| x … x |An|

Trang 33

2.3 Bài toán đếm kết hợp cả hai nguyên lý:

Mỗi người sử dụng hệ thống máy tính đều có mật khẩu dài từ 6 đến 8 ký tự, trong đó mỗi ký tự là một chữ hoa hay chữ số Mỗi mật khẩu phải chứa ít nhất một chữ số Hỏi có bao nhhiêu mật khẩu?

Giải:

P: tổng số mật khẩu

P6: số mật khẩu có độ dài 6 ký tự

P7: số mật khẩu có độ dài 7 ký tự

P8: số mật khẩu có độ dài 8 ký tự

Giả sử có hai công việc Việc thứ nhất có thể làm bằng n1 cách, việc thứ hai có thể làm bằng n2

cách và hai việc này thực hiện đồng thời ở n3 cách, khi đó sẽ có n1 + n2 – n3 cách làm một trong hai việc đó

Việc thứ hai: xây dựng xâu nhị phân có độ dài 8 bit kết thúc bằng 2 bit 00, có thể làm bằng 26 =

3.3 Phát biểu dưới dạng tập hợp:

Nếu A1, A2 là các tập hợp và A1 ∩ A2≠Ø, khi đó số các phần tử của các tập hợp này bằng tổng số các phần tử của các tập thành phần:

|A1 U A2| = |A1| + | A2| - |A1∩ A2|

BÀI 2: NGUYÊN LÝ DIRICHLETE

1 Mở đầu:

Trang 34

Giả sử có một đàn chim bồ câu bay vào chuồng Nếu số chim nhiều hơn số ngăn chuồng thì ít nhất trong một ngăn có nhiều hơn một con chim.

Giả sử không tồn tại hộp nào chứa nhiều hơn một đồ vật

Khi đó tổng số đồ vật có trong k chiếc hộp nhỏ hơn hoặc bằng k

Điều đó mâu thuẫn với giả thuyết có k+1 đồ vật

Vậy phải tồn tại một chiếc hộp có nhiều hơn một đồ vật

Nguyên lý trên được gọi là nguyên lý Dirichlet

b Ví dụ:

i Ví dụ 1: Trong bất kỳ một nhóm 367 người thể nào cũng có ít nhất hai người trùng ngày sinh vì một năm có nhiều nhất là 366 ngày

ii Ví dụ 2: Trong một lớp có 65 sinh viên thể nào cũng có hai sinh viên cùng quê

3 Nguyên lý Dirichlet tổng quát:

i Ví dụ 1: Trong 100 người có ít nhất 100/12 = 9 có cùng tháng sinh

ii Ví dụ 2: Cần bao nhiêu mã vùng nếu theo quy định cách đánh số máy điện thoại của thành phố Hà nội hiện nay (NXXXXXX) để đảm bảo 25 triệu máy điện thoại không bị trùng nhau

Giải: Hiện nay có 9 x 106 = 9.000.000 số điện thoại

Theo nguyên lý Direchlet trong số 25 triệu máy điện thoại có ít nhất

⌈25000000/9000000⌉ = 3 có cùng số Để đảm bảo mỗi máy có một số cần có ít nhất 3 mã vùng

iii Ví dụ 3: Trong một tháng có 30 ngày, một đội bóng thi đấu ít nhất mỗi ngày một trận Tổng số trận đấu trong tháng đó mà đội bóng đã chơi là 45 trận Hãy chỉ ra rằng có những ngày liên tiếp đội bóng đó chơi cả thảy 14 trận

BÀI 3: CHỈNH HỢP VÀ TỔ HỢP

Trang 35

1 Chỉnh hợp:

a Định nghĩa:

Cho X là một tập hợp gồm n phần tử, và r là một số nguyên dương nhỏ hơn hoặc bằng n Mỗi

phép chọn r phần tử phân biệt của X theo một thứ tự nào đó sẽ cho ta một chỉnh hợp n chọn r ( chỉnh hợp chập r của n) Nói cách khác, ta có thể xem một chỉnh hợp như là một dãy hay một bộ gồm r phần tử phân biệt được chọn từ n phần tử cho trước

b Công thức tính số chỉnh hợp:

Số các chỉnh hợp n chọn r (chỉnh hợp chập r của n ) là

A(n,r) = n(n-1)(n-2) (n-r+1)

Chứng minh: Mỗi chỉnh hợp của n phần tử chọn r tương ứng với một phép chọn ra r phần tử

phân biệt gồm r bước chọn liên tiếp nhau, và ở mỗi bước ta chọn một phần tử Phần tử thứ nhất của chỉnh hợp có thể được chọn theo n cách vì có n phần tử trong tập hợp Ðối với phần tử thứ 2

ta chỉ có n-1 cách chọn (vì ở lần thứ 2 ta phải loại ra phần tử đã chọn ở lần thứ nhất trong việc chọn) Cứ tiếp tục như thế, đến phần tử thứ r ta có n-r+1 cách chọn Do đó, theo nguyên lý nhân,

ta có số chỉnh hợp n chọn r là

n(n-1)(n-2) (n-r+1)

Ghi chú:

1- Trường hợp r = 0, ta định nghĩa A(n,0) = 1

2- Người ta còn ký hiệu số chỉnh hợp bởi Ar

n.3- Ký hiệu giai thừa: Ðể tiện việc trình bày cũng như biến đổi và tính toán ta sẽ sử dụng ký hiệu n! (đọc là "n giai thừa") được định nghĩa như sau:

0! = 1n! = (n-1)! n (n lớn hơn 0)

Từ công thức ta thấy rằng

)!

(

!r)

A(n,

r n

n

=Ðặt biệt ta có A(n,n) = n!, tức là số hoán vị của n phần tử bằng n!

Ví dụ: Số trường hợp lấy 4 người của một lớp gồm 10 người vào 4 vị trí (có thứ tự) đại diện cho

Trang 36

chọn r ( tổ hợp chập r của n) Nói cách khác, ta có thể xem một tổ hợp n chọn r như là một tập hợp con gồm r phần tử của một tập hợp có n phần tử.

Ví dụ: Cho tập hợp S = {1, 2, 3, 4} Ta có tập S' = {1, 3, 4} là một tổ hợp 4 chọn 3 (tổ hợp chập 3 của 4)

Số các tổ hợp n chọn r được ký hiệu là C(n,r) Ví dụ : C(4,2) = 6 vì ta có thể liệt kê ra tất cả các

tập hợp con 2 phần tử của một tập hợp có 4 phần tử và thấy có tất cả là 6 tập con Sau đây là công thức để tính C(n,r)

b Công thức:

Số các tổ hợp n chọn r , với n và r là các số nguyên thỏa 0 ≤ r ≤ n, là

Chứng minh: Ta sẽ tính số tổ hợp thông qua việc thiết lập công thức liên hệ giữa C(n,r) và A(n,r)

Các chỉnh hợp n chọn r thể đạt được bằng cách lấy một tổ hợp n chọn r (hay tập con r phần tử của tập hợp n phần tử cho trước) rồi sau đó chọn một hoán vị của r phần tử trong tổ hợp Từ đó, theo qui tắc nhân, ta có

A(n,r) = C(n,r) A(r,r) = C(n,r) r!

Suy ra :

Ghi chú: Số tổ hợp n chọn r C(n,r) còn được ký hiệu bởi

Ví dụ: Số danh sách không kể thứ tự trước sau gồm 5 người của một lớp học gồm 10 người là

y x

0

),()

(

Chứng minh: Ta có thể khai triển tích của n thừa số trong biểu thức

(x+y)n = (x+y) (x+y) (x+y)

thành tổng của 2n số hạng có dạng t1t2…tn trong đó ti = x hay ti = y, với mọi i từ 1 tới n Với mỗi j

<= n (j không âm) ta gộp các số hạng trong đó có đúng j thừa số bằng y, và như thế các số hạng này bằng xn-jyj Số các số hạng này chính là số cách chọn j phần phần tử chỉ số trong tập các chỉ số {1, 2, …, n} để xác lập các thừa số trong số hạng t1t2…tn sẽ được chọn bằng y Ðó chính là số tổ hợp n chọn j Từ đó ta suy ra công thức cần chứng minh

b Hệ quả 1:

Cho n là một số nguyên không âm tùy ý Ta có:

Trang 37

• Cho n và r là 2 số nguyên không âm và r <= n Ta có:

Trang 38

BÀI 4: CHỈNH HỢP VÀ TỔ HỢP SUY RỘNG

1 Hoán vị lặp:

o Trong các phần trên ta đã biết một hoán vị của n phần tử là một chỉnh hợp chập n của n phần tử đó

và số hoán vị là n! Tuy nhiên trong nhiều bài toán ta có thể gặp tình huống xét sự sắp xếp của một danh sách các phần tử mà trong đó có thể có các phần tử bằng nhau

o Chẳng hạn như trong ví dụ sau đây:

Ví dụ: Hãy tính xem có bao nhiêu cách sắp xếp khác nhau của 6 mẫu tự trong từ PEPPER.

Giải: Trước hết ta nhận xét rằng từ mỗi cách sắp xếp 6 mẫu tự đã cho, nếu ta phân biệt 3 mẫu tự P (tức là ta đánh chỉ số cho các mẫu tự P và xem chúng khác nhau) thì ta sẽ có 3! = 6 cách sắp xếp khác nhau Ví dụ 6 cách sắp xếp sau:

ta có:

(2!).(3!).(Số cách sắp xếp của các mẫu tự trong từ PEPPER)

= (Số hoán vị của 6 phần tử P1, E1, P2, P3, E2, R)

Giả sử n và k là 2 số nguyên dương sao cho n = 2k Chứng minh rằng n!/ 2k là một số nguyên

Giải: Xét n ký hiệu x1, x1, x2, x2, , xk, xk Theo định lý trên ta có số hoán vị của n ký hiệu

này là

n! / (2! 2! 2!) = n!/ 2kSuy ra rằng n!/ 2k là một số nguyên

2 Chỉnh hợp lặp:

Định lý 2:

Trang 39

Số các chỉnh hợp lặp chập r từ tập n phần tử bằng nr.

3 Tổ hợp lặp:

a Bài toán:

i Ví dụ 1: Giả sử trong một đĩa có 3 loại quả gồm táo, cam, lê và mỗi loại có ít nhất 4 quả Tính

số cách lấy 4 quả từ đĩa này nếu giả sử rằng thứ tự các loại quả được chọn là không quan trọng,

và các quả thuộc cùng 1 loại là không phân biệt

ii Ví dụ 2: Có bao nhiêu cách chọn 5 tờ giấy bạc từ một két đựng tiền gồm những tờ 1 đồng, 2 đồng, 5 đồng, 10 đồng, 20 đồng, 50 đồng, 100 đồng Giả sử thứ tự mà các tờ tiền được chọn ra

là không quan trọng, các tờ tiền cùng loại là không phân biệt và mỗi loại có ít nhất 5 tờ

b Định lý:

Số tổ hợp lặp chập r từ tập n phần tử bằng

C(n + r – 1,r)

c Ví dụ:

i Ví dụ 1: Một cửa hàng bích quy có 4 loại khác nhau Có bao nhiêu cách chọn 6 hộp bánh? Giải

sử là ta chỉ quan tâm tới loại bánh mà không quan tâm tới hộp bánh cụ thể nào và thứ tự chọn chúng

ii Ví dụ 2: Phương trình x2+x2+x3 = 11

Có bao nhiêu nghiệm không âm?

BÀI 5: SINH CÁC HOÁN VỊ CHỈNH HỢP VÀ TỔ HỢP

1 Sinh các hoán vị:

a Đặt vấn đề:

o Mọi tập n phần tử đều có thể tương ứng một - một với tập {1,2, …, n}

o Việc liệt kê các hoán vị của một tập bất kỳ gồm n phần tử có thể thực hiện bằng cách sinh ra các hoán vị của tập n số nguyên dương nhỏ nhất {1,2, …, n}, sau đó thay thế các số nguyên này bằng các phần tử tương ứng của chúng

o Phương pháp liệt kê các hoán vị của tập {1,2, …, n} theo thứ tự từ điển như sau: Hoán vị

a1a2…an được gọi là đi trước (nhỏ hơn) hoán vị b1b2…bn nếu với k nào đó (1<=k<=n), a1 = b1,

a2 = b2, … ak-1 = bk-1, ak<bk

b Thuật toán xây dựng hoán vị kế tiếp:

Thuật toán sinh các hoán vị của tập {1,2, …, n} dựa trên thủ tục xây dựng hoán vị kế tiếp, theo thứ tự từ điển, của hoán vị cho trước a1a2…an Bây giờ chúng ta sẽ chỉ rõ cách xây dựng hoán vị kế tiếp này

o Đầu tiên ta giả sử an-1 <an Rõ ràng nếu đổi chỗ an-1 và an cho nhau thì sẽ nhận được hoán vị đi sau (lớn hơn) hoán vị đã cho, và không thể có một hoán vị nào khác lớn hơn hoán vị xuất phát

mà lại bé hơn hoán vị nhận được bằng cách đổi chỗ an-1 và an cho nhau Nếu an-1>an thì không thể nhận được hoán vị lớn hơn bằng cách đổi chỗ của hai số hạng này trong hoán vị Bây giờ ta xem xét ba số Nếu an-2 < an-1 thì có thể sắp lại ba số cuối cùng để có thể nhận một hoán vị mới

Trang 40

liền sau hoán vị xuất phát Đặt số nhỏ hơn trong hai số an-1 và an vào vị trí n-2, sau đó đặt số nguyên còn lại và số an-2 vào hai vị trí cuối cùng theo thứ tự tăng dần.

o Nếu an-2 > an-1 (và an-1>an), khi đó không thể nhận được hoán vị lớn hơn bằng cách đổi chỗ ba số hạng cuối cùng của hoán vị

c Thuật toán tổng quát sinh hoán vị liền sau:

Phương pháp tổng quát tạo hoán vị liền sau (theo thứ tự từ điển) của hoán vị cho trước a1a2…an

như sau:

1- Tìm các số nguyên aj và aj+1 sao cho aj<aj+1 và aj+1>aj+2>aj+3>…>an (tức là tìm cặp số nguyên liền kề đầu tiên tính từ bên phải sang bên trái của hoán vị mà số trước nhỏ hơn số sau).2- Sau đó, để nhận được hoán vị liền sau ta đặt vào vị thí thứ j số nguyên nhỏ nhất trong các

số lớn hơn aj của tập aj+1,aj+2,aj+3,…,an, rồi liệt kê theo thứ tư tăng dần của các số còn lại aj,aj+1,

o Nếu có thể liệt kê tất cả các xâu nhị phân ra được thì ta sẽ nhận được tất cả các tập con

b Thuật toán sinh ra tất cả các tổ hợp:

Mặt khác xâu nhị phân có độ dài n cũng là khai triển nhị phân của một số nguyên nằm giữa 0 và

2n-1 Khi đó 2n xâu nhị phân có thể kiệt kê theo thứ tự tăng dần của số nguyên trong biểu diễn nhị phân của chúng

1- Chúng ta sẽ bắt đầu từ xâu nhị phân bé nhất 00…0 (n số không)

2- Tìm xâu liền sau ta tìm vị trí đầu tiên tính từ phải qua trái mà ở đó là số 0

3- Thay tất cả số 1 ở bên phải số này bằng 0 và đặt số 1 vào chính vị trí này

4- Lặp lại bước 3 cho đến khi tất cả các phần tử của dãy bằng 1

c Thuật toán sinh ra tổ hợp chập r của n phần tử:

Phần này trình bày thuật toán tạo các tổ hợp chập r từ n phần tử {1,2,…,n} Mỗi tổ hợp chập r có thể biểu diễn bằng một xâu tăng Khi đó có thể liệt kê các tổ hợp theo thứ tự từ điển Có thể xây dựng tổ hợp liền sau tổ hợp a1a2…ar bằng cách sau

1- Tìm phần tử đầu tiên ai trong dãy đã cho kể từ phải qua trái sao cho ai<> n-r+1

2- Thay ai bằng ai+1, và aj bằng aj+j-i+1 với j = i+1, i+2, …,r

BÀI TẬP CUỐI CHƯƠNG Bài 1: Trong một lớp có 45 sinh viên nam và 55 sinh viên nữ

a Có bao nhiêu cách chọn hai đại diện một là sinh viên nam và một là sinh viên nữ

Ngày đăng: 10/08/2014, 14:21

HÌNH ẢNH LIÊN QUAN

Bảng chân lý của các phép toán bit: - giao trinh toan roi rac ppsx
Bảng ch ân lý của các phép toán bit: (Trang 5)
Bảng chõn lý đối với ơ(p ۷ q) và ơp ^ ơq. - giao trinh toan roi rac ppsx
Bảng ch õn lý đối với ơ(p ۷ q) và ơp ^ ơq (Trang 6)
Bảng chõn lý đối với p  ⊕  q và ơ(p ↔ q). - giao trinh toan roi rac ppsx
Bảng ch õn lý đối với p ⊕ q và ơ(p ↔ q) (Trang 6)
3. Đồ thị đơn đặc biệt: - giao trinh toan roi rac ppsx
3. Đồ thị đơn đặc biệt: (Trang 44)
2. Đồ thị hình bánh xe: - giao trinh toan roi rac ppsx
2. Đồ thị hình bánh xe: (Trang 45)
4. Đồ thị phân đôi a. Định nghĩa 5: - giao trinh toan roi rac ppsx
4. Đồ thị phân đôi a. Định nghĩa 5: (Trang 45)
Đồ thị nửa Euler - giao trinh toan roi rac ppsx
th ị nửa Euler (Trang 51)
BÀI 4: ĐỒ THỊ EULER VÀ ĐỒ THỊ HAMILTON 1. Đồ thị EULER: - giao trinh toan roi rac ppsx
4 ĐỒ THỊ EULER VÀ ĐỒ THỊ HAMILTON 1. Đồ thị EULER: (Trang 51)
Đồ thị EulerĐồ thị không Euler - giao trinh toan roi rac ppsx
th ị EulerĐồ thị không Euler (Trang 51)
Đồ thị Euler Đồ thị nửa Euler - giao trinh toan roi rac ppsx
th ị Euler Đồ thị nửa Euler (Trang 52)
Đồ thị liên thông G là nửa Euler (mà không là Euler) khi và chỉ khi có đúng hai đỉnh bậc lẻ trong  G. - giao trinh toan roi rac ppsx
th ị liên thông G là nửa Euler (mà không là Euler) khi và chỉ khi có đúng hai đỉnh bậc lẻ trong G (Trang 53)
Đồ thị có hướng liên thông yếu G là đồ thị Euler khi và chỉ khi mọi đỉnh của G đều có bậc vào  bằng bậc ra. - giao trinh toan roi rac ppsx
th ị có hướng liên thông yếu G là đồ thị Euler khi và chỉ khi mọi đỉnh của G đều có bậc vào bằng bậc ra (Trang 55)
Đồ thị Hamilton (hình thập nhị diện đều biểu diẽn trong mặt phẳng) với chu trình Hamilton A, B,  C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, A (đường tô đậm). - giao trinh toan roi rac ppsx
th ị Hamilton (hình thập nhị diện đều biểu diẽn trong mặt phẳng) với chu trình Hamilton A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, A (đường tô đậm) (Trang 57)
Đồ thị phân đôi này có bậc của mỗi đỉnh bằng 2  hoặc 3 (&gt; 3/2), nên theo Định lý 4.2.6, nó là đồ thị  Hamilton. - giao trinh toan roi rac ppsx
th ị phân đôi này có bậc của mỗi đỉnh bằng 2 hoặc 3 (&gt; 3/2), nên theo Định lý 4.2.6, nó là đồ thị Hamilton (Trang 60)
BÀI 5: ĐỒ THỊ PHẲNG VÀ TÔ MÀU ĐỒ THỊ 1. Mở đầu: - giao trinh toan roi rac ppsx
5 ĐỒ THỊ PHẲNG VÀ TÔ MÀU ĐỒ THỊ 1. Mở đầu: (Trang 63)
Ví dụ 1: Đồ thị phẳng ở hình bên có  5   miền,   M 5   là - giao trinh toan roi rac ppsx
d ụ 1: Đồ thị phẳng ở hình bên có 5 miền, M 5 là (Trang 64)
3. Đồ thị không phẳng: - giao trinh toan roi rac ppsx
3. Đồ thị không phẳng: (Trang 65)
Đồ thị là không phẳng khi và chỉ khi nó chứa một đồ thị con đồng phôi với K 3,3  hoặc K 5 . - giao trinh toan roi rac ppsx
th ị là không phẳng khi và chỉ khi nó chứa một đồ thị con đồng phôi với K 3,3 hoặc K 5 (Trang 66)
Đồ thị trong hình 1 và 2 là đồ thị phẳng. Các đồ thị này có 6 đỉnh, nhưng không chứa đồ thị con K 3,3 - giao trinh toan roi rac ppsx
th ị trong hình 1 và 2 là đồ thị phẳng. Các đồ thị này có 6 đỉnh, nhưng không chứa đồ thị con K 3,3 (Trang 66)
Phần 2: Đồ thị Euler và đồ thị Hamilton - giao trinh toan roi rac ppsx
h ần 2: Đồ thị Euler và đồ thị Hamilton (Trang 75)
8. Đồ thị cho trong hình sau gọi là đồ thị Peterson P. - giao trinh toan roi rac ppsx
8. Đồ thị cho trong hình sau gọi là đồ thị Peterson P (Trang 77)
Phần 3: Đồ thị phẳng và tô màu đồ thị (Đã bổ sung) - giao trinh toan roi rac ppsx
h ần 3: Đồ thị phẳng và tô màu đồ thị (Đã bổ sung) (Trang 78)
9. Đồ thị nào trong các đồ thị không phẳng sau đây có tính chất: Bỏ một đỉnh bất kỳ và các cạnh liên  thuộc của nó tạo ra một đồ thị phẳng. - giao trinh toan roi rac ppsx
9. Đồ thị nào trong các đồ thị không phẳng sau đây có tính chất: Bỏ một đỉnh bất kỳ và các cạnh liên thuộc của nó tạo ra một đồ thị phẳng (Trang 79)
Đồ thị có hướng G là liên thông mạnh khi và chỉ khi mọi phần tử nằm trên đường  chéo trong ma trận trọng số ngắn nhất W* đều hữu hạn. - giao trinh toan roi rac ppsx
th ị có hướng G là liên thông mạnh khi và chỉ khi mọi phần tử nằm trên đường chéo trong ma trận trọng số ngắn nhất W* đều hữu hạn (Trang 101)

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