1. Trang chủ
  2. » Giáo án - Bài giảng

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

10 571 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 143,5 KB

Nội dung

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 1

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Lớp

Số

bài

kiểm

tra

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ố”

Trang 5

•Ý 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;

Bước 5: Nếu i > ê Nú

ê ú

ë û thì thông báo N là số nguyên tố rồi kết thúc;

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

3

Nhập N

i > ?

N chia hết cho i ?

i  2

N = 1?

[ ]N

Thông báo N

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

i  i + 1

Đúng

Đúng

Sai

Sai

Đúng

Sai

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

N < 4?

Đúng

Sai

Trang 6

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;

Bước 4: Nếu i > ê Nú

ê ú

ë û thì thông báo N là số nguyên tố rồi kết thúc;

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

i > ?

N chia hết cho i ?

i  2

N = 1?

[ ]N

Thông báo N

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

i  i + 1

Đúng

Đúng

Sai

Sai

Đúng

Sai

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

Trang 7

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ếu giáo viên đặt câu hỏi : Tại sao lại xét i từ 2 đến ê Nú

ê ú

ë û mà không xét 1

đ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 4 6 12

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

Ta nhận thấy : 6 = 1*6 = 2*3

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 đoạn từ 1 đến N thỏa mãn : nếu trong đoạn é ùë û1;x 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 ?

Giả sử trong đoạn é ùë û1;x 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

Với N = 12 : ê Nú

ê ú

ë û = 3 ta chỉ tìm các ước của N từ 1 đến 3 mà không cần

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

5

Trang 8

Với N = 17 : ê Nú

ê ú

ë û = 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

Lớp

Số

bài

kiểm

tra

10A3 47 17 36,2 12 25,6 10 21,3 2 4,3 0 0

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

Trang 9

Tôi xin chân thành cảm ơn!

XÁC NHẬN CỦA THỦ TRƯỞNG

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

Trang 10

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

Ngày đăng: 16/08/2017, 14:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w