1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(SKKN 2022) Sử dụng phương pháp quy hoạch động để giải quyết một số bài toán cực trị về xâu trong bồi dưỡng học sinh giỏi tin học lớp 11

14 6 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 105 KB

Nội dung

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT HÀM RỒNG SÁNG KIẾN KINH NGHIỆM SỬ DỤNG PHƯƠNG PHÁP QUY HOẠCH ĐỘNG ĐỂ GIẢI QUYẾT MỘT SỐ BÀI TOÁN DẠNG CỰC TRỊ VỀ XÂU TRONG BỒI DƯỠNG HSG TIN HỌC 11 Người thực hiện: Lê Xuân Nam Chức vụ: Giáo viên SKKN thuộc lĩnh mực (môn): Tin học THANH HOÁ NĂM 2022 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 phạm vi nghiên cứu 1.4 Phương pháp nghiên cứu NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 PHƯƠNG PHÁP QUY HOẠCH ĐỘNG 2.2 THỰC TRẠNG TRƯỚC KHI ÁP DỤNG SÁNG KIẾN KINH NGHIỆM .2 2.3 MỘT SỐ BÀI TOÁN ÁP DỤNG .3 Bài 1:… .3 Bài 2: Bài 3: Bài 4: 2.4 HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM ĐỐI VỚI HOẠT ĐỘNG GIÁO DỤC, VỚI BẢN THÂN, ĐỒNG NGHIỆP VÀ NHÀ TRƯỜNG .9 KẾT LUẬN, KIẾN NGHỊ .10 TÊN ĐỀ TÀI: SỬ DỤNG PHƯƠNG PHÁP QUY HOẠCH ĐỘNG ĐỂ GIẢI QUYẾT MỘT SỐ BÀI TOÁN DẠNG CỰC TRỊ VỀ XÂU TRONG BỒI DƯỠNG HSG TIN HỌC 11 MỞ ĐẦU 1.1 Lý chọn đề tài Trong trình dạy bồi dưỡng học sinh lớp 11 thi HSG cấp tỉnh mơn tin học, tơi thấy thường có số tốn cần sử dụng kĩ thuật lập trình nâng cao mà chương trình phổ thơng em chưa gặp Đặc biệt tốn mang tính cực trị dãy số hay xâu Tuy giải toán nhiều cách khác thi bị giới hạn thời gian nhớ chương trình việc lựa chọn thuật toán cho hiệu việc thực cần thiết Quy hoạch động phương pháp hữu hiệu để giải toán cực trị Do vậy, tơi lựa chọn đề tài “Sử dụng phương pháp quy hoạch động để giải số toán cực trị xâu bồi dưỡng học sinh giỏi tin học lớp 11” 1.2 Mục đích nghiên cứu Rèn luyện cho học sinh sử dụng phương pháp sử dụng quy hoạch động đóng góp thêm dạng tập cho cơng tác bồi dưỡng học sinh giỏi môn Tin học tốt 1.3 Đối tượng phạm vi nghiên cứu - Môn Tin học lớp 11 trường THPT; - Học sinh đội tuyển HSG môn Tin học khối 11 trường THPT Hàm Rồng; 1.4 Phương pháp nghiên cứu - Phân tích, tổng hợp, khảo sát - Đánh giá so sánh kết học sinh; NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 PHƯƠNG PHÁP QUY HOẠCH ĐỘNG Trong chiến lược chia để trị, người ta phân toán cần giải thành toán Các toán lại tiếp tục phân thành toán nhỏ hơn, tiếp tục ta nhận tốn giải dễ dàng Tuy nhiên, trình phân chia vậy, ta gặp nhiều lần toán Tư tưởng phương pháp quy hoạch động sử dụng bảng để lưu giữ lời giải toán giải Khi giải toán cần đến nghiệm toán cỡ nhỏ hơn, ta cần lấy lời giải bảng mà không cần phải giải lại Chính mà thuật tốn thiết kế quy hoạch động hiệu Khi cần đến quy hoạch động? Khơng có cơng thức cho tốn Tuy nhiên, có số tính chất tốn mà ta nghĩ đến quy hoạch động Dưới hai tính chất bật số chúng: - Bài tốn có tốn gối - Bài tốn có cấu trúc tối ưu Thường tốn có đủ hai tính chất này, dùng quy hoạch động Để giải toán quy hoạch động, cần tiến hành công việc sau: - Tìm nghiệm tốn nhỏ nhất; - Tìm cơng thức (hoặc quy tắc) xây dựng nghiệm tốn thơng qua nghiệm toán cỡ nhỏ hơn; - Tạo bảng lưu trữ nghiệm toán Sau tính nghiệm tốn theo cơng thức tìm lưu vào bảng; - Từ tốn giải để tìm nghiệm toán 2.2 THỰC TRẠNG TRƯỚC KHI ÁP DỤNG SÁNG KIẾN KINH NGHIỆM Trong trình bồi dưỡng học sinh giỏi Tin học 11 có số tập lập trình áp dụng thuật tốn thời gian thực chương trình khơng đảm bảo Đây khó khăn lớn học sinh em chưa làm quen nhiều với tập thiết kế thuật toán quy hoạch động Vì việc tập hợp tốn quy hoạch động thành hệ thống tập để học sinh tham khảo cần thiết 2.3 MỘT SỐ BÀI TOÁN ÁP DỤNG Bài 1: Cho xâu X, Y Hãy tìm độ dài lớn xâu chung X Y Biết xâu xâu thu xố số kí tự xâu Dữ liệu vào: từ file văn Bai1.inp gồm: - Dòng đầu xâu X - Dòng hai xâu Y (Chú ý xâu viết liền không cách, độ dài xâu không 103) Dữ liệu ra: ghi file văn Bai1.out số độ dài xâu chung lớn Ví dụ: Bai1.inp abc1def2ghi3 abcdefghi123 Bai1.out 10 a) Phân tích thuật tốn: Ta xây dựng hàm mục tiêu F[i,j] có ý nghĩa độ dài xâu chung dài xâu Xi (xâu gồm i kí tự xâu X) xâu Yj( xâu gồm j kí tự xâu Y) Dễ thấy: + F[0,j] = F[i,0] = + Nếu X[i] = Y[j] F[i,j] = F[i-1,j-1] + + Nếu X[i] ≠ Y[j] F[i,j] = max(F[i-1,j],F[i,j-1]) Kết tốn F[m,n] Trong m, n độ dài xâu X Y Cộng thêm dấu cách vào đầu xâu chạy từ số b) Chương trình tham khảo: #include using namespace std; string x,y; int f[1003][1003], n, m; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); freopen("Bai1.inp","r",stdin); freopen("Bai1.out","w",stdout); cin>>x>>y; m=x.length(); n=y.length(); x=" "+x; y=" "+y; for(int i=0; i

Ngày đăng: 05/06/2022, 10:23

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

TÀI LIỆU LIÊN QUAN

w