CHUYÊN đề 2 một số THUẬT TOÁN cơ bản PYTHON THCS

21 128 1
CHUYÊN đề 2 một số THUẬT TOÁN cơ bản PYTHON THCS

Đ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

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC BẬC THCS CHUYÊN ĐỀ 2 MỘT SỐ THUẬT TOÁN CƠ BẢN Tác giả NGƯT Nguyễn Tấn Phong Đơn vị Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng PHẦN I CÁC DẠNG TOÁN, THUẬT TOÁN CỦA ĐỀ THI HSG TIN THCS 1 Định hướng đề thi Thuật toán đa dạng, phù hợp với nhiều mức độ năng lực học sinh, bám sát theo xu hướng ra đề chung của các huyện và tình hình học sinh Mỗi bài toán luôn có nhiều phương án giải khác nhau, độ phức tạp và tối ưu thuật toán khác nhau Đề gồm 3 hoặc 4 b.

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC BẬC THCS CHUYÊN ĐỀ 2: MỘT SỐ THUẬT TOÁN CƠ BẢN Tác giả: NGƯT Nguyễn Tấn Phong Đơn vị: Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng PHẦN I CÁC DẠNG TOÁN, THUẬT TOÁN CỦA ĐỀ THI HSG TIN THCS Định hướng đề thi - Thuật toán đa dạng, phù hợp với nhiều mức độ lực học sinh, bám sát theo xu hướng đề chung huyện tình hình học sinh Mỗi tốn ln có nhiều phương án giải khác nhau, độ phức tạp tối ưu thuật toán khác - Đề gồm bài, chia điểm/bài theo thang 20 điểm Các dạng toán thường gặp 2.1 Dạng 1: Dạng toán số học, xử lý phạm vi liệu số Các toán số học với số nguyên (hai ba số) tìm UCLN, BCNN số nguyên, số nguyên tố, tính tổng quy luật, tổng liên tiếp, … Dùng hàm số học //,%, abs(), sqrt(), … tách số, xác định tính chẵn lẻ, … Các tốn số học đơn giản dãy số mà phần tử dãy mô tả phương pháp liệt kê tính chất đặc trưng có giới hạn số phần tử, liệt kê số phần tử dãy số, tìm phần tử thứ i dãy số, tổng phần tử dãy số (VD: dãy số nguyên tố, dãy số fibonacci, dãy lucas, dãy số tiến, …) 2.2 Dạng 2: Các toán mảng chiều xâu ký tự Sử dụng thuật toán mảng chiều, string xếp, tìm kiếm phần tử thỏa tính chất, thêm bớt, …; chuỗi đối xứng, loại bỏ ký tự trùng nhau, chuyển đổi chuỗi thành số, … Các thuật toán dãy số đơn điệu mà phần tử dãy không mô tả phương pháp liệt kê tính chất đặc trưng phần tử tăng liên tiếp, giảm liên tiếp, dãy thỏa tính chất, dãy bị chặn, … 2.3 Dạng 3: Các toán mảng hai chiều, gắn liền thực tiễn Sử dụng thuật toán mảng hai chiều (ma trận số) xếp, tìm kiếm, … theo hàng, theo cột, theo đường chéo Bài toán với thuật tốn có độ phức tạp cao, giải nhiều thuật toán Đề toán mang tính thực tế có liên hệ với sống (định hướng hướng phát triển lực học sinh, theo hướng tích hợp), sử dụng thuật tốn nâng cao để phân hóa xét chọn giải cho học sinh Biểu điểm định hướng chấm - Chấm tự động phần mềm Themis chấm code để phân hóa - Dịch thành cơng chương trình đọc liệu từ file lên biến nhớ 1đ/1bài (chấm tự động chấm code) - Mỗi chấm từ -> 5test (gồm test liệu nhỏ, test liệu lớn, test biên cực biên), test điểm (chấm tự động) - Giới hạn thời gian tối đa 5s - Xét giải ưu tiên điểm trước, sau đến thuật tốn 2 PHẦN II CÁC DẠNG TỐN, THUẬT TOÁN CƠ BẢN I Quy ước lại khái niệm thuật giải thuật toán Thuật giải: Là tập hợp bước để giải hoàn chỉnh tốn, số bước thuật giải thay đổi vị trí mà khơng ảnh hưởng đến kết Thuật toán: Là tập hợp bước gồm phép toán câu lệnh để giải toán, bước phép tốn thuật tốn khơng thể thay đổi Ví dụ 1: Ví dụ 2: Viết chương trình tìm số lớn (max) hai số Thứ tự bước phải làm là: II Xây dựng hàm để giải toán thực tế Đặt vấn đề: Hàm giải tốn tin học quan trọng, có tính then chốt để giải hồn chỉnh tốn Tất ngơn ngữ lập trình có phần định nghĩa hàm (function/define) Thơng thường hàm có hai kiểu trả giá trị trả giá trị số trả giá trị logic dạng True/False Nếu cần tính tốn kết xây dựng hàm trả giá trị số, để kiểm tra tính chất trả giá trị logic True/False Đối với python, hàm trả lúc nhiều giá trị liệu có cấu trúc chuỗi hay danh sách, Các ví dụ xây dựng hàm: Ví dụ 1: Viết hàm tính tổng chữ số số nguyên dương n -> với kiểu trả số def tongcs(n): stam = for i in str(n): stam = stam + int(i) return stam cách khác def tongcs(n): return sum(map(int,str(n))) Ví dụ 2: Viết hàm kiểm tra tổng chữ số số nguyên dương n số chẵn hay lẻ -> kiểu tra logic True/False def kttongcs(n): stam = for i in str(n): stam = stam + int(i) if stam%2==0: return True else: return False Ví dụ 3: Viết hàm kiểm tra số nguyên tố n -> kiểu tra logic True/False def ktnt(n): if n kết hợp hàm với def tongcs(n): stam = for i in str(n): stam = stam + int(i) return stam def ktnt(n): if n dòng lệnh thực thi có list tạo chứa số: ['5', '6', '3', '2', '4', '7', '5'] khơng gán cho danh sách cụ thể hết Muốn truy xuất dùng biến để lưu lại N = 5632475 a=[x for x in str(N)] print(a) Ví dụ 2: Lấy chữ số lẻ N/lập phương chữ số N [x for x in str(N) if int(x)%2!=0] [int(x)**3 for x in str(N)] Ví dụ 3: Tìm số ngun tố dãy A A = [7,5,11, 18, 25, 27, 29, 15] def ktnt(a): if a [18:28] Các ví dụ ứng dụng lớp cắt để giải tốn có tính liên tiếp Ví dụ 1: Tính tổng đoạn A = [6, 371, 18, 153, 28, 15] sum(A[:4]) Ví dụ 2: Kiểm tra đoạn có phần tử dương A = [6,-371,-18,153,28,15] def dayconduong(a): for i in a: if i Kết cho nhiều dãy thỏa điều kiện dương, ta gán tất kết vào mảng chiều ta gọi bảng phương án khả thi 6 A = [6, -371, -18, 153, 28, 15] def dayconduong(a): for i in a: if i

Ngày đăng: 30/04/2022, 07:12

Hình ảnh liên quan

mảng cở đây là mản g2 chiều và gọi là bảng các phương án khả thi. - CHUYÊN đề 2 một số THUẬT TOÁN cơ bản PYTHON THCS

m.

ảng cở đây là mản g2 chiều và gọi là bảng các phương án khả thi Xem tại trang 6 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan