Nâng cao kĩ năng lập trình giải các bài toán về số nguyên tố cho học sinh lớp 11

26 25 0
Nâng cao kĩ năng lập trình giải các bài toán về số nguyên tố cho học sinh lớp 11

Đ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

SỞ GIÁO DỤC ĐÀO TẠO THANH HÓA TRƯỜNG THPT HOẰNG HÓA SÁNG KIẾN KINH NGHIỆM TÊN ĐỀ TÀI NÂNG CAO KĨ NĂNG LẬP TRÌNH GIẢI CÁC BÀI TỐN VỀ SỐ NGUYÊN TỐ CHO HỌC SINH LỚP 11 Người thực : Nguyễn Thị Hòa Chức vụ: Giáo viên SKKN thuộc lĩnh vực : Tin học THANH HÓA, NĂM 2021 MỤC LỤC Trang MỞ ĐẦU 1.1.Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm 2.1.1 Khái niệm số nguyên tố 2.1.2.Những lưu ý số nguyên tố .2 2.1.3 Các phương pháp kiểm tra số nguyên tố 2.1.3.1 Phương pháp kiểm tra số nguyên tố theo định nghĩa 2.1.3.2 Phương pháp sử dụngthuật toán Sàng nguyên tố Eratosthenes 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm .4 2.3 Các sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề .5 2.3.1.Hướng dẫn học sinh số tập sử dụng hàm kiểm tra số nguyên tố theo định nghĩa 2.3.2.Hướng dẫn học sinh số tập sử dụng thuật toán Sàng nguyên tố Eratosthenes 10 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường 15 KẾT LUẬN, KIẾN NGHỊ 3.1 Kết luận … 19 3.2 Kiến nghị 20 MỞ ĐẦU 1.1 Lí chọn đề tài Chương trình tin học lớp 11 nội dung tương đối khó với đa số học sinh.Các em làm quen với thuật ngữmới ngơn ngữ lập trình, loại cấu trúc liệu, ứng dụngngơn ngữ lập trình để giải toán thực tế sống.Trong đó, có nhiều tốn liên quan tới tậpvề tư toán học : số nguyên tố, số phương, số hồn hảo, số đẹp, số phong phú….đem lại hứng thú học tập cho học sinh, đặc biệt với đối tượng học sinh khá, giỏi Từ lâu, toán số học làm say mê nhiều người yêu toán học người lập trình viên Một tốn sốhọc tốn số nguntố Đây tốn trung tâm số học, chiếm mấtkhoảng thời gian hàng nghìn năm nhà tốn học thời đại Những bàitoán số nguyên tố ln có mặt thi, đề thi chọn họcsinh giỏi tất cấp học hầu giới Còn thực tế ngồi xã hội số ngun tố áp dụng rộng rãi hệ mật mã công nghệ thơng tin, làm tăng tính bảo mật qn sự, ngoại giao Khi lập trình giải tốn số ngun tố địi hỏi học sinh cần có kiến thức tốn học, đồng thời phải có khả tư phân tích u cầu kĩ sử dụng thành thạongơn ngữ lập trình Trong q trình giảng dạy nhiều năm, tơi nhận thấy số tốn lập trình liên quan tới số nguyên tố có nhiều ứng dụng thực tế, đồng thời rèn luyện kĩ lập trình khả tư cho học sinh.Do đó,tơi mạnh dạn đề xuất sáng kiến kinh nghiệm :“Nâng cao kĩ lập trình giải tốn số ngun tố cho học sinh lớp 11” 1.2 Mục đích nghiên cứu - Nghiêncứu cáccác toán, phương pháp kiểm tra số ngun tố -Ứng dụng lập trìnhpascal vào tốn cụ thể để giải vấn đề - Giúp học sinh biết cách viết chương trình có cấu trúc để giải tốn máy tính 1.3 Đối tượng nghiên cứu -Các khái niệm bản, tính chất số nguyên tố - Các phương pháp kiểm tra số nguyên tố - Một số toán cụ thể thực tế có áp dụng số nguyên tố - Tìm hiểu khả vận dụng đối tượng học sinh lớp dạy lập trình tốn để có phương pháp giảng dạy phù hợp 1.4 Phương pháp nghiên cứu - Tìm hiểu khái niệm, định nghĩa, tính chất số nguyên tố tốn học - Tìm hiểu số thuật tốn kiểm tra số nguyên tố - Chọn lọc số tập điển hìnhliên quan tới số nguyên tốđể minh họa, hướng dẫn học sinh luyện tập thực hành - Thu thập thông tin kết học tập khả lập trình số tốn liên quan tới số nguyên tố số lớp giảng dạy để có so sánh, đối chiếu thực nghiệm kết thực đề tài - Tham khảo số tư liệu internet tài liệu đồng nghiệp NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm 2.1.1 Khái niệm số nguyên tố: Một số tự nhiên lớn khơng có ước tự nhiên khác ngồi 1và gọi số ngun tố.Đơn giản hiểu rằng: Với số tự nhiên lớn 1, chữ số thân khơng chiahết cho số khác Một số tự nhiên lớn có nhiều hai ước số (1 nó)gọi hợp số Ước số tự nhiên khác số tự nhiên gọi ước thực Từ ta có định nghĩa khác số nguyên tố: số tự nhiên lớn đượcgọi số ngun tố khơng có ước thực Ví dụ 2; 3; 5; 7; 11; 13; số nguyên tố 4; 6; 8; 9; 10 ; 12; hợp số 2.1.2 Những lưu ý số nguyên tố: - Số số số nguyên tố hợp số - Số vừa số nguyên tố nhỏ vừa số nguyên tố chẵn - Không thể giới hạn số lượng số nguyên tố, hay tập hợp số nguyên tố vô hạn -Hai số ngun tố nhân với tích chúng khơng thể số phương - Ước tự nhiên nhỏ (khác số 1) số tự nhiên số nguyên tố -Ước bé (là số dương khác 1) hợp số a số ngun tố khơng vượt q bậc hai số a - Một số số nguyên tố đặc biệt : + Số nguyên tố nhỏ có chữ số số 2; + Số nguyên tố nhỏ có chữ số số 11; + Số nguyên tố nhỏ có chữ số số 101; + Số nguyên tố lớn có chữ số số 97; + Số nguyên tố lớn có chữ số 997 2.1.3 Các phương pháp kiểm tra số nguyên tố: 2.1.3.1 Phương pháp kiểm tra số nguyên tố theo định nghĩa: Ý tưởng thuật toán:Thuật toán kiểm tra số nguyên dương x có phải nguyên tố kiểm tra x = 1thì khơng phải số ngun tố, x>1 kiểm tra tất số nguyên từ đến phần nguyên bậc hai x (trong Pascal tức làhàm trunc(sqrt(x)) ), x không chia hết cho số khoảng x số nguyên tố Ngược lại x chia hết cho số khoảng x số nguyên tố Với phương pháp ta dùng hàm để kiểm tra sau : function ngto(x: longint): boolean; var i: longint; begin if x=1 then begin ngto := false; break; end; if x>1 then begin ngto:= true; for i:= to trunc(sqrt(x)) if x mod i = then begin ngto:= false; break; end; end; end; 2.1.3.2 Phương pháp sử dụngthuật toán Sàng nguyên tố Eratosthenes: Ý tưởng thuật toán:Sàng nguyên tố thuật tốn Eratosthenes đưa để tìm số ngun tố Thuật tốn thích hợp cho tốn tìm tất số nguyên tố khoảng [a, b] mà đặc biệt hiệu khoảng cách a, b lớn Thuật toán thực cách lặp lại đánh dấu tổng hợp (nghĩa là số nguyên tố) bội số số nguyên tố, bắt đầu số nguyên tố đầu tiên, Các bội số số nguyên tố cho tạo thành chuỗi số số ngun tố đó, với chênh lệch khơng đổi chúng số nguyên tố Đây điểm khác biệt sàng với việc sử dụng phân chia thử nghiệm để kiểm tra số ứng cử viên để phân chia theo nguyên tố Nguyên lí hoạt động sàng vào lần duyệt, ta chọn số nguyên tố loại khỏi sàng tất bội số nguyên tố mà lớn số Sau duyệt xong, số lại sàng số ngun tố.Để tìm số khơng phải số ngun tố cần dựa vào số nguyên tố ban đầu, số số nguyên tố số bội chắn số nguyên tố, số số nguyên tố tất số bội bị loại bỏ, số giữ lại số nguyên tố Ban đầu, nhà toán học Eratosthenes sau tìm thuật tốn, lấy cọ ghi tất số từ 100 Ông chọc thủng hợp số giữ nguyên số nguyên tố Bảng số nguyên tố lại trơng giống sàng Do đó, có tên sàng Eratosthenes Để tìm số ngun tố nhỏ số tự nhiên N sàng Eratosthenes, ta làm sau:  Bước 1: Tạo danh sách số tự nhiên liên tiếp từ đến n: (2, 3, 4, , n)  Bước 2: Giả sử tất số danh sách số nguyên tố Trong đó, p = số nguyên tố  Bước 3: Tất bội số p: 2p, 3p, 4p, bị đánh dấu khơng phải số ngun tố  Bước 4: Tìm số cịn lại danh sách mà chưa bị đánh dấu phải lớn p nhỏ bậc n Nếu khơng cịn số nào, dừng tìm kiếm Ngược lại, gán cho p giá trị số nguyên tố quay lại bước Khi giải thuật kết thúc, tất số chưa bị đánh dấu danh sách số nguyên tố cần tìm Với phương pháp ta sử dụng mảng kt có phần tử liệu kiểu Boolean sau dùng thủ tục để sàng lọc mảng chiều sau : procedure sangnt; begin fillchar(kt, sizeof(kt), true); kt[1]:= false; for i:=2 to trunc(sqrt(maxn)) if kt[i] then for j:= to maxn div i kt[i*j]:= false; end; 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Trên sở nhiều năm phân công giảng dạy khối lớp 11, trường THPT Hoằng Hóa 2, tơi lưu lại kết học tập tiến học sinh năm học số lớp để có đối chiếu rút kinh nghiệm Bảng số liệu kết đạt sử dụng kiến thức liên quan tới lập trình giải tập số nguyên tốcủa học sinh lớp 11 năm học 2019 - 2020khi chưa thực đề tài: STT Lớp 11A2 11A3 11A10 Sĩ số 44 42 48 Đạt yêu cầu Không đạt yêu cầu 56% 44% 68.5% 31.5% 78% 22% * Ưu điểm: + Đa số học sinh hiểu khái niệm số nguyên tố + Một số em học sinh biết cách xây dựng hàm để kiểm tra số nguyên tố * Nhược điểm: + Một số học sinh chưa biết cách sử dụng phương pháp kiểm tra số nguyên tố Pascal phù hợp với toán cụ thể + Các tập lập trình liên quan tới số nguyên tố phần lớn học sinh yếu, không làm được, số học sinh giỏi hứng thú làm 2.3 Các sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề: 2.3.1 Hướng dẫn học sinh số tập sử dụng hàm kiểm tra số nguyên tố theo định nghĩa: Bài tập 1:Kiểm tra nguyên tố Kiểm tra số nguyên dương N có phải số nguyên tố(2≤n≤106) Dữ liệu vào: Vào từ file văn BAI1.INP gồm số N Dữ liệu ra: Đưa file văn BAI1.OUT kết ‘YES’ N số nguyên tố, ngược lại ghi ‘NO’ Ví dụ: BAI1.INP BAI1.OUT 37 YES 1005 NO Hướng dẫn:Bài toán đơn giản cần kiểm tra cho số nguyên N nên ta cần đọc liệu từ tệp dùng hàm kiểm tra số nguyên tố Code tham khảo: const fi='bai1.inp'; var fo='bai1.out'; n,i,j: longint; function ngto(x: longint): boolean; var i: longint; begin if x=1 then begin ngto := false; break; end; if x>1 then begin ngto:= true; for i:= to trunc(sqrt(x)) if x mod i = then begin ngto:= false; break; end; end; end; BEGIN assign(input, fi); reset(input); assign(output, fo); rewrite(output); readln(n); if ngto(i) then write(‘YES’) else write(‘NO’); close(input); close(output); END Bài tập : Tổng nguyên tố ( Bài – Đề thi học sinh giỏi cấp tỉnh Thanh Hóa năm học: 2016-2017) Cho số nguyên dương N (N ≤ 105) Yêu cầu: Tìm số cặp số nguyên dương x, y cho: - x, y số nguyên tố - x+y=N - x≤y Dữ liệu vào: Vào từ file văn BAI1.INP gồm số N Kết quả: Đưa file văn BAI1.OUT số số cặp số tìm Ví dụ: BAI1.INP BAI1.OUT 10 Hướng dẫn:Bài tốn ta dùng hàm kiểm tra nguyên tố để kiểm tra số x y Tuy nhiên x + y = N nên ta kiểm tra số x N-x, cặp số đối xứng nên ta cần kiểm tra x từ phạm vi đến N div Code tham khảo: const fi='bai1.inp'; fo='bai1.out'; var n,i,j: longint; res: longint; function ngto(x: longint): boolean; var i: longint; begin if x=1 then begin ngto := false; break; end; if x>1 then begin ngto:= true; for i:= to trunc(sqrt(x)) if x mod i = then begin ngto:= false; break; end; end; end; BEGIN assign(input, fi); reset(input); assign(output, fo); rewrite(output); readln(n); res:=0; for i:=2 to n div if ngto(i) and ngto(n-i) then inc(res); writeln(res); close(input); close(output); END Bài tập 3: Số siêu nguyên tố Tại Vương quốc Byte xinh đẹp, người ln chọn cho số, theo họ số nguyên tố số mang lại may mắn tìm số siêu nguyên tố may mắn Số siêu nguyên tố số nguyên tố mà bỏ số tùy ý chữ số bên phải phần cịn lại số ngun tố Số 2333 số siêu nguyên tố 2333 số nguyên tố 233, 23, số nguyên tố Dữ liệu vào: SNT.INPChứa số nguyên dương n (n ≤ 109) Dữ liệu ra: SNT.OUT Nếu N siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị END Bài tập 4: Tìm số ( Câu - Đề thi học sinh giỏi Tỉnh Quảng Bình năm học 2012 – 2013) Cho số nguyên dương X, đảo ngược trật tự chữ số X ta thu số nguyên dương Y, Y gọi số đảo ngược X Ví dụ: X = 613 Y = 316 số đảo ngược X Số nguyên dương Y gọi số nguyên tố có hai ước số nó, số khơng phải số ngun tố Cho hai số nguyên dương P Q (1 ≤ P ≤ Q ≤ 2109; Q - P ≤ 105) Yêu cầu: Hãy tìm tất số nguyên dương X nằm thỏa mãn P ≤ X ≤ Q số đảo ngược số X số nguyên tố Dữ liệu vào: Cho file văn TIMSO.INP có cấu trúc sau: - Dòng 1: Ghi hai số nguyên dương P Q, hai số ghi cách dấu cách Dữ liệu ra: Ghi file văn TIMSO.OUT nhiều dòng, dòng ghi số ngun X tìm Ví dụ: TIMSO.INP TIMSO.OUT 10 19 11 13 14 16 17 Hướng dẫn: Sử dụng hàm nguyên tố để kiểm tra số có phải số nguyên tố, để tạo số đảo ngược số X sử dụng hàm MOD DIV cho 10 Code tham khảo: Const fi='TIMSO.INP'; fo='TIMSO.OUT' ; Var P,Q:longint; function ngto(x: longint): boolean; var i: longint; begin if x=1 then begin ngto := false; break; end; if x>1 then begin ngto:= true; for i:= to trunc(sqrt(x)) if x mod i = then begin ngto:= false; break; end; end; end; Function Daoso(X:longint):longint; Var S:longint; Begin S:=0; While X>0 Begin S:=S*10+ (X mod 10); X:=X div 10; End; Daoso:=S; End; BEGIN assign(input, fi); reset(input); assign(output, fo); rewrite(output); Read(f,P,Q); for j:=P to Q if ngto(Daoso(j)) then Writeln(f,j); close(input); close(output); END 2.3.2 Hướng dẫn học sinh số tập sử dụng thuật toán Sàng nguyên tố Eratosthenes: Bài tập 5:Dãy số Cho dãy số gồm có N số nguyên a1, a2, a3, …aNvà số nguyên dương K.Yêu cầu: Hãy cho biết số lượng phần tử có giá trị nhỏ K số nguyên tố dãy số Dữ liệu : Vào từ file Dayso.inp gồm: Dòng hai số N K Dòng N số nguyên dãy số Kết quả: Ghi file Dayso.out gồm số m số lượng phần tử dãy số thoả mãn yêu cầu đề bài.Giới hạn: < n < 50000; < k, (|ai|

Ngày đăng: 22/05/2021, 15:29

Từ khóa liên quan

Mục lục

  • Bài tập 5:Dãy số

  • Cho dãy số gồm có N số nguyên a1, a2, a3, …aNvà một số nguyên dương K.Yêu cầu: Hãy cho biết số lượng các phần tử có giá trị nhỏ hơn K là số nguyên tố của dãy số trên.

  • Dữ liệu : Vào từ file Dayso.inp gồm: Dòng đầu tiên là hai số N và K. Dòng tiếp theo lần lượt là N số nguyên của dãy số.

  • Kết quả: Ghi ra file Dayso.out gồm duy nhất số m là số lượng các phần tử của dãy số thoả mãn yêu cầu đề bài.Giới hạn: 0 < n < 50000; 0 < k, (|ai| <= 106)

Tài liệu cùng người dùng

Tài liệu liên quan