1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng môn toán rời rạc

164 258 0

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

Nội dung

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.. Giải: Tuyển của p và q p ۷ q là mệnh

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THÀNH ĐÔNG

Trang 2

PHẦN I: LÝ THUYẾT TỔ HỢP 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í dụ 2: Xét các câu sau:

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

Trang 3

3

4 x + y = z Cá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

- 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)

- 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”

Trang 4

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

+ Đị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

Trang 5

- 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 và q

Giải: Tuyển của p và q (p ۷ q) là mệnh đề: “Các sinh viên đã học giải tích hoặc đại số có thể theo học lớp này.”

Mệnh đề trên còn có thể hiểu:

“Các sinh viên đã học giải tích hoặc đại số, nhưng không phải cả hai môn, đều có thể theo học lớp này.”

+ Đị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)

Trang 6

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

Mệnh đề kéo theo trên rõ ràng là chỉ sai khi hôm nay là thứ ba mà chúng

ta không học toán rời rạc

 Phép kéo theo xuất hiện ở nhiều chỗ trong các suy luận toán học, nên có rất nhiều thuật ngữ được dùng để diễn đạt p → q Dưới đây là một số ví dụ:

o “Nếu p thì q”

o “p kéo theo q”

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

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

Trang 7

7

o Trong ngôn ngữ lập trình kéo 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 đọan 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

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

Trang 8

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

Một xâu bit (hoặc xâu nhị phân) là dãy không hoặc nhiều bit Chiều dài của xâu

là số các bit trong xâu đó

Ví dụ:

Tìm AND, OR, XOR đối với hai xâu: 01101 10110 và 11000 11101

01101 10110

11000 11101

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

Đị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

Trang 9

9

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

Đị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

Trang 10

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)

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

Luật DeMorgan mở rộng

Trang 11

11

(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ụ 2: Chứng minh rằng (p ^ q) → (p ۷ q) là hằng đúng

o Mệnh đề (p ^ q) → (p ۷ q) là hằng đúng khi mệnh đề luôn đúng với bất kỳ giá trị chân lý nào của các mệnh đề thành phần Điều đó có nghĩa là mệnh

đề tương đương logic với T

o Sử dụng phép biến đổi tương đương (p → q)  (¬p ۷ q)

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

Trang 12

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

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 đó

b Định nghĩa 2: Lƣợng từ tồn tại của P(x) là mệnh đề “Tồn tại một phần tử trong không gian sao 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

Trang 13

13

 Cách 2: Mô tả tập hợp bằng cách chỉ rõ các thuộc tính đặc trưng của các phần tử của tập hợp đó Ví dụ mô tả tập hợp các số nguyên dương lẻ nhỏ hơn 10, O = {x | x là số nguyên dương lẻ nhỏ hơn 10} R = {x | x là số thực}

 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

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}

Trang 14

- 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|

| {x   

| {x   

A A

Luật nuốt

A A A

A A A

Trang 15

15

A B B A

A B B A

) (

) (

) (

) (

) (

C A B A C B A

C A B A C B A

C B A C B A C B A

) (

) (

) (

Luật phân phối

A B B A

A B B A

Cho A và B là hai tập hợp Tích đề các của A và B được ký hiệu là AxB

là tập hợp của tất cả các cặp (a,b) với a A và b B Từ đó:

B}

b

A a

| b) {(a, B

A x    

Tổng quát:

An}

an A2^ ^

a2 A1^

a1 | an) a2,

{(a1,

An

x

x A2

x

Trang 16

BÀI 3: ÁNH XẠ VÀ HÀM

1 Định nghĩa:

a Định nghĩa:

Cho A và B là hai tập hợp Một hàm f từ A đến B là sự gán chính xác một phần tử của B cho mỗi phần tử của A Ta viết f(a) = b nếu b là phần tử duy nhất của B được gán bởi hàm f cho phần tử a của A Ký hiệu f : A  B

- 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)

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

function floor (x: real): integer

Trang 18

Hàm f : N → N xác định bởi f(n) = n2+1 là một đơn ánh vì ta có thể thấy rằng với mọi n và n' thuộc N ta có: nếu f(n) = f(n') thì n = n'

Ví dụ 3:

Cho a và b là 2 số thực tùy ý và a ≠ 0 Hàm f : R → R xác định bởi f(x) = a.x+b là một song ánh vì với mọi số thực y thì phương trình ax + b = y có nghiệm thực x duy nhất là x = (y-b) / a Từ đó ta cũng có ánh xạ ngược được xác định bởi f-1(y) = (y-b) / a

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

| b)

Trang 19

19

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 20

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

Trang 21

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 22

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?

a P(0)

b P(1)

c P(2)

Trang 23

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

Trang 24

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

Trang 25

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

Trang 26

29 Chứng minh rằng Ǝx P(x) ∧ Ǝx Q(x) và Ǝx (P(x) ∧ Q(x)) là không tương đương logic

