Tải bản đầy đủ (.doc) (10 trang)

Phân tích và tối ưu thuật toán kiểm tra tính nguyên tố của một số nguyên dương trong chương trình tin học 10

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (96.36 KB, 10 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT HẬU LỘC I

SÁNG KIẾN KINH NGHIỆM

PHÂN TÍCH VÀ TỐI ƯU THUẬT TOÁN
“KIỂM TRA TÍNH NGUYÊN TỐ CỦA MỘT SỐ NGUYÊN DƯƠNG”
TRONG CHƯƠNG TRÌNH TIN HỌC 10

Người thực hiện: Phạm Ngọc Cường
Chức vụ: Giáo viên
Đơn vị công tác: Trường THPT Hậu Lộc 1
SKKN thuộc lĩnh vực: Tin học

THANH HOÁ, NĂM 2017


MỤC LỤC
1. Mở đầu....................................................................................................Trang 1
1.1. Lí do chọn đề tài...................................................................................Trang 1
1.2. Mục đích nghiên cứu............................................................................Trang 1
1.3. Đối tượng nghiên cứu..........................................................................Trang 1
1.4. Phương pháp nghiên cứu......................................................................Trang 1
2. Nội dung..................................................................................................Trang 2
2.1. Cơ sở lí luận.........................................................................................Trang 2
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm..............Trang 2
2.3. Hiệu quả của sáng kiến kinh nghiệm...................................................Trang 2
2.3.1 Tối ưu thuật toán................................................................................Trang 4
2.3.2 Phân tích ý tưởng và thuật toán..........................................................Trang 5
2.4. Kết quả đạt được..................................................................................Trang 6


3. Kết luận, kiến nghị..................................................................................Trang 6
3.1 Kết luận.................................................................................................Trang 6
3.2. Kiến nghị..............................................................................................Trang 6
Tài liệu tham khảo.......................................................................................Trang 8


1. MỞ ĐẦU
1.1. Lí do chọn đề tài
Hiện nay, kiến thức Tin học lớp 10 nói chung và nội dung bài dạy “Bài
toán và thuật toán” (Bài 4 – trang 32 SGK) nói riêng gây không ít khó khăn
cho học sinh khi các em phải làm quen với những khái niệm rất mới, rất trừu
tượng so với các môn học mà các em đã từng học ở THSC. Phần lớn các em học
sinh đều tỏ ra hào hứng khi được học những môn học mới, những kiến thức mới
mà đặc biệt là kiến thức tin học đang giữ vai trò quan trọng trong đời sống xã
hội. Nhưng cũng chính các em lại tỏ ra chán nản, mệt mỏi sau khi học bài này
bởi những khái niệm, những kiến thức khá trừu tượng và khó hiểu, với những
học sinh học kém về khoa học tự nhiên lại càng không biết gì.
Từ mâu thuẫn đó đã gây nhiều khó khăn cho giáo viên, bởi đây là bài dạy
có thời lượng rất dài (4 tiêt). Vì vậy, vai trò của người giáo viên giúp học sinh
tiếp cận kiến thức một cách đơn giản, dễ hiểu và có hứng thú là cực kỳ quan
trọng. Không chỉ ảnh hưởng trực tiếp đến bài dạy mà còn ảnh hưởng đến tâm lí
học bài của học sinh trong suốt chương trình.
Sách giáo khoa Tin học 10 đã xuất bản được hơn 10 năm (từ năm 2006)
nhưng vẫn còn tồn tại một số nội dung, khía cạnh nhỏ mà theo tôi cần phân tích
rõ hơn và nên làm đơn giản hơn để học sinh dễ hiểu.
Đó là lí do khiến tôi chọn đề tài: “Phân tích và tối ưu thuật toán kiểm tra
tính nguyên tố của một số nguyên dương” (Ví dụ 1, mục 3, bài 4 – SGK tin
học 10).
Đây là vấn đề đã quá quen thuộc, học sinh đã được học ở THCS nhưng khi
học thuật toán thì hầu như đa số các em đều không hiểu bài. Thuật toán còn

rườm rà và những nội dung chưa được làm rõ. Bản thân đã dạy nhiều khóa lớp
10, khóa học nào tôi cũng đặt ra những câu hỏi tại sao? khi dạy nội dung này
nhưng các em đều không trả lời được. Ngay cả khi hỏi một số đồng nghiệp cũng
không ai giải thích cho học sinh hiểu.
Từ đó, tôi nhận thấy đề tài mà mình đưa ra là rất cần thiết khi Nhà xuất
chưa có những chỉnh lí phù hợp.
1.2. Mục đích nghiên cứu.
Căn cứ vào các lí do trên, nội dung đề tài nhằm mục đích giúp giáo viên
dạy hiệu quả hơn, học sinh hiểu bài hơn khi học bài Bài toán và thuật toán, cụ
thể là thuật toán “Kiểm tra tính nguyên tố của một số nguyên dương” trong
chương trình tin học lớp 10. Từ đó tạo hứng thú, say mê môn học, không còn
cảm giác nhàm chán, mệt mỏi vì đây là bài dạy có thời lượng rất dài (4 tiết) và
kiến thức tương đối khó đối với học sinh lớp 10.
1.3. Đối tượng nghiên cứu
Ý tưởng và thuật toán Kiểm tra tính nguyên tố của một số nguyên dương
trong chương trình SGK Tin học lớp 10.
1.4. Phương pháp nghiên cứu
- PP nghiên cứu xây dựng cơ sở lý thuyết
- PP điều tra khảo sát thực tế, thu thập thông tin.
1


2. NỘI DUNG
2.1. Cơ sở lí luận
- Dựa trên Sách giáo khoa Tin học 10 để xây dựng cơ sở lí luận
- Dựa trên các sách tài liệu tham khảo và Internet để kiểm chứng.
2.2. Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm
* Đặc điểm tình hình của nhà trường:
Trường THPT Hậu Lộc I có bề dày kinh nghiệm và thành tích
trong công tác giảng dạy các đội tuyển học sinh giỏi cấp tỉnh cũng như ôn thi đại

học. Đội ngũ giáo viên nhiệt tình, tâm huyết với công tác chuyên môn còn các
em học sinh đa phần là ngoan, chịu khó, một bộ phận mũi nhọn có tư duy tốt. Là
trường có chất lượng giáo dục đứng đầu trong huyện và tốp đầu trong tỉnh nên
chất lượng đầu vào khá tốt.
* Thực trạng của vấn đề “Phân tích và tối ưu thuật toán kiểm tra tính
nguyên tố của một số nguyên dương” tại trường THPT Hậu Lộc I là:
- Về kiến thức: Học sinh mới bắt đầu làm quen với các khái niệm trong Tin
học, mới đầu làm quen với thuật toán nên còn rất bỡ ngỡ và mơ hồ.
- Về kỹ năng: Đây là ví dụ đầu tiên về xây dựng thuật toán giải bài toán nên
học sinh chưa có kỹ năng về hình thành ý tưởng và xây dựng thuật toán.
- Trong quá trình giảng dạy, tôi thường xuyên đặt ra những câu hỏi yêu cầu
học sinh phải tự vận động suy nghĩ tìm ra các cách giải khác nhau cho 1 bài toán
cụ thể, từ đó chính học sinh sẽ lựa chọn thuật toán tối ưu nhất. Phân tích, giải
thích cho học sinh hiểu
- Thực tế, kết quả khảo sát chất lượng Tin học 10 đầu năm của hai lớp
10A3, 10A4
Số
bài
kiểm
tra

SL

%

SL

%

SL


%

SL

%

SL

10A3

47

17

36,2

12

25,6

10

21,3

2

4,3

0


0

10A4

39

8

20,5

10

25,7

16

41

5

12,8

0

0

Lớp

Giỏi


Khá

Trung
bình

Yếu

Kém
%

2.3. Giải pháp thực hiện
Xét Ví dụ 1: Kiểm tra tính nguyên tố của một số nguyên dương (Mục 3, bài
4 – SGK Tin học 10).
•Xác định bài toán:
- Input: N là một số nguyên dương;
- Output: “N là số nguyên tố” hoặc “N không là số nguyên tố”

2


•Ý tưởng: Ta nhớ lại định nghĩa: Một số nguyên dương N là số nguyên tố
nếu nó có đúng hai ước số khác nhau là 1 và chính nó. Từ định nghĩa đó, ta suy
ra:
- 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 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ố.
•Thuật toán
a) Cách liệt kê:

