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

Bài 4. Việc và thuật toán

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

a, Khái niệm

- bài toán là một việc nào đó mà con người muốn máy tính thực hiện

- các yếu tố của một bài xích toán:

+ Input: tin tức đã biết, tin tức đưa vào sản phẩm tính

+ Output: thông tin cần tìm, thông tin lấy ra từ máy tính

b. Ví dụ

+ kiếm tìm USCLN của 2 số nguyên dương

+ search số lớn nhất trong 3 số nguyên dương a,b,c

+ tra cứu nghiệm của phương trình bậc nhất: ax + b = 0 (a≠0)

+ ...

Bạn đang xem: Bài toán và thuật toán

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

a. Khái niệm

Thuật toán để giải một việc là:

+ Một hàng hữu hạn các làm việc (tính dừng)

+ Các thao tác được tiến hành theo một trình tự xác định (tính xác định)

+ sau khi thực hiện hoàn thành dãy các thao tác đó ta nhận được output đầu ra của vấn đề (tính đúng đắn)

b. Giải pháp biểu diễn thuật toán

Có 2 cách để biểu diễn thuật toán:

- bí quyết dùng phương pháp liệt kê: Nêu ra tuần tự các làm việc cần tiến hành

+ Ví dụ:Cho vấn đề Tìm nghiệm của phương trình bậc 2: ax2 + bx + c = 0 (a≠0)?

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

Input: các số thực a, b, c

Output: các số thực x thỏa mãn ax2 + bx + c = 0 (a≠0)

+ Thuật toán:

Bước 1: Nhập a, b, c (a≠0)

Bước 2: Tính Δ = b2 – 4ac

Bước 3: Nếu Δ>0 thì phương trình tất cả 2 nghiệm là

*

Bước 4: Nếu Δ = 0 thì phương trình có nghiệm kép

*

rồi kết thúc thuật toán. Nếu ko chuyển sang bước tiếp theo

Bước 5: Kết luận phương trình vô nghiệm rồi kết thúc

- bí quyết dùng sơ đồ khối

+ Hình thoi: thể hiện thao tác so sánh;

*

+ Hình chữ nhật: thể hiện những phép tính toán;

*

+ Hình ô van: thể hiện thao tác nhập, xuất dữ liệu;

*

+ những mũi tên: qui định trình tự thực hiện các thao tác.

*

3. Một số ví dụ về thuật toán

Bài toán 1: Kiểm tra tính nguyên tố

1. Xác định bài bác toán

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

- Output:

+ N là số nguyên tố hoặc

+ N ko là số nguyên tố

- Định nghĩa: "Một số nguyên dương N là số nguyên tố nếu nó chỉ bao gồm đúng hai ước là một và N"

- Tính chất:

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

+ Nếu 1 1 của N

+ Nếu i

*

Hình 1. Sơ đồ khối thuật toán kiểm tra tính nguyên tố của một số nguyên dương N​

Lưu ý:Nếu N ≥ 4 và không tồn tại ước trong phạm vi từ 2 đến phần nguyên căn bậc 2 của N thì N là số nguyên tố

Bài toán 2: Sắp xếp bằng phương pháp tráo đổi

1. Xác định bài bác toán

- Input: dãy A gồm N số nguyên a1, a2,…,an

Ví dụ : hàng A gồm những số nguyên: 2 4 8 7 1 5

- Output: dãy A được sắp xếp thành hàng không giảm

dãy A sau khi sắp xếp: 1 2 4 5 7 8

2. Ý tưởng

- Với mỗi cặp số hạng đứng liền kề vào dãy, nếu số trước > số sau ta đổi chỗ chúng mang đến nhau.(Các số lớn sẽ được đẩy dần về vị trí xác định cuối dãy)

- Việc này lặp lại nhiều lượt, mỗi lượt tiến hành nhiều lần đối chiếu cho đến khi không có sự đổi chỗ nào xảy ra nữa

3. Xây dựng thuật toán

- Bước 1. Nhập N, các số hạng a1, a2,…,an;