30 Chứng minh rằng ∀x P(x) ∨ ∀x Q(x) và ∀x ∀y (P(x) ∨ Q(y)) là tương đương logic (Biến mới y được dùng để kết hợp một cách đúng đắn các lượng từ)

31 Chứng tỏ rằng:

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ếu khô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:

4 Xác định xem các mệnh đề sau đúng hay sai:

a x  {x} c {x}  {x}

b {x}  {x} d {x}  {{x}}

Trang 27

27

c {Ø}  {x} e {Ø }  {x}

5 Dùng giản đồ Ven minh hoạ mối quan hệ

A  B và B  C

6 Giả sử A, B và C là các tập hợp sau cho A  B và B  C Chứng minh A  C

7 Tìm hai tập hợp A, B sao cho A  B và A  B

11 Có thể kết luận rằng A = B nếu A và B là hai tập có luỹ thừa nhƣ nhau không?

12 Mỗi tập sau có bao nhiêu phần tử

Trang 28

a A x B

b B x A

15 Nêu định nghĩa của tích Đề các A x B, trong đó A là tập hợp các môn học được dạy bởi khoa toán của một trường đại học và B là tập hợp các giáo sư toán ở trường đại học đó

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 là hai tập hợp tất cả các thành phố ở Mỹ

16 Cho A x B = Ø với A và B là hai tập hợp Bạn có thể rút ra kết luận gì?

20 Chứng minh rằng A x B ≠ B x A khi A, B là các tập không rỗng và A ≠ B

21 Chứng minh rằng cặp sắp thứ tự (a, b) có thể được định nghĩa qua các tập như {{a}, {a, b}} (Gợi ý: Trước hết hãy chứng minh {{a}, {a, b} = {{c}, {c, d} nếu

và chỉ nếu a = c và b = d)

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 ho ̣c môn toán rời ra ̣c ở trường ba ̣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 ho ̣c toán rời ra ̣c ở trường ba ̣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

Trang 29

CHƯƠNG 2 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:

 Dùng ngôn ngữ tự nhiên

 Dùng lưu đồ hay sơ đồ khối

 Dùng mã giả

Trang 30

a Ngôn ngữ tự nhiên:

Sử dụng ngôn ngữ tự nhiên để liệt kê các bước thực hiện các thao tác hay công việc nào đó của thuật toán bằng ngôn ngữ mà con người sử dụng một cách phổ thông hàng ngày

Ngôn ngữ tự nhiên không thể hiện rõ tính cấu trúc của thuật toán nên không thuận lợi cho việc thiết kế và cài đặt những thuật toán phức tạp

b Lưu đồ:

- Ngôn ngữ lưu đồ hay sơ đồ khối là một công cụ rất trực quan để diễn đạt các thuật toán Biểu diễn bằng lưu đồ sẽ giúp ta có được một cái nhìn tổng quan

về toàn cảnh của quá trình xử lý theo thuật toán

- 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

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

If Command

Input/

Output

Trang 31

31

- 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

c Mã giả:

- 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

Trang 32

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ố

 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 33

33

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:

Trang 34

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

Tính hữu hạn (finiteness): Thuật toán phải cho ra lời giải (hay kết quả) sau

một số hữu hạn 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

Tính tổng quát Thuật toán phải áp dụng được cho tất cả các bài toán có dạng

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

Tính đúng: Thuật toán phải cho kết quả như mong muốn

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ụ:

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 35

35

- 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

Thuật toán:

Nhập : dãy a1, a2, , an, và phần tử x

Xuất : vị trí của x trong dãy (chỉ số của phần tử trong dãy bằng với x),

hoặc 0 Procedure Tim_kiem_tuyen_tinh;

Begin

i := 1 while ( i ≤ n and x ≠ ai ) do

i := i + 1;

if i ≤ n then location := i else 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

Trang 36

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 

1

n

m (Cần nhớ rằng  x là số nguyên lớn nhất không quá x) Nếu

x > am, việc tìm kiếm x giới hạn ở nửa thứ hai của dãy, gồm am+1, am+2, …

an Nếu x không lớn hơn am thì sự tìm kiếm giới hạn trong nửa đầu của dãy gồm a1, a2, …, am

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 đƣợ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

Thuật toán:

Procedure Tim_kiem_nhi_phan Begin

j = 1

i = n while i < j begin

1

n m

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

end

if x = ai then location = i else location = 0

End;

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

Trang 37

37

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;

}

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

Thuật toán:

Procedure Ma_tran_doi_xung;

Begin for i := 1 to n-1 do for 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;

Trang 38

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

- Thời gian để thực hiện thuật toán được biểu diễn bởi hàm thời gian với tham

số là giá trị đầu vào của thuật 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)

ii Định lý:

Cho f(x) = anxn + an-1xn-1 + … + a1x + a0, ở đây a0, a1, …, an là các số thực Khi đó f(x) là O(xn

Trang 39

 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 40

Ví dụ 2: Mô tả độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính

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

Ngày đăng: 07/07/2017, 14:14

TỪ KHÓA LIÊN QUAN

w