Bước 1: Nhập số nguyên dương N;
Bước 2: Nếu N = 1 thì thông báo N không nguyên tố rồi kết thúc;
Bước 3: Nếu N < 4 thì thông báo N là nguyên tố rồi kết thúc;
Bước 4: i ¬ 2;
ú thì thông báo N là số nguyên tố rồi kết thúc;
Bước 5: Nếu i > ê
ê Nû
ú
ë
Bước 6: 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;
Bước 7: i ¬ i+1 rồi quay lại bước 5
b) Sơ đồ khối
Nhập N

Đúng

N = 1?
Sai
Đúng

N < 4?
Sai

i2

i >[ N ] ?
ii+1
Sai

Đúng


Thông báo N
là nguyên tố
rồi kết thúc

Sai

N chia hết
cho i ?
Đúng

Thông báo N
Không là nguyên tố
rồi kết thúc

3


2.3.1 Tối ưu thuật toán
Tại bước 3 : Nếu N < 4 thì thông báo N là số nguyên tố rồi kết thúc
Với N là số nguyên dương thì N < 4 nhận 2 giá trị N = 2 và N = 3 (N = 1 đã
xét ở bước 1). Đây là 2 số nguyên tố, tuy nhiên nếu bỏ đi bước 3 thì thuật toán
vẫn kiểm tra được N là số nguyên tố khi nhận giá trị là 2 hoặc 3.
Bởi tại bước 4 : i<- 2 ; và bước 5 : nếu i > căn N thì thông báo N là số
nguyên tố rồi kết thúc ;
Như vậy, nếu N = 2 hoặc N = 3 thì i = 2 luôn lớn hơn căn của 2 và 3. Và
theo bước 5 hiển nhiên N là số nguyên tố.
Vậy Sách giáo khoa đưa vào bước 3 là thừa, không những thế làm cho học
sinh lúng túng và đặt ra câu hỏi tại sao lại chỉ xét N < 4 mà không xét với số
khác

