Skkn cách giải bài toán dãy con đơn điệu tăng dài nhất bằng phương pháp quy hoạch động trên ngôn ngữ lập trình c++

28 9 0
Skkn cách giải bài toán dãy con đơn điệu tăng dài nhất bằng phương pháp quy hoạch động trên ngôn ngữ lập trình 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 HÀ TRUNG SÁNG KIẾN KINH NGHIỆM CÁCH GIẢI BÀI TOÁN DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT BẰNG PHƯƠNG PHÁP QUY HOẠCH ĐỘNG TRÊN NGÔN NGỮ LẬP TRÌNH C++ Người thực hiệ[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT HÀ TRUNG SÁNG KIẾN KINH NGHIỆM CÁCH GIẢI BÀI TOÁN DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT BẰNG PHƯƠNG PHÁP QUY HOẠCH ĐỘNG TRÊN NGƠN NGỮ LẬP TRÌNH C++ Người thực hiện: Lê Thùy Giang Chức vụ: Giáo viên SKKN thuộc lĩnh vực (mơn): Tin học skkn THANH HỐ, NĂM 2022 MỤC LỤC MỞ ĐẦU 1.1 Lý chọn đề tài .1 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu .1 1.4 Phương pháp nghiên cứu .1 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 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 đề đặt 2.3.1 Phần lý thuyết 2.3.2 Phần tập .7 2.4 Hiệu SKKN hoạt động giáo dục, với thân, đồng nghiệp nhà trường 18 KẾT LUẬN, KIẾN NGHỊ .20 3.1 Kết luận 20 3.2 Kiến nghị .20 skkn MỞ ĐẦU 1.1 Lý chọn đề tài Kết kỳ thi học sinh giỏi cấp tỉnh hàng năm tiêu chí hàng đầu để đánh giá thành tích nhà trường THPT năm học đó, thế, trường THPT Hà Trung trường THPT khác tỉnh cố gắng nỗ lực kỳ thi Để lấy điểm cao thi học sinh giỏi mơn tin, hầu hết em phải nắm thuật toán quy hoạch động để giải tốn Tất nhiên, cịn có cách khác để giải tốn Nhưng thi code có giới hạn thời gian, nhớ chương trình, nên thuật tốn hiệu cần thiết Và trường hợp vậy, quy hoạch động thuật toán xuất nhiều Trong đề thi học sinh giỏi môn Tin học năm, dạng tập dãy dạng tập khó, thường xuất Khi gặp dạng tập này, nhiều học sinh không làm làm điểm không đạt tối đa Nguyên nhân chương trình chạy cho kết sai chương trình cho kết với test có liệu nhỏ, cịn test có liệu lớn chương trình chạy q thời gian quy định (1 test/1s) nên bị điểm test Một tốn có nhiều thuật toán để giải, việc phải đưa thuật toán tối ưu (bộ nhớ, thời gian, độ phức tạp ) để giải tốn Để giải tốn dãy đơn điệu tăng dài có nhiều phương pháp như: truy vét, vét cạn, duyệt qua phần tử dãy mẹ, quy hoạch động Tôi xin mạnh dạn trình bày vấn đề đề tài: “Cách giải toán dãy đơn điệu tăng dài phương pháp quy hoạch động ngơn ngữ lập trình C++” 1.2 Mục đích nghiên cứu Khi học sinh gặp dạng tập kỳ thi học sinh giỏi khơng bị điểm hay nói cách khác lấy điểm tối đa toán Để nâng cao chất lượng việc dạy học, phục vụ cho đội tuyển ôn thi học sinh giỏi hàng năm 1.3 Đối tượng nghiên cứu - Các toán dãy đơn điệu tăng dài - Các toán ứng dụng, vận dụng từ toán kinh điển quy hoạch động chương trình lập trình nâng cao ôn thi học sinh giỏi 1.4 Phương pháp nghiên cứu Để trình bày sáng kiến kinh nghiện này, tơi sử dụng phối kết hợp nhiều phương pháp như: nghiên cứu sở lý thuyết, nghiên cứu tài liệu, thuyết trình, phương pháp dạy học đổi mới… phù hợp với môn học thuộc lĩnh vực Tin học Nghiên cứu đưa cách trình bày viết chương trình hồn thiện số ví dụ từ đơn giản đến nâng cao toán dãy đơn điệu tăng dài skkn 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 Căn vào mục tiêu môn Tin học: phải cung cấp tri thức bản, làm tảng để học sinh tiếp tục sâu vào tìm hiểu xây dựng khoa học Tin học tiếp thu tri thức lĩnh vực kĩ thuật công nghệ tiên tiến, lĩnh vực công nghệ thông tin Để xác định, đề nhiệm vụ cụ thể môn, tổ chức hoạt động đào tạo góp phần thực mục tiêu giáo dục mà Đảng Nhà nước đề Nếu học sinh hiểu phần dạng tập dãy đơn điệu tăng dài nhất, cách giải quyết, cách chọn phương pháp giải toán phụ thuộc vào liệu đề (dữ liệu nhỏ, liệu lớn) chắn học sinh đam mê hơn, u thích mơn học hơn, chất lượng học sinh nâng cao đặc biệt chất lượng đội tuyển ôn thi học sinh giỏi môn Tin học 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Thực tế sau nhiều năm giảng dạy môn tin học trường THPT, đặc biệt năm học gần nhà trường phân công giảng dạy, ôn thi đội tuyển học sinh giỏi cấp tỉnh, nhận thấy để đạt kết cao thi học sinh giỏi cấp tỉnh mơn văn hố, đặc biệt mơn tin học học sinh phải nỗ lực hết mình, tìm hiểu dạng tập phương pháp giải khác từ chọn phương pháp thuận tiện tối ưu Nhiều năm, kết thi học sinh giỏi cấp đạt chưa cao có nhiều nguyên nhân chủ yếu em không lấy điểm tối đa tốn em khơng làm dạng tập có làm kết sai làm chạy với test có liệu nhỏ, cịn test có liệu lớn khơng chạy (Đặc biệt câu 4, câu đề thi) Trong năm học 2021 – 2022, trường THPT Hà Trung có 40 lớp Trong đó, khối 10 có 13 lớp, khối 11 có 13 lớp, khối 12 có 14 lớp Trường có 03 phịng máy hoạt động, khơng thể đủ phịng thực hành cho tất lớp Mặc dù nhà trường có đội ngũ giáo viên trẻ nhiệt tình tâm huyết với nghề, mơn tin học mơn học đặc thù, có nhiều kiến thức khó đặc biệt phần lập trình lớp 11 nên có nhiều học sinh chưa hiểu nội dung chương trình học sách giáo khoa, dẫn đến tình trạng chán học, khơng thích học, chưa dám nói đến học sinh u thích mơn tin lớp 11 Thêm vào tư tưởng đa số học sinh – phụ huynh xem môn Tin học môn phụ, nên không mặn mà, không quan tâm tới mơn học Chính lí việc lựa chọn bồi dưỡng học sinh giỏi vô khó khăn Khó khăn lại chồng chất khó khăn skkn Trước đây, cần nói đến tốn sử dụng thuật toán quy hoạch động học sinh bỏ qua ln, học sinh chưa hiểu quy hoạch động sử dụng quy hoạch động áp dụng cho toán nên lúc quy hoạch động phần học sinh bị điểm nhiều skkn 2.3 Các giải pháp sử dụng để giải vấn đề đặt 2.3.1 Phần lý thuyết 2.3.1.1 Giới thiệu thuật toán quy hoạch động Là kĩ thuật thiết kế thuật toán theo kiểu chia toán lớn thành toán con, sử dụng lời giải tốn để tìm lời giải cho toán ban đầu Khác với chia để trị, quy hoạch động, thay gọi đệ quy, tính trước lời giải tốn lưu vào nhớ (thường mảng), sau lấy lời giải tốn mảng tính trước để giải tốn lớn Ví dụ : với tốn kinh điển Fibonaci Tính số fibonaci thứ 5 (tính F(5)) F(0) = 0, F(1) = 1; F(n) = F(n-1) + F(n-2) với n>1; F(2) = 1, F(3) = 2, F(4) = 3, F(5) = Để dễ hình dung quy hoạch động, tiếp cận theo chia để trị trước sau quan sát cách thức hoạt động thuật toán Chia để trị #include using namespace std; int Fib(int n) { if (n>n; for(int i=1; i>a[i]; a[0] = -inf; a[n+1] = inf; F[0]=1; for(int i=1; i

Ngày đăng: 02/02/2023, 08:30

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

Tài liệu liên quan