1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bai 4 Bai toan va thuat toan

34 20 0
Tài liệu đã được kiểm tra trùng lặp

Đ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
Trường học Trường Thpt Tân Kỳ
Chuyên ngành Tin học
Thể loại bài giảng
Định dạng
Số trang 34
Dung lượng 1,02 MB

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

Nội dung

b Thuật toán tìm kiếm nhị phân Binary Search  Xác định bài toán - Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, …, aN và một số nguyên k - Output: Chỉ số i mà ai = k hoặc t[r]

Trang 1

TR ƯỜNG THPT TÂN KỲ NG THPT T N K ÂN KỲ Ỳ

Trang 2

Bµi 15:

L M QUEN V I ÀM QUEN VỚI ỚI MICROSOF WORD(T2)

Trang 3

Xét các yêu cầu sau :

1 Giải phương trình bậc hai ax2+bx+c=0

2 Viết một dòng chữ ra màn hình máy tính

3 Quản lý các cán bộ trong một cơ quan

4 Tìm ước chung lớn nhất của hai số nguyên dương a và b

5 Xếp loại học tập các học sinh trong lớp

->Trong các yêu cầu trên yêu cầu nào được xem như là một bài toán

Trong Toán học Trong Tin học

Yêu cầu 1 và 4 được

xem là bài toán

Tất cả các yêu cầu trên được xem là bài toán

Trang 4

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

trong tin học

Bài toán là một việc nào

đó mà ta muốn máy

tính thực hiện

Trang 5

TIN HỌC

Đưa vào máy thông tin gì

Cần lấy ra thông tin gì

TOÁN HỌC?

Các yếu tố cần quan tâm khi giải

một bài toán

 Trong Tin học, để phát biểu một bài toán, ta cần

trình bày rõ Input và Output của bài toán đó.

Trang 6

• Input : Các số trong dãy số.

• Output : Giá trị nhỏ nhất trong dãy số

Trang 7

VD3 : Tìm ước chung lớn nhất của hai số nguyên dương a và b.

Trang 8

Nêu một bài toán và chỉ

rõ Input, Output của bài

toán đó?

Xem thêm các ví dụ trong SGK/24, 25

Trang 9

TÓM LẠI

Một bài toán được cấu tạo bởi 2 thành

phần cơ bản : Input (Các thông tin đã có)

Output (Các thông tin cần tìm từ Input)

Trang 10

II THUẬT TOÁN

Hướng dẫn các thao tác cho máy

thực hiện để tìm ra lời giải

Bài toán

Giải bài toán

Thuật toán

Trang 11

Input THUẬT TOÁN Output

(Thao tác 1Thao tác 2 Thao tác n)

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 đó, từ Input của bài toán này, ta nhận được Output cần tìm.

BÀI TOÁN

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ác thao tác được sắp xếp theo một trình tự xác định.

• Sau khi thực hiện dãy thao tác đó, từ Input ta tìm được Output của bài toán.

Trang 12

MÔ TẢ CÁC THAO TÁC TRONG THUẬT TOÁN

Có 2 cách mô tả Liệt kê

Trang 13

Ví dụ 1: Tìm giá trị lớn nhất của một dãy số

nguyên

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

+ Input: – số nguyên dương N

– N số a1, a2, …, aN.+ Output: giá trị Max

 Ý tưởng:

– Khởi tạo giá trị Max = a1

– Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai

Trang 14

 Thuật toán: (Liệt kê)

B1: Nhập N và dãy a1, …, aN

B2: Max  a1; i 2

B3: Nếu i > N thì đưa ra giá trị Max và kết thúc.

B4: Nếu ai > max thì Max  ai

B5: i  i+1, quay lại B3.

Ghi chú: Trong thuật toán trên, i là biến chỉ số và có giá trị nguyên thay đổi trong khoảng 2->N+1

Mũi tên <- trong thuật toán trên được hiểu là gán giá trị của biểu thức bên phải cho biến ở bên trái mũi tên

Ví dụ i<-i+1 được hiểu là đặt cho biến i giá trị mới

Trang 15

Thuật toán (Theo sơ đồ khối):

Hình thoi: Thể hiện thao tác so sánh

Hình chữ nhật: Thể hiện thao tác tính toán

Hình ovan Thể hiện thao tác

nhập xuất dữ liệu

Các mũi tên -> qui định trình tự thực hiện các thao tác

Trang 16

Nhập N và dãy a 1 ,…, a N

Trang 17

Qua định nghĩa trên ta thấy thuật toán có các tính chất sau:

*Tính dừng: Thuật toán phải kết thúc

sau một số hữu hạn lần các thao tác

