(SKKN mới NHẤT) SKKN một số kinh nghiệm giảng dạy về tính toán đồng dư cho học sinh giỏi quốc gia môn tin học

17 1 0
(SKKN mới NHẤT) SKKN một số kinh nghiệm giảng dạy về tính toán đồng dư cho học sinh giỏi quốc gia môn tin học

Đ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 VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT CHUYÊN LAM SƠN SÁNG KIẾN KINH NGHIỆM MỘT SỐ KINH NGHIỆM GIẢNG DẠY VỀ TÍNH TỐN ĐỒNG DƯ CHO HỌC SINH GIỎI QUỐC GIA MÔN TIN HỌC Người thực hiện: Phạm Thị Nga Chức vụ: Giáo viên SKKN thuộc lĩnh vực (mơn): Tin học THANH HỐ NĂM 2019 download by : skknchat@gmail.com Mục lục Mở đầu 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu .3 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu .3 1.5 Những điểm SKKN Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lí luận sáng kiến kinh nghiệm .4 2.1.1 Định nghĩa tính chất hàm nhân tính 2.1.2 Phương pháp để tính hàm nhân tính 2.1.3 Tính tốn đồng dư .5 2.1.4 Các định lí dùng tính tốn đồng dư hệ 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm 2.3 Các giải pháp sử dụng để giải vấn đề Bài POWERTOWER - Tháp luỹ thừa Thuật toán Code, Test Cảm nhận 10 Bài DPEQN - Congruence Equation 10 Thuật toán 11 Test cảm nhận 11 Bài GCDSUM - Tổng ước chung lớn .11 Thuật toán 12 Test cảm nhận 12 Bài VOSPOW - Độ bá đạo đội hình 12 Thuật toán 13 Test Cảm nhận 14 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 14 Kết luận, kiến nghị .14 Tài liệu tham khảo 15 download by : skknchat@gmail.com Mở đầu 1.1 Lí chọn đề tài Các tốn trong thi học sinh giỏi quốc gia liên quan đến Toán học thường rơi vào hai mảng là số học hình học Nếu biết nhiều số học, học sinh có khả giải nhiều tốn khó tảng tốt để giải nhiều toán khác Các toán thi học sinh giỏi quốc gia thường địi hỏi phải có nhìn sâu sắc, biết số vấn đề số học khơng đủ Mọi tốn yêu cầu học sinh phải biết lượng kiến thức tốn định Ví dụ, số tốn u cầu học sinh phải giải hệ nhiều phương trình hay tính xấp xỉ nghiệm nhiều phương trình khác Tính tốn đồng dư phạm trù khó, tiếp cận đưa vào thi giảng dạy, ôn luyện cho học sinh thi học sinh giỏi quốc gia năm gần Hiện tại, chưa có tài liệu nghiên cứu bàn sâu vào vấn đề này, đồng nghiệp, nhà trường chưa có kinh nghiệm để giảng dạy nội dung nâng cao Vì vậy, hai năm học vừa qua, giáo viên trực tiếp giảng dạy phụ trách đội tuyển học sinh giỏi quốc gia tỉnh Thanh Hóa, tơi tìm hiểu có “MỘT SỐ KINH NGHIỆM GIẢNG DẠY VỀ TÍNH TỐN ĐỒNG DƯ CHO HỌC SINH GIỎI QUỐC GIA MƠN TIN HỌC” Nay xin trình bày đề tài sáng kiến kinh nghiệm thân tơi 1.2 Mục đích nghiên cứu Nội dung thi học sinh giỏi tin học lập trình thi đấu ngày mở rộng tăng độ khó thực tiễn nhu cầu xã hội bối cảnh phát triển tin học, cơng nghệ thơng tin Tính toán đồng dư nội dung mới, mở rộng giới hạn tốn tốc độ xử lí, nghiên cứu đưa vào giảng dạy cho học sinh đội tuyển học sinh giỏi quốc gia, nhằm cung cấp cho học sinh phần kiến thức mới, mở rộng, đồng thời rèn luyện cho học sinh kĩ giải toán phạm vi thi học sinh giỏi quốc gia tính tốn đồng dư 1.3 Đối tượng nghiên cứu Sáng kiến kinh nghiệm trình bày số kinh nghiệm, phương pháp trình giảng dạy tính tốn đồng dư cho học sinh giỏi quốc gia kết mà đạt việc áp dụng giảng dạy cho đội tuyển học sinh giỏi tin học tỉnh Thanh Hóa năm học 2017 – 2018; 2018 – 2019 1.4 Phương pháp nghiên cứu - Nghiên cứu lí thuyết ứng dụng - Phương pháp thực nghiệm khoa học - Phương pháp phân tích tổng kết kinh nghiệm 1.5 Những điểm SKKN - Chưa có đồng nghiệp, tài liệu trình bày tổng hợp kinh nghiệm giảng dạy phần tính tốn đồng dư cho học sinh giỏi mơn tin học - Những kinh nghiệm trình bày thơng qua việc nghiên cứu, giảng dạy sở lí thuyết thuật toán áp dụng giảng dạy bước cụ thể tốn điển hình áp dụng thuật tốn theo cấp độ từ dễ đến khó, tốn chưa trình bày cách tiếp cận lời giải tài liệu khác download by : skknchat@gmail.com 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 Định nghĩa tính chất hàm nhân tính 2.1.1.1 Định nghĩa - Hàm ( số nguyên) hàm nhân tính với cặp số nguyên nguyên tố - Hàm nguyên ( số ngun) hàm nhân tính hồn tồn với cặp số 2.1.1.2 Tính chất - Theo định lí số học bản[1]: với số nguyên dương n, tồn cách viết n dạng tích luỹ thừa số nguyên tố: cho số nguyên dương số nguyên tố tăng dần Nếu hàm nhân tính thì: - Dirichlet Convolution[2]: Nếu hai hàm nhân tính thì: hàm nhân tính 2.1.1.3 Một số hàm nhân tính - Hàm định nghĩa - Hàm định nghĩa - Hàm luỹ thừa ( số) - Cả ba hàm hàm nhân tính hồn tồn 2.1.2 Phương pháp để tính hàm nhân tính 2.1.2.1 Chứng minh hàm cần tính hàm nhân tính a Chứng minh cơng thức Nếu hàm có cơng thức khơng phụ thuộc vào việc có hàm nhân tính khơng, để chứng minh hàm nhân tính, ta chứng minh (với m, n nguyên tố nhau) cách biến đổi công thức Ví dụ xét hàm Nếu số ước phân tích thừa số ngun tố có dạng download by : skknchat@gmail.com Xét n m nguyên tố và: nên hàm nhân tính b Chứng minh sử dụng Dirichlet Convolution - Xét hai hàm , hai hàm hàm nhân tính nên theo Dirichlet Convolution, Đây hàm đếm số ước - Đơi có hàm chứng minh cách biến đổi vất vả nhiều so với sử dụng Dirichlet Convolution Xét dụ hàm tổng ước Sử dụng Dirichlet Convolution với hai hàm có: Nên hàm nhân tính 2.1.2.2 Tìm cách tính trường hợp - Hàm nhân tính giúp ta rút gọn việc tính cho số nguyên dương thành tính với số nguyên tố, số nguyên dương - Nếu có cơng thức cho f(n) sử dụng cơng thức - Nếu khơng có cơng thức có thuật tốn để tính tính cho trường hợp riêng 2.1.2.3 Tính hàm nhân tính - Nếu tính giá trị hàm phân tích thừa số nguyên tố tính riêng cho thừa số nguyên tố Chỉ có tác dụng hàm khó/ khơng có cơng thức để tính trường hợp chung - Tính cho tất giá trị thoả mãn Thực sàng nguyên tố, lúc sàng với số lưu lại số nguyên tố bé ước Duyệt tăng dần, kiểm tra kiểu Nếu luỹ thừa số nguyên tố dùng thuật tốn riêng để tính giá trị, khơng dùng tính chất hàm nhân tính để tính Thuật tốn có độ phức tạp với số luỹ thừa số nguyên tố không vượt độ phức tạp để tính hàm cho luỹ thừa số download by : skknchat@gmail.com nguyên tố Thuật toán thực sàng nguyên tố số có phải số ngun tố khơng , kiểm tra xem Đặc biệt hàm cần tính hàm nhân tính hồn tồn, độ phức tạp giảm cịn O( ) Vì có số [3] ngun tố 2.1.3 Tính tốn đồng dư 2.1.3.1 Định nghĩa - Với cặp số nguyên , tồn cặp số nguyên cho: - Hai số Kí hiệu Khi ta nói số dư chia cho và kí hiệu Kí hiệu để biểu diễn phép tính chia lấy dư ( ) thoả mãn ta nói đồng dư với qua modulo 2.1.3.2 Các tính chất phép tính Các số số ngun -Tính đối xứng: -Tính bắc cầu: -Tính tương đồng cộng giá trị: -Tính tương đồng nhân giá trị: -Tính tương đồng cộng: -Tính tương đồng trừ: -Tính tương đồng nhân: -Tính tương đồng nâng lên lũy thừa: -Tính tương đồng tính tốn đa thức: đa thức với có bậc hệ số bậc nguyên -Tính loại trừ cộng: -Tính loại trừ nhân: ngun tố hai số 2.1.3.3 Nghịch đảo modulo -Sự tồn tại: Với hai số nguyên nguyên , tồn số thoả mãn Khi ta kí hiệu và nghịch đảo nhân modulo nguyên tố Lưu ý lạm dụng kí pháp số nguyên a khác hay -1, nhiên sử dụng thường xuyên để tiện cho việc trình bày -Tính tương đồng nghịch đảo modulo: Nếu tồn download by : skknchat@gmail.com -Nếu tồn -Với số nguyên tố thì tồn cho tất số nguyên thoả mãn khác 2.1.4 Các định lí dùng tính tốn đồng dư hệ 2.1.4.1 Định lí nhỏ Fermat[4] Nếu số nguyên tố với số nguyên , bội số -Kí hiệu: -Hệ nguyên tố nhau: Khi nghịch đảo modulo 2.1.4.2 Hàm phi Euler a Định nghĩa kí hiệu Hàm phi Euler cho số nguyên dương n định nghĩa số lượng số nguyên dương nguyên tố với cho Kí hiệu: b Cơng thức tính Cơng thức tích Euler: với số nguyên tố c Tính chất hàm phi Euler hàm nhân tính - số chẵn -Nếu ( nguyên) với số nguyên tố -Lưu ý d Phương pháp tính hàm phi Euler -Tính giá trị Phân tích thừa số nguyên tố sử dụng công thức nhân Euler Độ phức tạp thuật tốn độ phức tạp để phân tích thừa số nguyên tố -Tính tất giá trị với : Thực sàng nguyên tố cho tất số nguyên Duyệt giá trị nhỏ ước Nếu tăng, lúc sàng nguyên tố lưu lại số nguyên tố gọi số Tìm với lớn cho dùng công thức dành cho luỹ thừa số nguyên tố, khơng dùng tính chất hàm nhân tính: download by : skknchat@gmail.com Code mẫu C++: const int maxp=1000000; int p[maxp+1]; int phi[maxp+1]; void calculate_phi(){ phi[1]=1; for(int i=2; i1; - Nhận thấy để rút gọn toán, cần sử dụng hệ thứ định lí Euler, nhiên nhận thấy gcd(a, m) chưa chắn 1, cần chia m thành hai phần: m1 m2 với m1*m2=m gcd(a, m2)=1=gcd(m1, m2)=1 sử dụng định lí phần dư Trung Hoa - F(a, n, m2)≡aF(a, n-1, ϕ(m2)) (mod m2) tính cách gọi đệ quy tính F(a, n-1, ϕ(m2)) dùng thuật tốn luỹ thừa nhanh để tính O(log(F(a, n-1, ϕ(m2)))) - Để tính F(a, n, m1) nhận thấy m110^5) nên a^x%m1=0 x>=20 Xét trường hợp sau: Nếu a=2 n>4=>F(a, n, m1)=0 n=32 a⇈n>=20 n>1 Nếu n>2 a⇈n>=20 3⇈3>=20 Nếu khơng n=2 tính a^a thuật tốn luỹ thừa nhanh - Sau tính F(a, n, m1) F(a, n, m2) sử dụng định lí đồng dư Trung Quốc tính F(a, n, m) Có thể sử dụng cách tính nêu áp dụng thẳng công thức tổng quát Đánh giá độ phức tạp Với hàm F(a, n, m) gọi, tính O(log(a)) vì: Tối đa lần tính luỹ thừa nhanh m1 m2 tính log(a) phân tích thừa số nguyên tố giá trị O(log(a)) chuẩn bị sẵn mảng số nguyên tố bé ước sàng nguyên tố tính hàm phi Euler Thoạt nhìn, độ phức tạp thuật tốn O(n*log(a)) cho test hàm F(a, n, m) bị gọi tới n lần, nhiên độ phức tạp thực tế O(min(n, log(m))*log(a)) vì: Hàm F(a, n, m) gọi hàm F(a, n-1, ϕ(m2)) mà m23 nên từ lần đệ quy thứ 2, m2 chẵn m2

Ngày đăng: 29/03/2022, 21:34

Từ khóa liên quan

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

Tài liệu liên quan