1. Trang chủ
  2. » Thể loại khác

BÀI TOÁN VÀ THUẬT TOÁN

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

Tiêu đề Bài Toán Và Thuật Toán
Định dạng
Số trang 37
Dung lượng 2,57 MB

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

Nội dung

Slide 1 1 Khái niệm bài toán Là việc nào đó ta muốn máy thực hiện để từ thông tin đưa vào (INPUT) tìm được thông tin ra (OUTPUT) Ví dụ 1 Tìm ước số chung lớn nhất của hai số nguyên dương INPUT Hai số[.]

Trang 1

1 Khái niệm bài toán

Là việc nào đó ta muốn máy thực hiện để từ thông tin đưa vào (INPUT) tìm được thông tin ra (OUTPUT)

Ví dụ 1: Tìm ước số chung lớn nhất của hai số nguyên dương.

INPUT: Hai số nguyên dương M và N.

OUTPUT: Ước số chung lớn nhất của M và N.

Ví dụ 2: Bài toán xếp loại học tập của một lớp.

INPUT: Bảng điểm của học sinh trong lớp.

OUTPUT: Bảng xếp loại học lực của học sinh

BÀI 4 BÀI TOÁN VÀ THUẬT TOÁN

Trang 2

Xét ví dụ : Giải phương trình bậc nhất ax + b = 0

B1: Xác định hệ số a, b;

B2: Nếu a=0 và b=0 => Phương trình vô số nghiệm =>B5;

B3: Nếu a=0 và b≠0 => Phương trình vô nghiệm =>B5;

B4: Nếu a≠0 => Phương trình có nghiệm x=-b/a =>B5;

B5: Kết thúc.

Trang 3

Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm

Có hai cách thể hiện một thuật toán:

 Cách 1: Liệt kê các bước

Cách 2: Vẽ sơ đồ khối.

Trang 4

=> PT có hai nghiệm x1, x2 = (-b ± √∆)/2a => Kết thúc;

Thuật toán giải phương trình bậc hai (a 0)

Cách 1: Liệt kê các bước

Trang 5

Quy ước các khối trong sơ đồ thuật toán

Trang 7

c b

a

S

PT có 2 nghiệm x1, x2 = (-b ± √∆ )/2a

Trang 8

c b

a

S

PT có 2 nghiệm x1, x2 = (-b ± √∆ )/2a

Trang 9

c b

a

S

PT có 2 nghiệm x1, x2 = (-b ± √∆ )/2a

Trang 10

Để giải một bài toán nào đó trong tin học

ta cần làm theo các bước sau:

Tìm input, output của bài toán

Từ những dữ kiện đã có, tìm ra ý tưởng để giải bài toán.

Viết thuật toán bằng cách liệt kê các bước thực hiện hoặc

sử dụng sơ đồ khối.

Trang 11

 Bi ến và vòng lặp

Biến: Là một số có thể thay đổi giá trị

Vòng lặp là lặp đi lặp lại một công việc nào đó theo một Chu kỳ

Trang 12

Thuật toán tìm số lớn nhất trong một dãy số nguyên

Trang 13

Ý tưởng:

- Đặt giá trị Max = a1.

- Lần lượt cho i chạy từ 2 đến N, so sánh giá trị ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai.

Trang 14

Cách 1: Liệt kê các bước

Trang 15

S

Đ S

4.2: i i + 1 rồi quay lại B3.

Cách 2: Sơ đồ khối

Trang 16

S

Đ S

5 5

5

5 4

3 2

6 7

4 1

Trang 17

Thuật toán kiểm tra tính nguyên tố của một số

nguyên dương

Xác định bài toán:

INPUT: N là một số nguyên dương.

OUTPUT: Trả lời câu hỏi N có là số

nguyên tố không?

Trang 18

ý tưởng: Xét các trường hợp

Các em hãy nêu định nghĩa số nguyên tố

- Nếu N 4 và không có ước số trong phạm vi từ 2 đến phần nguyên căn bậc hai của N thì N là số nguyên tố

- Nếu N = 1 thì N không là số nguyên tố.

- Nếu 1< N <4 thì N là số nguyên tố

Trang 19

Chia hết

không?

45/3 45/2

N/i

3 2

Trang 20

Cách 1: Liệt kê các bước

B1: Nhập số nguyên dương N;

B2: Nếu N = 1 thông báo N không nguyên tố, kết thúc;

B3: Nếu N < 4 thông báo N là nguyên tố rồi kết thúc;

B4: i 2;

B5: Nếu i > [N ] thì thông báo N là nguyên tố, kết thúc;

B6: Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc;

B7: i i +1 rồi quay lại B5.

Trang 21

i i +1

Thông báo N là số nguyên tố

rồi kết thúc.

Đ S

S

Đ

S S

Đ

Vẽ sơ đồ khối

Trang 22

THUẬT TOÁN SẮP XẾP

