Skkn phân loại và vận dụng phương pháp duyệt toàn bộ trong bồi dưỡng học sinh giỏi giúp nâng cao kết quả thi học sinh giỏi cấp tỉnh môn tin học

32 0 0
Skkn phân loại và vận dụng phương pháp duyệt toàn bộ trong bồi dưỡng học sinh giỏi giúp nâng cao kết quả thi học sinh giỏi cấp tỉnh 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 TRIỆU SƠN 3 SÁNG KIẾN KINH NGHIỆM PHÂN LOẠI VÀ VẬN DỤNG PHƯƠNG PHÁP DUYỆT TOÀN BỘ TRONG BỒI DƯỠNG HỌC SINH GIỎI GIÚP NÂNG CAO KẾT QUẢ THI HỌC SINH GIỎI CẤP[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT TRIỆU SƠN SÁNG KIẾN KINH NGHIỆM PHÂN LOẠI VÀ VẬN DỤNG PHƯƠNG PHÁP DUYỆT TOÀN BỘ TRONG BỒI DƯỠNG HỌC SINH GIỎI GIÚP NÂNG CAO KẾT QUẢ THI HỌC SINH GIỎI CẤP TỈNH MÔN TIN HỌC Người thực hiện: Lê Thị Quỳnh Chức vụ: TPCM Đơn vị công tác: Trường THPT Triệu Sơn SKKN thuộc môn: Tin học THANH HOÁ NĂM 2020 skkn MỤC LỤC 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 2.1 Cơ sở lý luận 2.2 Thực trạng vấn đề cần giải .3 2.3 Các giải pháp giải vấn đề .3 2.3.1 Phân loại cách duyệt toàn 2.3.1.1 Duyệt toàn cách sử dụng vòng lặp lồng 2.3.1.1.1 Phát biểu toán 2.3.1.1.2 Nhận xét .4 2.3.1.2 Duyệt toàn cách sử dụng giải thuật quay lui 2.3.1.2.1 Phát biểu toán 2.3.1.2.2 Nhận xét .6 2.3.1.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận .6 2.3.1.3.1 Phát biểu toán 2.3.1.3.2 Nhận xét .7 2.3.2 Các ví dụ vận dụng 2.3.2.1 Duyệt tồn cách sử dụng vịng lặp lồng 2.3.2.2 Duyệt toàn cách sử dụng giải thuật quay lui 10 2.3.2.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận .13 2.4 Hiệu sáng kiến kinh nghiệm 15 KẾT LUẬN, KIẾN NGHỊ 17 3.1 Kết luận 17 3.2 Kiến nghị 17 TÀI LIỆU THAM KHẢO 18 DANH MỤC .19 PHỤ LỤC 20 skkn skkn MỞ ĐẦU 1.1 Lý chọn đề tài Mơn Tin học trường THPT có vị trí quan trọng nhiều so với mơn Tin học cấp học dưới, kiến thức nhất, định hướng rõ ràng em chập chững bước vào ngưỡng cửa công nghệ thông tin Cũng cấp học này, em thử sức lập trình thực thơng qua kỳ thi học sinh giỏi (HSG) cấp, từ thể nhiều phẩm chất, kỹ em như: tư mạch lạc, kiến thức nhiều môn học huy động, nhanh nhạy suy nghĩ, tư lẫn việc gõ bàn phím Qua năm nghiên cứu giảng dạy thực tế lớp mũi nhọn, bồi dưỡng (cũng đồng phụ trách bồi dưỡng) học sinh ôn luyện thi HSG cấp Tỉnh, nhận thấy chuyên đề bồi dưỡng HSG môn Tin học thật chuyên đề khó, khơng học sinh mà với giáo viên phụ trách Trong đề thi HSG cấp Tỉnh, đề thi HSG cấp tỉnh khác ln xuất tốn có kích thước lớn, tốn khó Để nghĩ thuật giải thời điểm làm điều khơng dễ dàng Có phương pháp cho kết lại hạn chế chậm mặt thời gian, phương pháp mà trở thành phương pháp tình để học sinh ăn số test giới hạn, chí vận dụng thêm kỹ thuật khác cài đặt tốt ăn 100% test, phương pháp “duyệt tồn bộ” Vì vậy, chọn đề tài “Phân loại vận dụng phương pháp duyệt toàn bồi dưỡng học sinh giỏi giúp nâng cao kết thi học sinh giỏi cấp Tỉnh môn Tin học” làm sáng kiến kinh nghiệm năm học 2019 – 2020 để trao đổi với đồng nghiệp Đây phương pháp thực hiệu trường THPT Triệu Sơn 3, đồng thời hy vọng cách làm hoàn thiện, bổ sung nhân rộng trường THPT khác Tỉnh 1.2 Mục đích nghiên cứu - Tổng hợp, phân loại dạng tốn duyệt tồn - Đánh giá trình độ nhận thức học sinh so với mục tiêu dạy học nhằm điều chỉnh hoạt động dạy hoạt động học 1.3 Đối tượng nghiên cứu - Thuật toán sử dụng vịng lặp lồng - Thuật tốn quay lui - Thuật toán đặt nhánh cận - Một số toán thi HSG cấp skkn - Sự tư duy, ý thức học tập học sinh ôn thi học sinh giỏi 1.4 Phương pháp nghiên cứu Để thực đề tài này, sử dụng phương pháp: - Phương pháp nghiên cứu xây dựng sở lí thuyết: Cơ sở lý thuyết phương pháp duyệt cách sử dụng vòng lặp lồng nhau, phương pháp quay lui, phương pháp đặt nhánh cận; số toán đề thi cấp; Sự hứng thú học môn Tin học ý thức tự học học sinh môn học - Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Thông qua kết điều tra mức độ hiểu thuật tốn sử dụng vịng lặp lồng nhau, thuật toán quay lui, đặt nhánh cận học sinh giỏi lớp 11 trường THPT Triệu Sơn - Phương pháp thống kê, xử lý số liệu: Trên sở kết đạt được, thống kê số liệu, xử lí số liệu để so sánh nhóm thực nghiệm đối chứng skkn 2 NỘI DUNG 2.1 Cơ sở lý luận Duyệt toàn phương pháp liệt kê tất phần tử tập hợp D hữu hạn đó, từ phần tử thỏa mãn tiêu chí tối ưu đếm số lượng phần tử thỏa mãn điều kiện cho trước Cách tư xuất phát từ tập D hữu hạn tận dụng tốc độ tính tốn nhanh máy tính (mà tốc độ ln tăng trưởng theo cấp số nhân) Có thể nói cách tư đơn giản dễ viết chương trình Tuy nhiên, thấy phương pháp có hạn chế số lượng phần tử tập hợp D lớn Nó thể chỗ thời gian tính tốn kết thường khơng chấp nhận được, trường hợp máy tính đủ mạnh Do phương pháp duyệt tồn bộ, ngồi việc tổ chức liệt kê phần tử cho đảm bảo duyệt qua hết phần tử, cần phải vận dụng kết hợp phương pháp cho phép bỏ qua gộp số phần tử, điều cải thiện đáng kể thời gian thực chương trình, chí nhiều trường hợp thu chương trình hiệu 2.2 Thực trạng vấn đề cần giải Duyệt toàn phương pháp mà hầu hết học sinh ôn thi HSG nắm được, hiểu rõ nguyên lý hoạt động Tuy nhiên, đa số học sinh nghĩ đến duyệt tồn cách sử dụng vịng lặp lồng duyệt quay lui toán mức độ đơn giản Việc duyệt sử dụng nhánh cận (duyệt quay lui đặt nhánh cận) thực thử thách, khó khăn giáo viên học sinh Vì vậy, phạm vi đề tài này, mạnh dạn đề xuất vài cách phân loại vận dụng, kinh nghiệm thân áp dụng vào việc bồi dưỡng học sinh ôn thi HSG cấp Tỉnh 2.3 Các giải pháp giải vấn đề 2.3.1 Phân loại cách duyệt tồn Trong phạm vi đề tài này, tơi xin đưa ý kiến phân loại sau nghiên cứu tham khảo từ nhiều kênh khác nhau, áp dụng kiểm nghiệm thực tế qua trình bồi dưỡng cho học sinh thi HSG cấp Tỉnh năm học gần 2.3.1.1 Duyệt toàn cách sử dụng vòng lặp lồng 2.3.1.1.1 Phát biểu tốn Nhóm tốn sử dụng phương pháp duyệt tồn nhóm tốn liệt kê cách sử dụng vòng lặp lồng Bài tốn thuộc loại phát biểu sau: skkn Cho k số (không phụ thuộc vào liệu) Hãy liệt kê tất (x1, x2,…,xk) xi Di Di tập hợp hữu hạn phần tử Để liệt kê dãy thơng thường sử dụng k vòng lặp lồng dạng: For x1 D1 For x2 D2 For xk Dk Nếu lực lượng tập Di O(n) thời gian thực việc liệt kê toàn theo cách Nk Đây số lớn n, k lớn Chính cần phải có kĩ thuật cải tiến để giảm thời gian thực Khơng có ngun tắc chung để làm điều Ví dụ: cho dãy số nguyên a 1, a2, an b1, b2, bm Hãy tìm giá trị nhỏ với , Phương pháp để giải tốn duyệt tồn cặp (i, j) (có thể thấy có n x m cặp vậy) để tìm cặp có nhỏ For i:=1 to n For j:=1 to m If abs(a[i]+b[j])< then := abs(a[i]+b[j]); Thuật tốn có độ phức tạp O(mn) với m, n lớn (cỡ khoảng 100000) cách duyệt tồn khơng có hiệu Vì vậy, tốn có cải tiến nhằm tăng thời gian tìm kiếm sau: Nhận xét: |Ai + Bj| giá trị gần tốt Dựa vào nhận xét ta giải tiếp sau: Bước 1: Sắp xếp dãy tăng dần, độ phức tạp Max(O(NlogN), O(MlogM)) Bước 2: Độ phức tạp Max(O(N), O(M)) Xét dãy A từ đầu dãy i = dãy B từ cuối dãy j = N Min := |A1 + Bn| Lặp i Như độ phức tạp toán cải tiến Max(O(NlogN), O(MlogM)) 2.3.1.1.2 Nhận xét Ưu điểm: - Dễ cài đặt, cài đặt ngắn gọn skkn Hạn chế: - Không tối ưu mặt thời gian 2.3.1.2 Duyệt toàn cách sử dụng giải thuật quay lui 2.3.1.2.1 Phát biểu toán Thuật toán quay lui dùng để giải toán liệt kê cấu hình Mỗi cấu hình xây dựng cách xây dựng phần tử, phần tử chon cách thử tất khả Giả thiết cấu hình cần liệt kê có dạng (x 1, x2, xn) thuật tốn quay lui thực qua bước sau: 1) Xét tất giá trị x1 nhận, thử cho x1 nhận giá trị Với giá trị thử gán cho x1 ta sẽ: 2) Xét tất giá trị x nhận lại thử cho x nhận giá trị Với giá trị thử gán cho x2 lại xét tiếp khả chọn x3 n) xét tất giá trị xn nhận, thử cho xn nhận giá trị đó, thơng báo cấu hình tìm (x1,x2, xn) Trên phương diện quy nạp, nói thuật tốn quay lui liệt kê cấu hình n phần tử dạng (x1, x2, xn) cách thử cho x1 nhận giá trị Với giá trị thử gán cho x lại liệt kê tiếp cấu hình n-1 phần tử (x 2, x3, xn) Mô tả thuật tốn quay lui mơ tả sau: {Thủ tục thử cho xi nhận tất giá trị mà nhận}  Mơ hình 1: Procedure Try(i: integer); Begin For (mọi giá trị V gán cho x1) Begin ; ; If (xi phần tử cuối cấu hình) then Else Try(i+1); { gọi đệ quy để chon tiếp xi+1} ; End; End;  Mơ hình 2: Procedure Try(i: integer); Begin if (xi vị trí cuối cấu hình) then skkn else For ( giá trị V gán cho x1) Begin ; ; Try(i+1); { gọi đệ quy để chon tiếp xi+1} ; End; End; Thuật toán quay lui bắt đầu lời gọi Try(1) Ví dụ: Sinh tồn xâu nhị phân có độ dài N cho trước Phương pháp quay lui áp dụng thủ tục sau: Procedure Try(k:integer); {sinh xâu nhị phân có độ dài k} Var i:integer; Begin For i:=0 to {xét khả x[k]} Begin x[k] := i; if k = N then print {Nếu sinh xâu nhị phân độ dài N kết quả} else try(k+1); {gọi đệ qui để sinh tiếp x[k+1]} End; End; 2.3.1.2.2 Nhận xét Ưu điểm: - Dễ cài đặt, cài đặt ngắn gọn Hạn chế: - Không tối ưu mặt thời gian 2.3.1.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận 2.3.1.3.1 Phát biểu tốn Có số tốn tìm nghiệm tối ưu, sử dụng phương pháp quay lui tìm hết phương án nghiệm sau chọn lấy nghiệm tối ưu đáp ứng yêu cầu toán Như khơng gian tìm kiếm vét cạn tồn khả xảy nghiệm, điều làm cho chương trình khơng tối ưu mặt thời gian Phương pháp nhánh cận cải tiến phương pháp quay lui, áp dụng để tìm nghiệm tối ưu tốn Đây phương pháp khó, toán áp dụng phương pháp thường toán mức độ câu cuối (nếu skkn có) đề thi HSG cấp Tỉnh đề thi phạm vi lớn cấp Tỉnh Nó thực thử thách giáo viên học sinh Tư tưởng phương pháp nhánh cận sau: Giả sử xây dựng k thành phần (x1, x2, , xk) nghiệm mở rộng thêm (x 1, x2, , xk, xk+1), biết tất các nghiệm mở rộng (x 1, x2, , xk+1, ) khơng tốt nghiệm cũ ta khơng cần mở rộng thêm Như vậy, với phương pháp nhánh cận, ta không cần phải duyệt tồn phương án để tìm nghiệm tốt mà cách đánh giá thành phần mở rộng, ta cắt bỏ phương án khơng cần thiết, việc tìm nghiệm tối ưu nhanh Cái khó việc áp dụng phương pháp nhánh cận đánh giá thành phần mở rộng, đánh giá tốt giúp bỏ nhiều phương án khơng cần thiết, thuật tốn nhánh cận cho hiệu tốt mặt thời gian Có thể tổng quan phương pháp mơ hình sau: Procedure init; Begin ; End; { thủ tục thử chon cho x tất giá trị nhận} Procedure try(i:integer); Begin {đánh giá thành phần mở rộng} If then exit; For (mọi giá trị V gán cho x1) Begin ; If then Else try(i+1); ; End; End; Begin Init; Try(1); End 2.3.1.3.2 Nhận xét Ưu điểm: - Tối ưu mặt thời gian skkn ABC.INP ABC.OUT  ABACABA Hướng dẫn giải: Ta có nhận xét ký tự liên tiếp ln có ký tự C Do điều kiện nhánh cận bước duyệt ký tự i xâu - Xâu có i ký tự tạo khơng có đoạn liên tiếp trùng - s(i) + (n-i) div < smin Trong - s(i) số ký tự C dùng để tạo xâu i ký tự - smin số ký tự C xâu khác thỏa mãn yêu cầu đầu đề chưa tối ưu Có thể khởi tạo smin ban đầu số đủ lớn (Code tham khảo phần phụ lục) 2.4 Hiệu sáng kiến kinh nghiệm Sau ba năm học áp dụng phương pháp vào ôn luyện thi học sinh giỏi cấp Tỉnh (năm học 2017-2018 phụ trách chính, năm học 2018-2019 năm học 2019-2020 đồng phụ trách vài chuyên đề, có chun đề tìm kiếm nhị phân chun đề duyệt tồn bộ), tơi nhận thấy em hứng thú hiểu rõ nội dung, chất thuật tốn Đặc biệt, em nhìn nhận để giải toán phương pháp hiệu Từ đó, mở khả hứng thú học tập cho nội dung (chuyên đề) khác, cách tư toán đa dạng khoa học Kết thi học sinh giỏi tăng lên Cụ thể sau: * Đối với nhóm học sinh đối chứng: STT Họ tên Lớp Hà Minh Dũng Trịnh Việt Đức Đỗ Phương Nam Nguyễn Văn Tuấn 11B4 11B4 11C3 11C3 skkn Kết thi HSG Điểm Xếp giải 10.0 KK 8.5 Không 6.5 Không 9.0 Không Năm học 2015-2016 2016-2017 15 * Đối với nhóm học sinh thực nghiệm: STT Họ tên Lớp Đào Công Cường Lê Thị Hương Hà Văn Đức Đào Huy Hiệu Nguyễn Thị Châm Lê Ngọc Linh 11D3 11D3 11E4 11E4 11A35 11A35 Kết thi HSG Điểm Xếp giải 12.0 KK 15.0 Ba 12.5 KK 16.25 Nhì Khơng tổ chức dịch covid 19 Năm học 2017-2018 2018-2019 2019-2020 Như vậy, rõ ràng việc hướng dẫn học sinh giải toán phương pháp chuyên sâu chủ đề đó, có kết hợp kỹ thuật khác giúp em giải triệt để nhiều tốn mức độ vừa khó, em nhìn nhận để giải tốn đặt cách nhanh xác Từ đó, kết thi học sinh giỏi cấp Tỉnh ngày nâng cao, hướng đến việc em thuận lợi trình học tập trường đại học, cao đẳng với đam mê lĩnh vực công nghệ thông tin Với kết có năm học gần đây, thiết nghĩ cách làm thực hiệu quả, góp phần vào thành cơng cơng tác ôn thi học sinh giỏi môn Tin học nhà trường, định hướng rõ ràng cho học sinh việc vạch phương pháp học tập hiệu lĩnh vực công nghệ thông tin trường cao đẳng, đại học sau skkn 16 KẾT LUẬN, KIẾN NGHỊ 3.1 Kết luận Thông qua thực đề tài, tơi nhận thấy duyệt tồn phương pháp cần thiết việc dạy học lập trình nói chung ơn thi học sinh giỏi nói riêng Việc áp dụng thuật toán đem lại hiệu thực việc ôn thi học sinh giỏi đơn vị THPT Triệu Sơn 3: Học sinh tự tin hơn, học tập tích cực hơn, chủ động hơn, khả tư tốt có kết cao Vận dụng phương pháp duyệt toàn để giải toán thi HSG cấp phần nhỏ chuyên đề bồi dưỡng HSG Tôi hy vọng toán nêu đề tài kênh gợi mở để tham khảo phát triển thành tài liệu bổ ích cho thầy cô giáo cho em học sinh việc nghiên cứu bồi dưỡng HSG cấp 3.2 Kiến nghị Đối với giáo viên, phải không ngừng tự học, tự bồi dưỡng, tham khảo ý kiến chia sẻ từ đồng nghiệp tập, đề thi học sinh giỏi cấp Từ vận dụng vào cơng tác bồi dưỡng học sinh giỏi đạt hiệu cao Đối với cấp lãnh đạo, cần tổ chức hội thảo chuyên đề cho giáo viên môn Tin học hàng năm để giáo viên có dịp trao đổi, học hỏi kinh nghiệm, tìm giải pháp, biện pháp tốt, ý tưởng hay giúp nâng cao chất lượng dạy học nói chung ơn thi học sinh giỏi nói riêng XÁC NHẬN Thanh Hóa, ngày 30 tháng 06 năm 2020 CỦA THỦ TRƯỞNG ĐƠN VỊ Tôi xin cam đoan SKKN viết, khơng chép nội dung người khác Người viết LÊ THỊ QUỲNH skkn 17 ... vận dụng phương pháp duyệt toàn bồi dưỡng học sinh giỏi giúp nâng cao kết thi học sinh giỏi cấp Tỉnh môn Tin học? ?? làm sáng kiến kinh nghiệm năm học 2019 – 2020 để trao đổi với đồng nghiệp Đây phương. .. thuyết phương pháp duyệt cách sử dụng vòng lặp lồng nhau, phương pháp quay lui, phương pháp đặt nhánh cận; số toán đề thi cấp; Sự hứng thú học môn Tin học ý thức tự học học sinh môn học - Phương pháp. .. nhánh cận - Một số toán thi HSG cấp skkn - Sự tư duy, ý thức học tập học sinh ôn thi học sinh giỏi 1.4 Phương pháp nghiên cứu Để thực đề tài này, sử dụng phương pháp: - Phương pháp nghiên cứu xây

Ngày đăng: 21/02/2023, 09:24