Sau khi bỏ đi bước 3, thuật toán kiểm tra tính nguyên tố của một số
nguyên dương N sẽ là :
Bước 1: Nhập số nguyên dương N;
Bước 2: Nếu N = 1 thì thông báo N không nguyên tố rồi kết thúc;
Bước 3: i ¬ 2;
N ú thì thông báo N là số nguyên tố rồi kết thúc;
Bước 4: Nếu i > ê
ê
ë ú
û
Bước 5: 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;
Bước 6: i ¬ i+1 rồi quay lại bước 5
Nhập N

Đúng

N = 1?
Sai

i2

i>
ii+1
Sai

[ N] ?

Đúng

Thông báo N

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

Sai

N chia hết
cho i ?
Đúng

Thông báo N
Không là nguyên tố
rồi kết thúc

4


Thuật toán này luôn đúng với mọi số N nguyên dương
2.3.2. Phân tích ý tưởng và thuật toán
Tại bước 4 : Nếu i > phần nguyên căn N thì N là số nguyên tố rồi kết
thúc
N úmà không xét 1
Nếu giáo viên đặt câu hỏi : Tại sao lại xét i từ 2 đến ê
ê
ë ú
û
đoạn khác thì chắc hẳn rất nhiều học sinh không trả lời được (thậm chí là học
sinh học tốt khoa học tự nhiên). Vậy bản chất của ý tưởng xét i trên đoạn này
xuất phát từ đâu ?

Ta xét 1 số giá trị của N:

N = 6 : có các ước : 1

2

3

6

N = 12 : có các ước :

1

2

3

N = 13 : có các ước :

1

13

Ta nhận thấy :

6 = 1*6 = 2*3

4

6


12

