1. Trang chủ
  2. » Giáo án - Bài giảng

Tài liệu tập huấn CNTT tháng 11 năm 2011

42 734 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 42
Dung lượng 482,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phân tích một số thành tích của các thừa số nguyên tố..  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ơ

Trang 2

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.

Trang 3

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.

Trang 5

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

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

Trang 6

Byte 0 255 Turbo

Pascal +

Free Pascal

Trang 7

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:

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?

Trang 8

Ý 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.

Trang 9

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 ô.

Trang 10

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; ai = 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; ai = 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.

Trang 11

Tìm cách gi i ả

Tìm cách gi i ả

1 Hiểu bài toán.

2 Tìm thuật toán.

Ý tưởng thuật toán 1:

con.

số hạng chia hết cho 3, nếu chia hết thì lưu lại độ dài.

Thuật toán này không thể giải quyết

bài toán, vi phạm cả bộ nhớ lẫn thời gian .

Trang 12

Tìm cách gi i ả

Tìm cách gi i ả

Ý tưởng thuật toán 2:

Dựa vào tính chất của phép chia dư, ta có thuật toán

 Hoặc L = n - 1 (bỏ đi 1 số hạng chia cho 3 dư 2)

 Hoặc L = n – 2 (bỏ đi 2 số hạng chia cho 3 dư 1)

Trang 14

Do: n nguyên tố -n nguyên tố, nên ta chỉ

quan tâm n nguyên dương.

Trang 16

II S nguyên t ố ố

II S nguyên t ố ố

Hàm IsPrime(n) sau kiểm tra tính nguyên tố của số

n bằng cách kiểm tra n có chia hết cho 2, 3 và các số có dạng 6k ± 1 trong đoạn [5, ].

function IsPrime(n : longint) : boolean;

Trang 17

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.

Trang 18

Thời gian thực hiện: 15 phút

Trang 19

II S nguyên t ố ố

II S nguyên t ố ố

II.2 Liệt kê các số nguyên tố trong đoạn

[1, N].

Thử lần lượt các số m trong đoạn [1, N]

rồi kiểm tra tính nguyên tố của m.

procedure Generate(n : longint);

Trang 22

II S nguyên t ố ố

II S nguyên t ố ố

Đã có mãng prime lưu các số nguyên tố đầu tiên bé hơn

hay bằng n, prime[i] là số nguyên tố thứ i trong các

while n mod prime[i] = 0 do begin

inc(p); n := n div prime[i];

Trang 23

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.

Trang 24

Thời gian thực hiện: 15 phút

Trang 25

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

III.1 Số các ước số của một số.

Giả sử N được phân tích thành các thừa số nguyên

Trang 26

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

III.2 Tổng các ước số của một số.

Giả sử N được phân tích thành các thừa số nguyên

Trang 27

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

III.3 Ước số chung lớn nhất (UCLN) của

hai số

Cho hai số nguyên dương a và b Ước

chung lớn nhất của a và b, ký hiệu UCLN(a, b) hay (a, b) Một số d là ước chung của a và b khi và chỉ khi d là ước của UCLN(a, b): d|a và d|b d|

UCLN(a, b).

Hai số a và b gọi là nguyên tố cùng nhau

khi và chỉ khi UCLN(a, b) =1

Trang 28

Bài toán 3: Quà sinh nh t Quà sinh nh t ậ ậ

Còn b ngày nửa là đến sinh nhật của Tý Bà nội

bảo từ hôm nay bà sẽ để dành tiền mua quà cho Tý.

Ngày đầu bà để dành a đồng, ngày thứ hai 2*a

đồng, ngày thứ ba 3*a đồng, , ngày b là b*a đồng.

Thêm vào đó, ngày nào mà số tiền để dành cho

Tý chia hết cho b thì Tý sẽ được bà cho một

Trang 29

Tìm cách gi i ả

Tìm cách gi i ả

Bài toán yêu cầu: có bao nhiêu số trong

các số a, 2a, 3a, , ba; chia hết cho b.

2a, 3a, , ba Số nào chia hết cho b thì đếm.