Hãy tìm cách sắp xếp học sinh đứng chào cờ (hình a) theo thứ tự thấp trước cao sau (hình b).

Trang 23

Thuật toán sắp xếp bằng tráo đổi

Xác định bài toán:

INPUT: Dãy A gồm N số nguyên a 1 , a 2 ,…, a N

OUTPUT: Dãy A được sắp xếp thành dãy không giảm.

Trang 24

ý tưởng:

Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn

số sau ta đổi vị trí chúng cho nhau Việc đó được lặp lại cho đến khi không có sự đổi chỗ nào xảy ra nữa

Trang 25

 Với N = 6 và dãy A gồm 6 số hạng như sau :

Trang 26

Cách 1: Liệt kê các bước

B6: Nếu i > M thì quay lại B3 ;

B7: Nếu a i > a i+1 thì tráo đổi a i và a i+1 cho nhau;

B8: Quay lại B5.

Trang 28

THUẬT TOÁN TÌM KIẾM

Hai bạn chó (Bi và Bông) chơi trốn tìm, Bông đã trốn vào một trong những chiếc mũ của ông già Nôen trên Hãy chỉ ra các cách tìm

chiếc mũ mà Bông đang trốn? Cho biết có những cách nào?

Bông trốn đâu nhỉ ?

C1: Tìm kiếm tuần tự ( mở từng mũ)

C2: Do các mũ đã sắp xếp lớn dần, hai mũ đầu nhỏ hơn

người của Bông nên chỉ tìm hai

mũ sau thôi!

Trang 29

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

Xác định bài toán:

INPUT: Dãy A gồm N số nguyên a 1 , a 2 ,…, a N đôi

một khác nhau và số nguyên k.

OUTPUT: Chỉ số i mà a i = k hoặc thông báo

không có số hạng nào của A bằng k

Trang 30

5 4

3 2

1 I

51 25

11 8

9 2

4 1

7 5

A

Mô phỏng thuật toán tìm kiếm tuần tự

 Với k = 2 và dãy A gồm 10 số hạng như sau:

Trang 31

Ý tưởng:

Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá (k) cho đến khi có sự trùng nhau, nếu

đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị

bằng k

Trang 32

Cách 1: Liệt kê các bước

Bước 5: Nếu i > N thì thông báo dãy A không có số

hạng nào có giá trị bằng k, rồi kết thúc;

Bước 6: Quay lại B3.

Trang 34

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

ý tưởng:

Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp

nhanh phạm vi tìm kiếm bằng cách so sánh k với số hạng ở giữa dãy (a giữa ), khi đó chỉ xảy ra một trong ba trường hợp:

- Nếu a giữa = k => tìm được chỉ số, kết thúc;

- Nếu a giữa > k => do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ a 1 a giữa - 1 ;

- Nếu a giữa < k => do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ a giữa + 1 a N

Quá trình trên được lặp đi lặp lại cho đến khi tìm được OUTPUT.

Trang 35

Mô phỏng thuật toán tìm kiếm nhị phân

10 9

8 7

6 5

4 3

2 1

i

33 31

30 22

21 9

6 5

4 2

30 22

21

Lượt thứ hai: a giữa là a 8 = 30; 30 > 21

Lượt thứ ba: a giữa là a 6 = 21; 21= 21

Vậy số cần tìm là i = 6.

22 21

6 21

Trang 36

Liệt kê các bước

Bước 1: Nhập N, các số hạng a 1 , a 2 ,…, a N

và giá trị khoá k;

Bước 2: Đầu 1, Cuối N;

Bước 3: Giữa [(Đầu + Cuối)/2];

Bước 4: Nếu a Giữa = k thì thông báo chỉ số Giữa

rồi kết thúc;

Bước 5: Nếu a Giữa > k thì đặt Cuối = Giữa - 1 rồi

chuyển sang bước 7;

Bước 6: Đầu Giữa + 1;

Bước 7: Nếu ĐÇu Cuối thì thông báo dãy A không có

số hạng có giá trị bằng k, rồi kết thúc;

Bước 8: Quay lại bước 3.

Trang 37

1 Khái niệm bài toán

BÀI TOÁN VÀ THUẬT TOÁN

2 Khái niệm thuật toán

Thuật toán giải phương trình bậc hai (a 0) Thuật toán tìm Max của một dãy số.

Thuật toán kiểm tra tính nguyên tố của một số nguyên dương.

Thuật toán sắp xếp bằng tráo đổi.

Thuật toán tìm kiếm tuần tự và nhị phân.

Ngày đăng: 19/04/2022, 13:37

HÌNH ẢNH LIÊN QUAN

Sơ đồ thuật toán giải phương trình bậc hai - BÀI TOÁN VÀ THUẬT TOÁN
Sơ đồ thu ật toán giải phương trình bậc hai (Trang 6)
Hình a Hình b - BÀI TOÁN VÀ THUẬT TOÁN
Hình a Hình b (Trang 22)

TỪ KHÓA LIÊN QUAN

w