- Bước 2. Đầu tiên gọi M là số số hạng cần so sánh, vậy M sẽ chứa giá trị của N:

- Bước 3. Nếu số số hạng cần so sánh số phép so sánh M: đã hoàn tất M số phép so sánh của lượt này. Lặp lại bước 3, bắt đầu lượt kế (với số số hạng cần đối chiếu mới đó là M đã giảm 1 ở bước 4);

- Bước 7. So sánh 2 phần tử ở lần thứ i là ai với ai+1. Nếu ai > ai+1 thì tráo đổi 2 phần tử này;

- Bước 8. Cù lại bước 5

a) Đối chiếu, hình thành những bước liệt kê

*

b) Sơ đồ khối

*

Hình 2. Sơ đồ khối thuật toán sắp xếp bằng phương pháp tráo đổi​

Bài toán 3: search kiếm tuần tự

1. Xác định bài bác toán

- input : hàng A gồm N số nguyên không giống nhau a1, a2,…,an và một số nguyên k (khóa)

Ví dụ : hàng A gồm những số nguyên: 5 7 1 4 2 9 8 11 25 51 . Và k = 2 (k = 6)

- Output: Vị trí i mà lại ai = k hoặc thông báo không tìm thấy k trong dãy. Vị trí của 2 trong dãy là 5(không search thấy 6)

2. Ý tưởng

Tìm kiếm tuần tự được thực hiện một biện pháp tự nhiên: Lần lượt đi từ số hạng thứ nhất, ta đối chiếu giá trị số hạng đang xét với khóa mang đến đến lúc gặp một số hạng bằng khóa hoặc dãy đã được xét hết mà không kiếm thấy giá bán trị của khóa trên dãy.

Xem thêm: Giá Thuê Sân Bóng Đá Tại Tphcm, Giá Thuê Sân Bóng Đá Cỏ Nhân Tạo Tại Tphcm

3. Xây dựng thuật toán

a) giải pháp liệt kê

Bước 1: Nhập N, những số hạng a1, a2,…, aN cùng giá trị khoá k;

Bước 2: i ← 1;

Bước 3: Nếu ai = k thì thông tin chỉ số i, rồi kết thúc;

Bước 4: i ← i+1

Bước 5: Nếu i > N thì thông báo dãy A không tồn tại số hạng nào có mức giá trị bằng k, rồi kết thúc;

Bước 6: tảo lại bước 3;

b) Sơ đồ khối

*

Hình 3. Sơ đồ khối thuật toán search kiếm tuần tự​

Bài toán 4: kiếm tìm kiếm nhị phân

1. Xác định bài bác toán

- Input: dãy A là hàng tăng gồm N số nguyên không giống nhau a1, a2,…,an và một số nguyên k.

Ví dụ: dãy A gồm những số nguyên: 2 4 5 6 9 21 22 30 31 33. Và k = 21 (k = 25)

- output đầu ra : Vị trí i cơ mà ai = k hoặc thông báo không tìm thấy k trong dãy. Vị trí của 21 trong dãy là 6 (không tìm thấy 25)

2. Ý tưởng

- Sử dụng tính chất hàng A đã sắp xếp tăng, ta tìm phương pháp thu hẹp nhanh vùng search kiếm bằng cách đối chiếu k với số hạng ở giữa phạm vi tìm kiếm kiếm (agiữa), lúc đó chỉ xảy ra một trong ba trường hợp:

+ Nếu agiữa= k thì kiếm tìm được chỉ số, kết thúc;

+ Nếu agiữa > k thì việc tra cứu kiếm thu hẹp chỉ xét từ ađầu (phạm vi) → agiữa - 1;

+ Nếu agiữa giữa + 1 → acuối (phạm vi).

- quá trình trên được lặp lại đến đến lúc tìm thấy khóa k trên dãy A hoặc phạm vi tìm kiếm kiếm bằng rỗng.

3. Xây dựng thuật toán

a) cách liệt kê

*

b) Sơ đồ khối

*

Hình 4. Sơ đồ khối thuật toán kiếm tìm kiếm tuần tự​