SKKN Một số kinh nghiệm giải toán bằng phương pháp đệ quy trong ôn thi học sinh giỏi

20 6 0
SKKN Một số kinh nghiệm giải toán bằng phương pháp đệ quy trong ôn thi học sinh giỏi

Đ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

SKKN Một số kinh nghiệm giải toán bằng phương pháp đệ quy trong ôn thi học sinh giỏi Mét sè kinh nghiÖm gi¶i to¸n b»ng ph­¬ng ph¸p ®Ö quy trong «n thi HSG GV TrÇn Ngäc D­¬ng 1 MỤC LỤC A PHẦN MỞ ĐẦU 2[.]

Một số kinh nghiệm giải toán phương pháp đệ quy «n thi HSG MỤC LỤC A PHẦN MỞ ĐẦU .2 I Lý chọn đề tài: II Mục đích nghiên cứu: .3 III Đối tượng phạm vi nghiên cứu: IV Nhiệm vụ nghiên cứu: V Phương pháp nghiên cứu: B PHẦN NỘI DUNG I Cơ sở lý luận đề tài: Các khái niệm: a) Khái niệm Đệ quy: b) Đặc điểm chương trình đệ quy: .6 c) Phân loại đệ quy: Gồm loại: .6 Nguyên tắc hoạt động giải thuật đệ quy: a) Khái niệm stack: b) Nguyên tắc hoạt động giải thuật đệ quy ứng dụng Stack: .7 c) Ưu điểm nhược điểm giải thuật đệ quy: .8 Đệ quy quay lui: a) Khái niệm đệ quy quay lui: b) Giải thuật tổng quát đệ quy quay lui: .9 c) Nét đặc trưng phương pháp đệ quy quay lui: 10 d) Ưu nhược điểm: 11 Phương pháp khử đệ quy: 11 Sự khác đệ quy lặp: .12 II GIẢI PHÁP NÂNG CAO HIỆU QUẢ ÔN LUYỆN THI HSG THƠNG QUA CÁC BÀI TẬP VÍ DỤ ĐỆ QUY, ĐỆ QUY QUAY LUI VÀ KHỬ ĐỆ QUY 13 Các tập đệ quy không đệ quy: .13 Các tập đệ quy đệ quy quay lui: .14 Kết đạt được: 19 C KẾT LUẬN VÀ KIẾN NGHỊ .20 GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp ®Ư quy «n thi HSG A PHẦN MỞ ĐẦU I Lý chọn đề tài: Như biết, việc đào tạo bồi dưỡng học sinh giỏi thật cơng việc khó khăn, địi hỏi nhiều công sức giáo viên học sinh Trong năm gần đây, kỳ thi chọn học sinh giỏi mơn văn hóa cấp tỉnh, đội tuyển học sinh giỏi trường THPT Nông Cống đạt nhiều thành tích cao, cụ thể xếp hạng năm học từ 2015 trở trước đứng thứ 40 tỉnh Trong năm học 2016-2017 vượt lên thứ 28 năm học 2017-2018 giữ nguyên thứ hạng Điều góp phần cơng sức lớn lao đội ngũ thầy cô trực tiếp giảng dạy, vươn lên khó khăn từ em học sinh góp phần vào kết chung nhà trường, có đóng góp thành tích mơn Tin học Vì thân cố gắng phấn đấu để bắt nhịp với đội tuyển môn nhà trường Tuy nhiên, sau nhiều năm đào tạo, nhận thấy thực trạng công tác ôn thi học sinh giỏi mơn Tin học bộc lộ khó khăn thuận lợi sau: + Thuận lợi: - Được quan tâm, động viên Ban giám hiệu nhà trường Sự đồng lòng bậc phụ huynh học sinh đội tuyển động viên dành thời gian để em ôn luyện - Sự đúc kết kinh nghiệm giảng dạy, trau dồi kiến thức thân q trình giảng dạy - Học sinh có ý thức học tập, say mê môn học nặng tư duy, năm học 2017-2018 có em đội tuyển Tin học thi môn: em thi mơn Hóa em thi mơn Tốn + Khó khăn: - Tìm kiếm xây dựng nguồn nhân lực khó khăn, điều kiện mà năm học 2017-2018 khối học sinh 12 không tham gia dự thi, điều làm cho lực lượng học sinh có chất lượng khối 11 khó thi Tin học (vì em học mơn tự nhiên thi môn khác) - Học sinh đứng trước lựa chọn học chuyên sâu để thi học sinh giỏi học để thi ĐH-CĐ, dẫn đến việc thi môn trái với môn thi ĐH-CĐ không nằm lựa chọn em - Một số học sinh tham gia học bồi dưỡng chưa thật cố gắng nên kết thi học sinh giỏi chưa cao - Bản thân chưa đủ điều kiện, thời gian để tự bồi dưỡng, nghiên cứu nhằm nâng cao chất lượng dạy học, áp lực công việc ôn luyện không nhỏ - Cơ sở vật chất, trang thiết bị, tài liệu dạy học phục vụ cho cơng tác bồi dưỡng HSG cịn nhiều thiếu thn, h hng nhiu GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy «n thi HSG - Đặc biệt khối kiến thức thi học sinh giỏi rộng, em ôn luyện từ làm quen với ngơn ngữ lập trình thi khoảng 2-3 tháng Trước thuận lợi khó khăn qua nhiều năm tham gia ôn luyện thi học sinh giỏi rút nhiều học kinh nghiệm, có việc giúp học sinh đạt kết cao thi khó, cuối đề thi Những dạng thường dùng giải thuật đệ quy để giải Như ta biết, phép lặp kỹ thuật dùng để giải toán cách thực liên tiếp số câu lệnh vòng lặp điều kiện thỏa mãn Một kỹ thuật lập trình sử dụng để thay cho phép lặp kỹ thuật đệ quy Mặt khác, thực tế có nhiều tốn địi hỏi lặp lặp lại cách phức tạp Và đệ quy cung cấp cho ta chế giải toán phức tạp cách đơn giản Hơn nữa, đệ quy cịn thích hợp để giải tốn có chất đệ quy nhiều tốn chưa có lời giải phi đệ quy Từ mục đích nhằm nâng cao kết ôn luyện thi học sinh giỏi, đồng thời giải khó khăn q trình ơn luyện tơi chọn đề tài “Một số kinh nghiệm nâng cao hiệu ôn thi học sinh giỏi thông qua toán đệ quy, khử đệ quy đệ quy quay lui” làm đề tài sáng kiến kinh nghiệm II Mục đích nghiên cứu: - Nhằm nâng cao hiệu ôn luyện thi học sinh giỏi - Gây hứng thú học sinh tham gia thi học sinh giỏi môn tin học thông qua việc sinh test cho tập để chấm điểm, phân tích liệu xử lý - Khắc phục khó khăn giải tốn khó đề thi - Nâng cao lực thân đối tượng có sử dụng phương pháp đệ quy để giải tập III Đối tượng phạm vi nghiên cứu: Đối tượng: Đối tượng nghiên cứu đề tài tìm hiểu lý thuyết đệ quy, xây dựng phương pháp giải đệ quy thông qua tập từ đơn giản đến phức tạp Phạm vi: - Thực giải toán phương pháp đệ quy IV Nhiệm vụ nghiên cứu: - Nghiên cứu sở lý luận lý thuyết đệ quy, tìm hiểu ứng dụng đệ quy - Nghiên cứu phân tích đặc điểm, ưu - nhược điểm sử dụng giải toán phương phỏp quy GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy «n thi HSG - Nghiên cứu thực tiễn dạy học q trình hướng dẫn học sinh giải tốn đệ quy V Phương pháp nghiên cứu: Lý thuyết - Tham khảo tài liệu sách, báo, mạng Internet có liên quan trực tiếp đến đề tài Thực tiễn Trong q trình dạy học ơn luyện thi học sinh giỏi thực bước sau: + Tìm hiểu lý thuyết, tốn ứng dụng phương pháp đệ quy + Xây dựng toán đơn giản giải phương pháp đệ quy để học sinh tiếp cận bước dạng toán áp dụng + Thực giải tốn khó đề thi HSG tỉnh năm đề thi tỉnh khác + Tạo TEST cho tập từ dễ đến khó nhằm tạo hứng thú học tập cho học sinh, đồng thời đánh giá độ phức tạp thuật toán, đánh giá lực phân tích thuật tốn để viết chương trỡnh ti u nht GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy «n thi HSG B PHẦN NỘI DUNG I Cơ sở lý luận đề tài: Các khái niệm: a) Khái niệm Đệ quy: Nếu thuật toán toán A thực thuật toán tốn A’ có dạng giống A, thuật tốn đệ quy (A’ nhỏ A) Hay nói cách khác là: Từ tốn A chia nhỏ tốn thành tốn kiểu so với toán gốc ban đầu, chia nhỏ gặp đến toán mà xử lý (trường hợp suy biến) thao tác dừng Như trình lập trình, việc xây dựng chương trình (thủ tục/hàm) sử dụng phương pháp đệ quy hiểu sau: Chương trình đệ quy chương trình mà có lời gọi tới chương trình + Các tốn dùng đệ quy: Bài tốn dễ dàng giải số trường hợp riêng ứng với giá trị đặc biệt tham số Ta gọi trường hợp suy biến Trong trường hợp tổng quát, tốn quy tốn dạng giá trị tham số bị thay đổi Và sau số hữu hạn bước biến đổi Ðệ Quy dẫn đến trường hợp suy biến Ví dụ: Định nghĩa giai thừa n!: + Kết với test n = 5: 0! = 5! = x 4! Nếu n>0 n!=n*(n-1)! = x (4 x 3!) = x (4 x (3 x 2!)) + Code mô tả sau: = x (4 x (3 x (2 x 1!))) Function gt(n: Word): Longint; = x (4 x (3 x (2 x (1 x 0!)))) Trường hợp Begin suy biến If n = then gt : =1 = x (4 x (3 x (2 x 1))) Else gt := n*gt(n - 1); = 120 End; Các toán khác: Định nghĩa số tự nhiên: số tự nhiên n số tự nhiên n-1 số tự nhiên Định nghĩa dãy Fibonacci f(n): 1, Nếu n = 1; 1, Nếu n = 2; F(n-1) + f(n-2) Nếu n > Từ ví dụ nhận thấy chúng có chung cấu trúc dạng hàm gọi hàm khác dạng mơ hình phân cấp Tuy nhiên s bi toỏn, vic dựng hm GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG gi chớnh hữu dụng Có thể định nghĩa hàm đệ quy hàm gọi đến trực tiếp hay gián tiếp thông qua hàm khác Vấn đề đệ quy vấn đề phức tạp, gây khó hiểu cho người học, đặc biệt học sinh học lập trình có tư thuật tốn chưa sâu Do đề tài giới thiệu, phân tích, mơ tốn đệ quy từ đơn giản đến phức tạp để em dễ dàng tiếp cận Trước tiên ta xem xét khái niệm đệ quy, sau kiểm tra vài chương trình có chứa hàm đệ quy Cách tiến hành giải tốn đệ quy nhìn chung có điểm chung sau Trước tiên gọi hàm đệ quy để giải toán, hàm đệ quy thực biết cách giải toán trường hợp đơn giản (hay gọi trường hợp sở) Nếu hàm đệ quy gọi trường hợp sở, hàm cần đơn giản trả lại kết Nếu hàm gọi trường hợp phức tạp hơn, hàm đệ quy chia công việc cần giải thành hai phần Một phần hàm biết cách giải nào, cịn phần khơng biết cách giải nhiên để gọi có khả đệ quy, phần sau phải giống với toán ban đầu đơn giản hay nhỏ tốn ban đầu Bởi tốn giống với toán ban đầu nên hàm thực gọi để giải cơng việc đơn giản - lời gọi đệ quy hay gọi bước đệ quy Ðể đảm bảo việc đệ quy có kết thúc, lần gọi đệ quy tốn phải đảm bảo đơn giản bước đệ quy thực tiếp toán đơn giản dần, đơn giản tới mức trở thành trường hợp sở Có thể nhận thấy hàm đệ quy xử lý trường hợp sở để trả lại kết tính cho hàm mức phức tạp hơn, đến lượt hàm lại tính trả lại kết cho hàm phức tạp lời gọi hàm ban đầu b) Đặc điểm chương trình đệ quy: - Trong chương trình đệ quy có lời gọi đến chương trình - Mỗi lần gọi lại chương trình kích thước tốn thu nhỏ trước - Có trường hợp đặc biệt: trường hợp suy biến Đây trường hợp giúp kết thúc việc chia nhỏ chương trình để từ truy hồi công thức lấy kết c) Phân loại đệ quy: Gồm loại: Đệ quy trực tiếp Đệ quy gián tiếp GV: TrÇn Ngäc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG + quy trực tiếp: Là loại đệ quy mà đối tượng mơ tả trực tiếp qua nó: Ví dụ 1: A mơ tả qua A, B, C… Trong B, C khơng chứa A Ví dụ 2: Mơ tả đệ quy gia phả: Gia phả người bao gồm người gia phả người ch gia phả người mẹ Ví dụ 3: Mơ tả đệ quy thi chọn hoa hậu: - Chọn hoa hậu khu vực - Chọn hoa hậu hoa hậu + Đệ quy gián tiếp: Là loại đệ quy mà đối tượng mô tả gián tiếp qua nó: Ví dụ: A mơ tả qua B, C, D Trong đó: B mơ tả qua A E, cịn C D khơng chứa A Ngun tắc hoạt động giải thuật đệ quy: Trong trình thực lời gọi đệ quy, tham số, biến cục hay địa lưu tạm thời nhớ Các giá trị lấy để giải xảy trường hợp suy biến, giá trị vào sau lấy Chính q trình lưu xử lý liệu thực theo mơ hình stack Hình ảnh minh họa hoạt động stack a) Khái niệm stack: Stack (ngăn xếp) danh sách mà việc thêm xóa phần tử diễn đầu danh sách Stack thiết kế theo nguyên lý Last-In-First-Out (LIFO), nghĩa vào sau, trước Phần tử thêm vào sau phần tử lấy Ví dụ: - Xếp đĩa CD chồng lên nhau, đĩa CD cuối đưa vào đĩa CD lấy + Đặc điểm Stack Mọi phần tử Stack phải kiểu liệu kiểu liệu nào, kể struct hay object Một Stack gồm có phần đáy (bottom) phần đỉnh (top) Phần tử nằm đỉnh Stack gọi Top Item Mọi thao tác thêm, xóa phần tử diễn đỉnh Stack b) Nguyên tắc hoạt động giải thuật đệ quy ứng dụng Stack: - Khi thực giải thuật đệ quy bước giải thuật đệ quy thực - Khi gặp lời gọi đệ quy trước thực lời gọi đệ quy, đoạn mã lệnh chưa thực xong với đối tượng liệu liên quan thời im ny s c lu GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp ®Ư quy «n thi HSG vào stack - Đến lúc khơng thể thực lời gọi đệ quy (trường hợp suy biến) đối tượng lưu stack lấy để xử lý Ví dụ: Giải thuật đệ quy cho tốn tính N! Giả sử N = 3, quy trình thực sau: - Thực lời gọi hàm: giaithua := gt(3); máy tính ghi nhớ là: gt(3) := * gt(2); tính gt(2) - Tiếp tục máy lại ghi nhớ: gt(2):= 2*gt(1); tính gt(1) - Theo định nghĩa hàm gt(1):= 1; máy quay ngược lại: gt(2):= * 1; cho kết - Tiếp tục: gt(3) := * 2; cho kết Như kết cuối trả Ta có: 3! = Mặc dù ứng dụng giải toán phương pháp đệ quy kể toán học lẫn ứng dụng thực tiễn tồn số ưu – nhược điểm, cụ thể sau: c) Ưu điểm nhược điểm giải thuật đệ quy: + Ưu điểm: - Công cụ ứng dụng tốt với tốn có chất đệ quy, thể tư rõ ràng chặt chẽ - Ngắn gọn có khả định nghĩa tập hợp lớn đối tượng số câu lệnh hữu hạn - Giải thuật đệ quy thực nhiều tốn mà giải thuật khơng đệ quy khơng thể thực - Chương trình có chứa giải thuật đệ quy trở nên ngắn gọn, dễ hiểu, nêu bật chất vấn đề toán + Nhược điểm: - Chương trình có sử dụng phương pháp đệ quy tốn nhiều nhớ khơng dung đệ quy lần gọi đệ quy lại cần thêm vùng nhớ vùng nhớ cũ trì chưa giải phóng - Tốc độ thực chương trình chậm không dụng đệ quy - Do đệ quy lưu trữ liệu trung gian vào Stack nên lưu nhiều liệu lớn Stack gây tượng tràn Stack Đệ quy quay lui: a) Khái niệm đệ quy quay lui: Quay lui (Backtracking) phương pháp tìm kiếm lời giải cho tốn mà nghiệm hay tập cấu hìn thỏa mãn đồng thời tính chất P Q, đó: + P: Là cách xác định cấu hình + Q: Tính dừng tốn GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG Hay định nghĩa cách khác là: 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ử chọn cách thử tất khả Ví dụ 1: Giả sử cấu hình liệt kê có dạng a[1 n], thuật tốn quay lui thực qua bước 1) Xét tất giá trị a[1] nhận, thử a[1] nhận giá trị Với giá trị thử gán cho a[1] ta sẽ: 2) Xét tất giá trị a[2] nhận, thử cho a[2] nhận giá trị Với giá trị thử gán cho a[2] lại xét tiếp khả chọn a[3] tiếp tục bước: n) Xét tất giá trị a[n] nhận, thử cho a[n] nhận giá trị đó, thơng báo cấu hình tìm (a[1], a[2], , a[n]) Ví dụ 2: Liệt kê tất hoán vị n số tự nhiên nguyên dương theo thứ tự tăng dần từ điển: N = 3: gồm hoán vị: 123, 132, 213, 231, 312, 321 b) Giải thuật tổng quát đệ quy quay lui: Procedure TRY(i: integer); Var k: integer; Begin For k:=1 to n Begin Chọn bước thứ k If THEN Begin Ghi nhận bước If i1 then S:=S(k-1) + k; End; Function S(n:Word):longint; Var P:longint; i:Word; Begin If n=0 then P:=1 Else Begin P:=1; For i:=1 To n Do P := P+i; End; S:=P; End; BÀI 3: Cho n số nguyên dương, Tìm số fibonaxi thứ n Đệ quy Lặp (không đệ quy) Function Fibo(n:longint):longint; Begin If ((n=0)or(n=1)) then Fibo:=1 function Fibo(n : int64):int64; var f0, f1, fi:int64; i :integer; begin GV: Trần Ngọc Dương 13 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG else Fibo:=Fibo(n-2)+Fibo(n-1); End; // CHẠY CHẬM KHI N=45 if nn) then UCLN:=UCLN(m-n,n) else UCLN:=UCLN(m,n-m); End; Function UCLN(m,n:longint):longint; Begin While mn If m>n then m:=m-n else n:=n-m; UCLN:=m; End; Các tập đệ quy đệ quy quay lui: BÀI 1: Liệt kê tất hoán vị n số tự nhiên nguyên dương theo thứ tự tăng dần từ điển: Ví dụ: N = gồm hoán vị: 123, 132, 213, 231, 312, 321 Hướng dẫn: - Với N=1 có hốn vị là: - Với N= có hốn vị là: + Khi chọn số đứng đầu, ta có hốn vị: + Khi chọn số đứng đầu, ta có hốn vị: - Với N=3: + Khi chọn số đứng đầu, ta có hoán vị: 3; + Khi chọn số đứng đầu, ta có hốn vị: 3; + Khi chọn số đứng đầu, ta có hốn vị: 1; Với tập hợp N số, chọn số từ đến N, ta có hốn vị gồm: số đứng đầu chọn hoán vị tập số {1 N} Như vậy, ta nhận thấy giải tốn cách dùng thuật tốn đệ quy quay lui Ta có: - Try(j): thực chọn số thứ j cho hoán vị - Các phương án chọn: Có N phương án chọn, i = 1, 2, , N GV: Trần Ngọc Dương 14 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp ®Ư quy «n thi HSG - Chọn được: giá trị i chưa chọn - Phương pháp tổ chức lưu trữ: Dùng mảng chiều KTra1 có N phần tử mang kiểu liệu Boolean Giá trị khởi tạo ban đầu phần tử True KTra1 True True True … True i … n Giá trị i chưa chọn KTra1[i]= True - Thực bước thứ j: + Đánh dấu giá trị chọn: KTra1[i]:= False + Gán giá trị i cho số thứ j: - Cách tổ chức lưu trữ: Dùng mảng chiều KTra2 có N phần tử để lưu giá trị chọn: KTra2 True True True … True j … n Lưu vết: KTra2[j]:=i; - Thành công: Khi chọn đủ N số ( j=N) - Hủy bước thứ j: gán giá trị True cho KTra1[i]: KTra1[i]: =True; Thuật toán: (Code tham khảo phần phụ lục) procedure try(j:byte); var i,k:byte; begin for i:=1 to n if ktra1[i]=true then begin ktra1[i]:=false; ktra2[j]:=i; if j=n then begin for k:=1 to n write (ktra2[k],' '); writeln; end else try(j+1); ktra1[i]:=true; end; end; Chương trình chính: thực gọi try(1); BÀI 2: Liệt kê dãy nhị phân có độ dài n Biểu diễn dãy nhị phân có độ dài n dạng a[1 n] ta liệt kê dãy nhị phân cách thử dùng giá trị {0,1} gán cho a[i] Với giá trị th gỏn cho a[i] li th GV: Trần Ngọc Dương 15 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG cỏc giỏ tr gán cho a[i+1] Ví dụ với n=3, tìm kiếm quay lui sau: Thuật tốn: (Code tham khảo phần phụ lục) procedure try(i:integer); var j: integer; Begin for j := to {xét giá trị gán cho a[i]} begin a[i] := j; {thử a[i]} if i=n then xuat {nếu thử đến cấu hình cuối in kết quả} else try(i+1); {nếu chưa phải cấu hình cuối gọi đệ quy chọn tiếp a[i+1]} end; end; Chương trình chính: thực gọi try(1); BÀI 3: Bài toán rút tiền tự động ATM Một máy rút tiền tự động ATM có n (na[i-1] then if i=3 then xuat else begin b[j]:=1; try(i+1); b[j]:=0; end; end; end; GV: Trần Ngọc Dương 17 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG BÀI 5: Tiền khách sạn Trong dịp nghi lễ 30 tháng tháng vừa qua đợt nghỉ với ngày giỗ tổ Hùng Vương 10 tháng 3(âm lịch) nên số ngày nghỉ lễ tăng lên Vì lượng khách du lịch đổ Nha Trang tham quan tăng kỷ lục, dẫn đến tinh trạng khách sạn “cháy phòng” Khách sạn Quang Huy phòng nên định cho th phịng theo hình thức thỏa thuận giá Sau tổng hợp đơn đặt hàng, khách sạn nhận n đơn đặt hàng, đơn đặt hàng thứ i đăng ký ngày bắt đầu ai, ngày trả phòng bi chấp nhận trả số tiền th phịng ci Do có nhiều đơn đặt hàng, thời gian đặt phòng lại chồng chéo nhau, số tiền khách hàng chấp nhận trả cho khách sạn khác nên ban quản lý khách sạn khó khăn khơng biết nhận lời hay từ chối khách hàng Yêu cầu: Viết chương trình giúp khách sạn nhận đơn đặt phòng cho lợi nhuận thu lớn Lưu ý: Theo điều lệ khách sạn, khách hàng phải trả phòng trước 12 trưa, khách hàng khác nhận phịng từ 12 ngày Dữ liệu vào: ghi tệp khachsan.inp bao gồm: - Dòng thứ số nguyên n (1 ≤ n ≤ 12000) thể số đơn đặt hàng - n dòng gồm số nguyên ai, bi ci Mỗi số cách khoảng trắng với ràng buộc(l ≤ai ≤ bi ≤ 100, ≤ ci ≤1000) Dữ liệu ra: lưu tệp khachsan.out với số nguyên thể số tiền lớn Ví dụ: khachsan.inp 128 236 476 khachsan.out 20 khachsan.inp 145 138 354 469 khachsan.out 17 Thuật toán: (Code tham khảo phần phụ lục) procedure try(i:byte); var j:byte; begin for j:=1 to n if b[j]=0 then begin a[i]:=j; if a[i]>a[i-1] then if vao[a[i]]>=ra[a[i-1]] then if i=k then xuat {kiem tra tuan tu cac hoan vi} else begin b[j]:=1; try(i+1); GV: Trần Ngọc Dương 18 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy «n thi HSG b[j]:=0; end; end; end; * Ghi chú: Các toán kèm theo giải thuật, test bổ sung thêm phần phụ lục đĩa CD Kết đạt được: Với mục đích nâng cao hiệu ôn thi học sinh giỏi thân tơi ln tìm tịi áp dụng phương pháp giải vấn đề, đặc biệt toán khó Do phương pháp đệ quy áp dụng số toán nhằm trang bị cho em số kiến thức giải nhiều cách, có phân tích thuật tốn, nhớ lưu trữ tốc độ xử lý chương trình Bản thân tơi nhận thấy việc phân tích áp dụng phương pháp đệ quy, khử đệ quy đệ quy quay lui để giải số toán giúp cho đối tượng tham gia đạt số kết sau: Đối với giáo viên tham gia giảng dạy: - Tăng cường tiếp thu kiến thức tư giải thuật, bồi dưỡng trau dồi kiến thức - Q trình ơn thi học sinh giỏi khơng phải cách truyền đạt kiến thức chiều, mà thân giáo viên học tập từ em học sinh - Thơng qua tốn giải phương pháp đệ quy, khử đệ quy, đệ quy quay lui giúp giáo viên có kiến thức rõ nét việc phân tích thuật tốn làm cho chương trình mượt nói tốc độ xử lý, không gian lưu trữ - Xây dựng test cho chương trình để tạo hứng thú học tập thử nghiệm đặc trưng nhược điểm phương pháp đệ quy Đối với học sinh trực tiếp tham gia ơn luyện: - Biết phân tích, đánh giá giải thuật từ xây dựng chương trình hồn thiện hơn, nhằm vét tất test đề thi - Hứng thú học tập thông qua cách chấm điểm từ test giáo viên xây dựng - Kết năm ôn thi học sinh: Họ tên Giải Năm học Nguyễn Thị Thu Trang KK 2015 Nguyễn Thị Đức Ba 2017 Đồng Đức Mạnh Ba 2017 Trần Tuấn Anh KK 2018 Phm Hong Quõn KK 2018 TT GV: Trần Ngọc Dương 19 SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG C KT LUN VÀ KIẾN NGHỊ I Kết luận: Với mục đích ln hướng tới kết tốt q trình ơn thi HSG, việc thân giáo viên giảng dạy phải cập nhật kiến thức ln phải có tính sáng tạo điều tất yếu Tùy vào khả tiếp cận học sinh mà việc áp dụng kiến thức mức độ khó khác Do tốn thiên hướng giải phương pháp đệ quy thông thường áp dụng học sinh có khả đạt giải trở lên, việc áp dụng học sinh mức độ tư thuật toán yếu có tính khả thi khơng cao, thân em chưa phân tích độ phức tạp thuật toán, vùng nhớ lưu trữ thực lời gọi đệ quy (vùng nhớ tạm lưu trữ giá trị chưa thực hiện) II Những kiến nghị - đề xuất: Trong q trình ơn luyện, thân tơi nhận thấy việc ơn thi để có kết cao thật dễ dàng, bị chi phối yếu tố như: - Học sinh không muốn thi mơn Tin học mơn khơng thi Đại học, cao đẳng - Tư lập trình phức tạp, học sinh dễ chán nản Chính tơi mạnh dạn đề xuất vấn đề ôn luyện thi học sinh giỏi môn Tin học sau: - Bản thân cán giáo viên, đặc biệt Ban Giám hiệu nhà trường giáo viên chủ nhiệm cần động viên, khuyến khích tạo động lực để em tham gia - Tại đơn vị trường THPT trường điểm, việc tuyển học sinh khó có chất lượng, nên cần phải động viên em tham gia thi mơn (vì mơn Tin học thi vào buổi chiều tách biệt với môn tự nhiên thi vào buổi sáng) XÁC NHẬN CỦA HIỆU TRƯỞNG Thanh Hóa, ngày 10 tháng năm 2018 Tơi xin cam đoan SKKN viết, khơng chép nội dung người khác (Ký ghi rừ h tờn) Trn Ngc Dng GV: Trần Ngọc Dương 20 SangKienKinhNghiem.net ... kết ôn luyện thi học sinh giỏi, đồng thời giải khó khăn q trình ơn luyện tơi chọn đề tài ? ?Một số kinh nghiệm nâng cao hiệu ôn thi học sinh giỏi thông qua toán đệ quy, khử đệ quy đệ quy quay lui”... hồi công thức lấy kết c) Phân loại đệ quy: Gồm loại: Đệ quy trực tip v quy giỏn tip GV: Trần Ngọc Dương SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG + quy. .. SangKienKinhNghiem.net Một số kinh nghiệm giải toán phương pháp đệ quy ôn thi HSG S khỏc đệ quy lặp: Sự so sánh phần giúp học sinh phân biệt tốt việc áp dụng thuật toán tương ứng để giải toán cách

Ngày đăng: 25/10/2022, 05:58

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

Tài liệu liên quan