BÀI 4 BÀI TOÁN VÀ THUẬT TOÁN Thời gian 5 tiết... Thông báo N không là số nguyên tố rồi kết thúc... THU ẬT TOÁN SẮP XẾPHãy tìm cách sắp xếp học sinh đứng chào cờ hình a theo thứ tự thấp
Trang 2BÀI 4
BÀI TOÁN VÀ THUẬT TOÁN
Thời gian 5 tiết
Trang 3KIỂM TRA TÍNH NGUYÊN TỐ CỦA MỘT SỐ
NGUYÊN DƯƠNG
@ Xác định bài toán
* INPUT : Số nguyên dương N;
* OUTPUT : “ N là số nguyên tố “ hoặc “ N không là số nguyên tố “
@ Ý tưởng
* 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ố;
* 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ố;
Trang 4THUẬT TOÁN
B1: Nhập s ố nguyên dương N ;
B2: N ếu N = 1 thì thông báo N không nguyên tố rồi kết thúc ;
B3: Nếu N < 4 th ì thông báo N là nguyên tố rồi kết thúc ;
B4: i 2;
Cách 1 : Liệt kê các bước
KIỂM TRA TÍNH NGUYÊN TỐ CỦA MỘT SỐ
NGUYÊN DƯƠNG
B5: N ếu i > th N ì thông báo N là nguyên tố rồi 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 bước 5 ;
Trang 5i ?
i i +1
Thông báo N là số nguyên tố rồi kết thúc.
Thông báo N không
là số nguyên tố rồi kết thúc
§ S
S
§
S S
§
§
SƠ ĐỒ THUẬT TOÁN
KIỂM TRA TÍNH NGUYÊN
TỐ CỦA MỘT SỐ NGUYÊN
DƯƠNG
Trang 6i 2 3 4 5 N/i 29/2 29/3 29/4 29/5
Chia hết
không ? Không Không Không Không
Chia hết Không
Chia hết
không ?
45/3 45/2
N/i
3 2
nguyên tố.
29 là số nguyên tố
Trường hợp 2: N = 29 ([ 29 ] = 5)
Trường hợp 1: N = 45 ([ 45 ] = 6)
MÔ PHỎNG THUẬT TOÁN KIỂM TRA TÍNH NGUYÊN TỐ CỦA MỘT SỐ
NGUYÊN DƯƠNG
Trang 7THU Ậ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 8SẮ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 a1, a2,…,aN
* OUTPUT : Dãy A được sắp xếp thành một 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 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 9B6: N ếu i > M thì quay lại bước 3;
B7: N ếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau ;
B8: Quay l ại bước 5.
Trang 11Với N = 6 và dãy A gồm 6 số hạng sau : 3 5 9 8 1 7
Trang 12Hai bạn chó (Bi và Bo) chơi trốn tìm, Bo đã trốn vào trong những chiếc mũ của ông già Noel trên Hãy chỉ ra cách tìm chiếc mũ mà Bo đang trốn ? Cho biết có những cách nào ?
Bo 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 Bo nên chỉ tìm hai
mũ sau thôi !
Trang 13Lầ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
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ị k
Trang 164
3
2 1
I
51 25
11 8
9 2
4 1
7 5
Trang 18TÌ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 ( agiua), khi đó chỉ xảy ra một trong ba trường hợp :
Nếu agiua = k tìm được chỉ số, kết thúc;
Nếu agiua > 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ừ a1 agiua-1;
Nếu agiua < 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ừ agiua+1 an;
Quá trình trên được lặp đi lặp lại cho đến khi tìm được Output
Trang 19B1: Nhập N, các số hạng a1, a2,…, aN và giá trị khoá k;
B2: Dau 1, Cuoi N;
B3: Giua ;
B4: Nếu agiua = k thì thông báo chỉ số Giua, rồi kết thúc;
B5: Nếu agiua > k thì đặt Cuoi = Giua – 1, rồi chuyển đến B7; B6: Dau Giua +1;
Cuoi Dau
B7: Nếu Dau > Cuoi 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;
B8: Quay lại B3;
Trang 20SƠ ĐỒ THUẬT TOÁN
TÌM KIẾM NHỊ PHÂN
Trang 2110 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 : agiua là a8 = 30; 30 > 21
Lượt thứ ba : agiua là a6 = 21; 21= 21
Vậy số cần tìm là i = 6.
22 21
6
21
MÔ PHỎNG THUẬT TOÁN TÌM KIẾM NHỊ PHÂN
Trang 23Thực hiện tháng 8 năm 2006