*Tính xác định: Sau khi thực hiện các

thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định

để thực hiện tiếp theo

*Tính đúng đắn: Sau khi thuật toán kết thúc ta phải nhận được Output cần

tìm

Trang 18

III MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN

Ví dụ 1: Kiểm tra tính nguyên tố của một số

+ 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

Trang 19

 Thuật toán:a) Cách liệt kê:

Trang 20

Nhập N N=1 ?

Thông báo N là

số nguyên tố rồi kết thúc

i<-2 i>[ ]

i <- i + 1 N chia hết

cho i N<4?

Thông báo N không là

số nguyên tố rồi kết

đúng

Sai Sai

Trang 21

- Input: Dãy A gồm N số nguyên a1, a2, …, aN.

- Output: Dãy A được sắp xếp lại thành dãy

không giảm

Ý 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 thì ta đổi chỗ 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 22

- B6: Nếu i > M thì quay lại bước 3;

nhau;

Trang 23

Nhận xét: Sau mỗi lần đổi chỗ, giá trị lớn nhất của dãy A sẽ được

chuyển dần về cuối dãy và sau

lượt thứ nhất thì giá trị lớn nhất

xếp đúng vị trí là ở cuối dãy Và

sau mỗi lượt chỉ thực hiện với dãy

đã bỏ bớt số hạng cuối dãy (M M–1) Trong thuật toán trên, i là

<-biến chỉ số có giá trị nguyên từ 0 ->M+1

Trang 26

Ví dụ 3: Bài toán tìm kiếm

Cho dãy A gồm N số nguyên khác nhau: a 1 ,

a 2 , …, a N và một số nguyên k Cần biết có

hay không chỉ số i ( 1 ≤ i ≤ N) mà a i = k Nếu

có hãy cho biết chỉ số đó.

Tìm kiếm là một việc thường xảy ra trong cuộc sống

Cho dãy A gồm: 5, 7, 1, 4, 2, 9, 8, 11, 25, 51

Tìm i với ai = 2 ?

a)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 khác

nhau a1, a2, …, aN và số nguyên k;

- Output: Chỉ số i mà ai = k hoặc thông

báo không có số hạng nào của dãy A có

Trang 27

Ý tưởng:

- Tìm kiếm tuần tự là 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á cho đến khi hoặc gặp một số hạng bằng khoá

hoặc dãy đã được xét hết và không

có giá trị nào bằng khoá Trong

trường hợp thứ hai dãy A không có

số hạng nào bằng khoá.

Trang 28

Thuật toán:Cách liệt kê:

- B5: 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.

Trang 30

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

Search)

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

- Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, …, aN và một số nguyên k

- Output: Chỉ số i mà ai = k hoặc thông báo

không có số hạng nào của dãy A có giá trị bằng k.

 Ý tưởng: Sử dụng tính chất dãy A là dãy

tăng, ta tìm cách thu hẹp nhanh phạm vị tìm kiếm sau mỗi lần so sánh khoá với số hạng được chọn, ta chọn số hạng aGiữa ở " giữa dãy" để so sánh với k, trong đó Giưa

=[(N+1)/2] Khi đó:

Trang 31

- Nếu aGiưa = k thì Giưa là chỉ số cần tìm.

- Nếu aGiưa> k thì do dãy A là dãy đã sắp xếp nên việc tìm kiếm tiếp theo chỉ xét trên dãy a1, a2, …, aGiưa-1 .

- Nếu aGiưa < k thì thực hiện tìm kiếm

trên dãy aGiưa+1, aGiưa+2, …, aN.

Quá trình trên sẽ được lặp lại một số lần cho đến khi hoặc đã tìm thấy khoá k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng

Trang 33

- B5: Nếu aGiưa > k thì đặt Cuoi =

Giưa - 1, rồi chuyển đến bước 7;

- B6: Dau<- Giưa +1;

- B7: Nếu Dau > cuoi thì thông

báo dãy A không có số hạng nào

có giá trị bằng k, kết thúc;

- B8: Quay lại bước 3

Trang 34

Thông báo dãy A không

có số hạng có giá trị

Đ

S

Đ S

S Đ

Ngày đăng: 29/11/2021, 00:21

HÌNH ẢNH LIÊN QUAN

Bảng xếp loại học tập. - Bai 4 Bai toan va thuat toan
Bảng x ếp loại học tập (Trang 7)
Hình thoi:             Thể hiện thao tác so  sánh - Bai 4 Bai toan va thuat toan
Hình thoi Thể hiện thao tác so sánh (Trang 15)
Sơ đồ khối - Bai 4 Bai toan va thuat toan
Sơ đồ kh ối (Trang 34)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w