12 = 1*12 = 2*6 = 3*4
13 = 1*13
Tức là nếu N có ước là a thì sẽ có ước là b để a*b = N
Thông thường học sinh hay tìm các ước của N trong đoạn từ 1 đến N rồi
sau đó đếm xem N có bao nhiêu ước. Nhưng nếu làm như vậy sẽ lãng phí rất
nhiều thời gian, để tối ưu trong việc tìm các ước của N ta tìm 1 giá trị x trong
1;xù
đoạn từ 1 đến N thỏa mãn : nếu trong đoạn é
ë ûcó ước là a thì tương ứng trong
đoạn [ x; N ] có ước là b để a*b = N. Và trong đoạn 1-x có bao nhiêu ước thì
trong đoạn x-N cũng có bấy nhiêu ước.
Như vậy, ta sẽ giảm được việc tìm ước của N trên đoạn [ x; N ]
Vậy giá trị x là bao nhiêu ?
1;xù
Giả sử trong đoạn é
ë ûcó ước là a thì trong đoạn [ x; N ] có ước là b và a*b =
N. Tăng giá trị a dần đến x đồng thời giảm giá trị b dần về x, và tại vị trí x thì a
= b = N căn N. Do N là số nguyên dương và các ước của N cũng là số nguyên
ú.
dương nên a = b = ê
ê Nû
ú
ë

Xét một số giá trị cụ thể của N
N ú = 3 ta chỉ tìm các ước của N từ 1 đến 3 mà không cần
Với N = 12 : ê
ê

ë ú
û
tìm đến 12 cũng kết luận được N không phải là số nguyên tố

5



Với N = 17 : ê
ê
ú = 5 ta chỉ cần tìm các ước của N từ 1 đến 5 mà không
ë û
cần tìm đến 17 cũng kết luận được N là số nguyên tố.

2.4. Kết quả đạt được
Thông qua tiến hành nghiên cứu trên lớp 10A3 và 10A4 với đề tài
“Phân tích và tối ưu thuật toán kiểm tra tính nguyên tố của một số nguyên
dương” tôi đã thu được một số kết quả đó là đa số các em đã hiểu được bản chất
vấn đề, hứng thú hơn với môn học và vận dụng vào việc hình thành ý tưởng, xây
dựng thuật toán để giải một số dạng toán khác. Do đó kết quả học tập của các
em đạt được là rất tốt
Để chứng minh tôi xin đưa ra một số kết quả sau:
Kết quả khảo sát chất lượng môn Tin học lớp 10A3 và 10A4
Số
bài
kiểm
tra

SL


%

SL

%

SL

%

SL

%

SL

10A3

47

17

36,2

12

25,6

10


21,3

2

4,3

0

0

10A4

39

8

20,5

10

25,7

16

41

5

12,8


0

0

Lớp

Giỏi

Khá

Trung
bình

Yếu

Kém
%

3. KẾT LUẬN VÀ KIẾN NGHỊ
3.1. Kết luận
Đối với giáo viên, đề tài này sẽ giúp giáo viên dạy học hiệu quả hơn khi
mà học sinh ban đầu phải tiếp cận với kiến thức khá mới và trừu tượng, gây
được nhiều hứng thú học tập cho học sinh, làm cho bài dạy không còn nhàm
chán do thời lượng quá dài với nhiều thuật toán khó.
Từ kết quả nghiên cứu, tôi đã rút ra các bài học kinh nghiệm sau: để việc
dạy học đạt kết quả cao, trước hết phải tạo được hứng thú cho học sinh. Bằng
cách cùng các em tìm tòi và xây dựng thuật toán giải chứ không sử dụng ngay
thuật toán đã trình bày sẵn trong SGK, tránh tình trạng để các em tiếp thu bài
học một cách thụ động. Sẵn sàng tối ưu những thuật toán đã có (ngay cả trong
SGK) nếu thuật toán đó vẫn đảm bảo đúng để các em cảm thấy hứng thú hơn,

chủ động tìm tòi sáng tạo hơn khi xây dựng thuật toán.
Giúp giáo viên không ngừng tìm tòi, sáng tạo để nâng cao trình độ
chuyên môn và nghiệp vụ sư phạm cho bản thân.
3.2. Kiến nghị
Không
6


Tôi xin chân thành cảm ơn!
XÁC NHẬN CỦA THỦ TRƯỞNG
ĐƠN VỊ

Thanh Hóa, ngày 9 tháng 6 năm 2017.
Tôi xin cam đoan đây là SKKN của mình
viết, không sao chép nội dung của người
khác.

Phạm Ngọc Cường

7


TÀI LIỆU THAM KHẢO
1. Sách giáo khoa Tin học 10 – Nhà xuất bản Giáo dục năm 2006.
2. Tham khảo các thuật toán kiểm tra tính nguyên tố của một số nguyên dương
trên Internet.

8




×