Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
482,5 KB
Nội dung
M T S KI N TH C C B N V Ộ Ố Ế Ứ Ơ Ả Ề M T S KI N TH C C B N V Ộ Ố Ế Ứ Ơ Ả Ề S H C THU T TOÁNỐ Ọ Ậ S H C THU T TOÁNỐ Ọ Ậ GV – Lê Anh Phương. GV – Lê Anh Phương. - 1 - Chuyên đêề: N I DUNGỘ N I DUNGỘ I. Phép chia các số nguyên. II. Số nguyên tố. II.1. Kiểm tra tính nguyên tố của một số nguyên. II.2. Liệt kê các số nguyên tố trong đoạn [1, N]. II.3. Phân tích một số thành tích của các thừa số nguyên tố. III. Ước số, bội số. III.1. Số các ước số của một số. III.2. Tổng các ước số của một số. III.3. Ước số chung lớn nhất của hai số. III.3.1. Thuật toán Euclid. III.3.2. Thuật toán Euclid dạng đệ quy và sự mở rộng. III.4. Bội số chung nhỏ nhất của hai số. IV. Bài tập áp dụng. - 2 - M C TIÊUỤ M C TIÊUỤ Nắm được các kiến thức cơ bản của số học thuật toán trong nội dung trên. Trọng tâm của chuyên đề là nắm được các thuật toán cơ bản về số học thuật toán và vận dụng được các thuật toán đó trong giải các bài toán. - 3 - I. Phép chia các s nguyên. ố I. Phép chia các s nguyên. ố 1. a chia hết cho b hay a là bội của b. Ký hiệu: . Ta cũng nói: b chia hết a hay b là ước của a. Ký hiệu: b|a. Ví dụ: 18 = 3.6 ⇔ hay 3|18. 2. a không chia hết cho b. Ta viết : a = bq + r với 0 < r < b. q thương gần đúng và r số dư (0 < r < b). Ví dụ: Với a = 19, b = 3 ta có 19 = 3.6 + 1. Với a = -25, b = 7, ta có -25 = 7.(-4) + 3. Với a = 5, b = 11, ta có 5 = 11.0 + 5. - 4 - a bM 18 3M ba I. Phép chia các s nguyên. ố I. Phép chia các s nguyên. ố Tổng quát: Khi chia một số nguyên a cho một số nguyên b (b > 0) ta luôn có một số dư duy nhất r với 0 ≤ r < b (số dư là một trong các số từ 0 đến b-1). Chúng ta cũng dùng hai số a DIV b, a MOD b thay cho hai số q và r . b|a ⇔ a MOD b = 0. Chú ý: 293 DIV 8 = 36 293 MOD 8 = 5 -293 DIV 8 = -37 -293 MOD 8 = 3 293 DIV -8 = -36 293 MOD -8 = 5 -293 DIV -8 = 37 -293 MOD -8 = 3 Và n chẳn ⇔ n MOD 2 = 0, n lẻ ⇔ n MOD 2 = 1. - 5 - a bM M t s ki u s nguyên trong Pascalộ ố ể ố M t s ki u s nguyên trong Pascalộ ố ể ố Byte Byte 0 255 Turbo Turbo Pascal Pascal + + Free Free Pascal Pascal Word Word 0 65535 Integer Integer -32768 32767 Longint Longint -2147483648 2147483647 QWord QWord 0 18446744073709551615 Free Free Pascal Pascal Int64 Int64 -9223372036854775808 9223372036854775807 Bài toán 1: Bài toán 1: Tìm v trí s N.ị ố Tìm v trí s N.ị ố Trên tờ giấy vở kẻ ô vuông (xem như một lưới ô vuông rất lớn, các dòng, các cột được đánh số). Cu Tý viết lần lượt các số nguyên dương như hình dưới: 4 4 3 3 16 16 15 15 14 14 13 13 2 2 9 9 10 10 11 11 12 12 1 1 8 8 7 7 6 6 5 5 0 0 1 1 2 2 3 3 4 4 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Cho số nguyên dương n (1 ≤ n ≤ 10 9 ) . Số n sẽ được Cu Tý viết vào ô (cột, dòng) nào? Tìm cách gi i.ả Tìm cách gi i.ả 1. Hiểu bài toán. Với n = 9. Tọa độ (2, 2). Với n = 15. Tọa độ (4, 3). 2. Tìm thuật toán. Ý tưởng thuật toán 1: - dùng mãng hai chiều mô tả lưới ô vuông. - lấp dần mãng với các số nguyên từ 1 đến n như yêu cầu của bài toán. - chỉ ra ô ghi số n. Rõ ràng thuật toán này không cần suy nghĩ gì nhiều, làm như yêu cầu của bài toán. Tuy nhiên có 2 nhược điểm: không đủ bộ nhớ để mô tả lưới ô vuông. mất nhiều thời gian cho việc lấp dần mãng. - 8 - a bM Tìm cách gi i.ả Tìm cách gi i.ả Ý tưởng thuật toán 2: Chúng ta thử tìm ra những tính chất, đặc trưng có trong nội dung bài toán. - Một dòng ghi 4 số, vậy n số thì sẽ ghi trên mấy dòng? (y = (n-1) div 4). - Để chỉ ra tọa độ cột, chúng ta cần để ý: Dòng 1 viết từ trái sang phải, dòng 2 từ phải sang trái, dòng 3 từ trái sang phải, , hay: Dòng chẵn viết từ trái sang phải, Dòng lẻ viết từ phải sang trái. Sau mỗi dòng viết dịch sang phải 1 ô, có bao nhiêu dòng thì dịch bấy nhiêu ô. Từ đó: Nếu y chẵn thì x = y + (n – 1) mod 4. Nếu y lẻ thì x = y + (3 – (n – 1) mod 4). - Kiểm tra lại các ví dụ trong phần hiểu bài. - 9 - a bM Bài toán 2: Bài toán 2: Dãy con dài nh t có t ng chia h t cho 3.ấ ổ ế Dãy con dài nh t có t ng chia h t cho 3.ấ ổ ế Cho một dãy gồm n số nguyên dương {a i }: a 1 , a 2 , , a n . (1 ≤ n ≤ 10 9 , 0 < a i ≤ 10 9 , i = 1, 2, 3, , n) Một dãy con của dãy {a i } là dãy thu được khi bỏ đi một số số hạng của nó và giữ nguyên vị trí của các số hạng còn lại. Ví dụ: n = 5; a i = 2, 5, 6, 8, 1. Thì dãy: 2, 6, 1 hay dãy: 6, là những dãy con của dãy đã cho. Hãy tìm số số hạng L của dãy con dài nhất sao cho tổng các số hạng của dãy con đó chia hết cho 3. Ví dụ: n = 3; a i = 6, 2, 3. Dãy con dài nhất có tổng các số hạng chia hết 3 là dãy: 6 3. Độ dài lớn nhất L = 2. Giới hạn: Bộ nhớ 1MB. Thời gian 1s/test. - 10 - a bM [...]... Trường hợp còn lại Dữ liệu nhỏ N = 3, ai = 3, 4, 6 hoặc ai = 3, 6, 8 L = N – 1 = 2 N = 3, ai = 3, 6, 9 hoặc ai = 3, 4, 5 L = N = 3 N = 3, ai = 3, 4, 7 L = N – 2 = 1 Dữ liệu lớn N nhỏ, các ai nhỏ N lớn, các ai nhỏ N lớn, các ai lớn - 13 - aM b II Số nguyên tố Một số tự nhiên p (p > 0) là số nguyên tố nếu p có đúng hai ước là 1 và p Ví dụ: các số nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19, 23,... sqrt_n); end; - 16 - PHIẾU HỌC TẬP SỐ 1 Thời gian thực hiện: 20 phút Mục tiêu: - sử dụng phép chia trong các bài toán - kiểm tra tính nguyên tố của một số nguyên dương và ứng dụng - xây dựng các chương trình hay chương trình con thực hiện thuật toán THẢO LUẬN NHÓM SỐ 1 Thời gian thực hiện: 15 phút Mục tiêu cần đạt: - thảo luận và tìm ra thuật toán cho các bài toán từ phiếu học tập số 1 - cả nhóm cùng thiết... end; - 22 - PHIẾU HỌC TẬP SỐ 2 Thời gian thực hiện: 20 phút Mục tiêu: - sử dụng sàng nguyên tố như sàng Eratosthenes - phân tích một số thành tích của các thừa số nguyên tố và ứng dụng - xây dựng các chương trình hay chương trình con thực hiện thuật toán THẢO LUẬN NHÓM SỐ 2 Thời gian thực hiện: 15 phút Mục tiêu cần đạt: - thảo luận và tìm ra thuật toán cho các bài toán từ phiếu học tập số 2 - cả nhóm... a; a := b; b := tmp; end; exit(a); end; - 34 - PHIẾU HỌC TẬP SỐ 3 Thời gian thực hiện: 20 phút Mục tiêu: - sử dụng tính chất của ước số, bội số - xây dựng các chương trình hay chương trình con thực hiện thuật toán THẢO LUẬN NHÓM SỐ 3 Thời gian thực hiện: 15 phút Mục tiêu cần đạt: - thảo luận và tìm ra thuật toán cho các bài toán từ phiếu học tập số 3 - cả nhóm cùng thiết kế và mô tả lại các thuật toán... end; end; for i := 2 to n do if prime[i] = 0 then writeln(i); end; - 20 - aM b II Số nguyên tố II.3 Phân tích một số thành tích của các thừa số nguyên tố Phép thử chia: α1 α2 α3 αm N = p1 p 2 p 3 p m {$M 110 0000} procedure factor(n : longint); const max = 1000000; var k, m, p : longint; prime, power : array[1 max] of longint; begin k := 2; m := 0; while (k*k . = 3 ta có 19 = 3.6 + 1. Với a = -25, b = 7, ta có -25 = 7.(-4) + 3. Với a = 5, b = 11, ta có 5 = 11. 0 + 5. - 4 - a bM 18 3M ba I. Phép chia các s nguyên. ố I. Phép chia các s nguyên viết lần lượt các số nguyên dương như hình dưới: 4 4 3 3 16 16 15 15 14 14 13 13 2 2 9 9 10 10 11 11 12 12 1 1 8 8 7 7 6 6 5 5 0 0 1 1 2 2 3 3 4 4 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Cho số nguyên. lại. Dữ liệu nhỏ. N = 3, a i = 3, 6, 9 hoặc a i = 3, 4, 5. L = N = 3. N = 3, a i = 3, 4, 6 hoặc a i = 3, 6, 8. L = N – 1 = 2. N = 3, a i = 3, 4, 7. L = N – 2 = 1. Dữ liệu lớn. N