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

(SKKN 2022) tìm hiểu thời gian thực của thuật toán để lựa chọn thuật toán tối ưu trong các bài toán quen thuộc bằng ngôn ngữ lập trình c++

24 5 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 24
Dung lượng 115,43 KB

Nội dung

Nội dung Trang Mở đầu 1.1 Lí chon đề 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 1.5 Những điểm sáng kiến 2 Nội dung sáng kiến 2.1 Cơ sở lí luận sáng kiến 2.2 Thực trạng vấn đề trước áp dụng sáng kiến 2.3 Nội dung sáng kiến 3-20 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo 20 dục với thân, đồng nghiệp nhà trường Kết luận kiến nghị 21 Tài liệu tham khảo 22 Danh mục đề tài SKKN mà tác giả Sở 22 GD&ĐT xếp loại 1 MỞ ĐẦU 1.1Lý chọn đề tài Trong trình giảng dạy đặc biệt thi học sinh giỏi thường thấy có yêu cầu liệu với nhiều test khác Khi gặp toán học sinh bắt đầu thường làm với thuật toán đơn giản áp dụng cho liệu nhỏ, với test yêu cầu số liệu lớn học sinh dễ điểm (test) Để giải vấn đề Tôi viết sáng kiến kinh nghiệm với đề tài “ Tìm hiểu thời gian thực thuật tốn để lựa chọn thuật toán tối ưu toán quen thuộc ngơn ngữ lập trình C++ ” Nội dung đề tài kiến thức thuật toán số nguyên tố việc vận dụng thuật toán giải tốn 1.2 Mục đích nghiên cứu Làm tài liệu cho giáo viên phục vụ giảng dạy, bồi dưỡng học sinh giỏi 1.3 Đối tượng nghiên cứu Nhóm đội tuyển tin nhà trường THPT Mai Anh Tuấn 1.4 Phương pháp nghiên cứu - Phân loại theo thuật toán tương ứng với toán cụ thể - Tiến hành thực nghiệm - Đánh giá tổng kết kinh nghiệm 1.5 Những điểm sáng kiến Chia nhóm nghiên cứu thành hai nhóm , kết hợp giũa thuật toán thực hành để đánh giá mức độ vận dụng NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm Việc phân loại dạng theo thuật toán làm cho học sinh dễ dang nhận biết thuật toán áp dụng cho toán cách dễ dàng linh hoạt 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Trong trình dạy đội tuyển năm trước, học sinh nhiều cách sử dụng thuật toán cho bài, đẫn tới việc giải nhiều thời gian điểm bị thiếu test thời gian bị giới hạn liệu 2.3 Nội dung sáng kiến 2.3.1 Tìm hiểu thời gian thực thuật tốn Có hai cách tiếp cận để đánh giá thời gian thực thuật toán Cách thứ thực nghiệm, viết chương trình cho chạy chương trình với liệu vào khác máy tính Cách thứ hai phương pháp lí thuyết, coi thời gian thực thuật toán hàm số cỡ liệu vào (cỡ liệu vào tham số đặc trưng cho liệu vào, có ảnh hưởng định đến thời gian thực chương trình Ví dụ tốn kiểm tra số ngun tố cỡ liệu vào số cần kiểm tra; hay với toán xếp dãy số, cỡ liệu vào số phần tử dãy) Thông thường cỡ liệu vào số nguyên dương n , ta sử dụng hàm số T(n) n cỡ liệu vào để biểu diễn thời gian thực thuật toán Trong tài liệu này, hiểu hàm số T(n) thời gian nhiều cần thiết để thực thuật toán với liệu đầu vào cỡ n Sử dụng kí hiệu tốn học lớn để mơ tả độ lớn hàm Giả sử n số nguyên dương, T(n) f(n) hai hàm thực không âm Ta viết T(n)= O(f(n)) tồn số dương c n0 , cho T(n)≤ c x f(n), n ≥ n0 Nếu thuật tốn có thời gian thực T(n)= O(f(n)) nói thuật tốn có thời gian thực cấp f(n) Ví dụ: Giả sử T(n) = n2 + 2n, ta có n2 + 2n ≤ 3n2 với n ≥ Vậy T(n) = O(n2) trường hợp ta nói thuật tốn có thời gian thực cấp n2 2.3.2 Một số quy tắc đánh giá thời gian thực thuật toán Để đánh giá thời gian thực thuật tốn trình bày ngơn ngữ C++, ta cần biết cách đánh giá thời gian thực câu lệnh C++ Trước tiên, xem xét câu lệnh C++ Các câu lệnh C++ định nghĩa sau: Các phép gán, đọc, viết câu lệnh (được gọi lệnh đơn) Nếu S1, S2, , Sm câu lệnh { S1; S2; …; Sm; } câu lệnh (được gọi lệnh hợp thành hay khối lệnh) Nếu S1 S2 câu lệnh E biểu thức lơgic If (E) S1; else S2; câu lệnh (được gọi lệnh rẽ nhánh hay lệnh If) Nếu S câu lệnh E biểu thức lơgic While (E) S; câu lệnh (được gọi lệnh lặp điều kiện trước hay lệnh While) Nếu S1, S2,…,Sm câu lệnh E biểu thức lơgic Do S1; S2; …; Sm; While (E); câu lệnh (được gọi lệnh lặp điều kiện sau hay lệnh Do While) Nếu S lệnh, E1 E2 biểu thức kiểu thứ tự đếm Thì For (i=E1; i> n; for (long long i = ; i < n ; i++) { cin >> t; cout dmax){ dmax = dd; } d++; dd= 1; } } cout x; if(b[x]) { ++i; c[i]=x;} } if (i==0) cout

Ngày đăng: 06/06/2022, 07:39

HÌNH ẢNH LIÊN QUAN

Sau đây là bảng ước lượng (*) giới hạn dữ liệu vào tương ứng với độ phức tạp của thuật toán đảm bảo thực hiện trong thời gian tối đa 1 giây. - (SKKN 2022) tìm hiểu thời gian thực của thuật toán để lựa chọn thuật toán tối ưu trong các bài toán quen thuộc bằng ngôn ngữ lập trình c++
au đây là bảng ước lượng (*) giới hạn dữ liệu vào tương ứng với độ phức tạp của thuật toán đảm bảo thực hiện trong thời gian tối đa 1 giây (Trang 5)
Với bảng ước lượng này giáo viên có thể hướng dẫn học sinh xác định độ phức tạp của thuật toán phải đạt được để đảm bảo thời gian thực hiện - (SKKN 2022) tìm hiểu thời gian thực của thuật toán để lựa chọn thuật toán tối ưu trong các bài toán quen thuộc bằng ngôn ngữ lập trình c++
i bảng ước lượng này giáo viên có thể hướng dẫn học sinh xác định độ phức tạp của thuật toán phải đạt được để đảm bảo thời gian thực hiện (Trang 5)
Như vậy theo bảng ước lượng (* ): - (SKKN 2022) tìm hiểu thời gian thực của thuật toán để lựa chọn thuật toán tối ưu trong các bài toán quen thuộc bằng ngôn ngữ lập trình c++
h ư vậy theo bảng ước lượng (* ): (Trang 18)

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

TÀI LIỆU LIÊN QUAN

w