Count := 0;

For i := 1 to b do

if (i*a) mod b = 0 then count := count + 1;

Trang 30

Tìm cách gi i ả

Tìm cách gi i ả

Ý tưởng thuật toán 2:

Gọi d là UCLN(a, b) Khi đó a = d*r và b = d*s, r và

s nguyên tố cùng nhau.

Chia tất cả các số a, 2a, 3a, , ba cho b ta có:

Bởi r, s nguyên tố cùng nhau nên trong các phân

số trên các tử số r, 2r, 3r, , (ds – 1)r, (ds)r chia hết cho s khi các hệ số của r: 1, 2, 3, ,

ds – 1, ds chia hết cho s Rõ ràng sẽ có d số như vậy đó là các số: s, 2s, 3s, , ds.

Bài toán chỉ cần tìm ước chung lớn nhất d của a

Trang 31

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

Tìm ước chung lớn nhất của hai số nguyên

dương a, b:

Có thể dùng phương pháp sau: Phân tích

a và b ra thừa số nguyên tố, ước chung lớn nhất của a và b là tích của các thừa

số nguyên tố chung với số mũ nhỏ nhất

Ví dụ: a = 126 = 2.3 2 7, b = 735 = 3.5.7 2

khi đó UCLN(a, b) = 3.7 = 21

Trang 32

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

Tìm ước chung lớn nhất của hai số nguyên dương a, b:

III.3.1 Thuật toán Euclid

Cho hai số nguyên a, b và giả sử a > b.

Trang 34

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

Tìm ước chung lớn nhất của hai số nguyên dương a, b:

III.3.1 Thuật toán Euclid

Thuật toán Euclid dựa vào hai mệnh đề sau:

1 a = ba UCLN(a, b) = b.

2 a = bq + r (r 0) UCLN(a, b) = UCLN(b, r).

Hay UCLN(a, b) = UCLN(b, a MOD b)

function gcd(a, b : longint) : longint;

Trang 35

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.

Trang 36

Thời gian thực hiện: 15 phút

Trang 37

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

Tìm ước chung lớn nhất của hai số nguyên dương a,

b:

III.3.2 Thuật toán Euclid dạng đệ quy và sự mở rộng

Thuật toán Euclid tìm UCLN của a và b, viết

Trang 38

nguyên x, y sao cho ax + by = d (*)

USCLN d của a và b, đồng thời tìm được

cả hai số nguyên x, y trong công thức (*)

đạt bằng đệ quy như sau:

Trang 39

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

Tìm ước chung lớn nhất của hai số nguyên dương a, b:

III.3.2 Thuật toán Euclid dạng đệ quy và sự mở rộng

begin

if (a<b) then ee(b, a, x, y)

else if (b=0) then begin

x := 1; y := 0;

ee(b, a mod b, x2, y2);

x := y2; y := x2 - (a div b) * y2;

Mặt khác: r = a – bq Với r = a mod b và q = a div b

b(x2 – qy2) = d.

Vậy: x = y2, y = x2 – qy2

Trang 40

III Ướ ố ộ ố c s , b i s

III Ướ ố ộ ố c s , b i s

III.4 Bội số chung nhỏ nhất của hai số.

Bội chung nhỏ nhất của a và b được ký

hiệu là BCNN(a, b) hay [a, b] Một số m

là bội chung của a và b khi và chỉ khi m

là bội của BCNN(a, b).

Để tìm bội chung nhỏ nhất của a và b ta

dựa vào công thức sau:

Từ đó BCNN(a, b) = ab khi UCLN(a, b) = 1.

BCNN(a, b)

UCLN(a, b)

Trang 41

Thời gian thực hiện: 20 phút.

Mục tiêu:

- phân tích nhận dạng bài toán số học.

- thuật toán tìm ước chung lớn nhất và ứng dụng.

- thiết kế và mô tả, nêu ý tưởng của thuật toán.

Trang 42

CHÂN THÀNH CÁM ƠN

Ngày đăng: 30/10/2014, 00:00

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w