6
1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Một số thuật toán thông dụng Nội dung 5.1. Thuật toán số học 5.2. Thuật toán về dãy 5.3. Thuật toán đệ quy 2 5.3. Thuật toán số học Các bài toán về số học – Xác định một số nguyên có phải là số nguyên tố/hợp số hay không – Tìm USCLN, BSCNN của 2 số nguyên – .. 3 Bài toán số nguyên tố Cho một số nguyên dương p. Làm thế nào để biết được p có phải số nguyên tố hay không? Input: p nguyên dương Output: kết luận về tính nguyên tố của p Ý tưởng? p = 1? Không phải số nguyên tố p > 1? Kiểm tra từ 2 đến p-1 có phải là ước số của p không Nếu có thì kết luận p không là số nguyên tố, ngược lại không có số nào thì kết luận p là số nguyên tố 4

05-Mot So Thuat Toan Thong Dung

Embed Size (px)

DESCRIPTION

Tin Đại Cương

Citation preview

  • 1TRNG I HC BCH KHOA H NIVIN CNG NGH THNG TIN V TRUYN THNG

    TIN HC I CNGBi 5. Mt s thut ton thng dng

    Ni dung

    5.1. Thut ton s hc

    5.2. Thut ton v dy

    5.3. Thut ton quy

    2

    5.3. Thut ton s hc

    Cc bi ton v s hc

    Xc nh mt s nguyn c phi l s nguyn t/hp s hay khng

    Tm USCLN, BSCNN ca 2 s nguyn

    ..

    3

    Bi ton s nguyn t

    Cho mt s nguyn dng p. Lm th no bit c p c phi s nguyn t hay khng?

    Input: p nguyn dng

    Output: kt lun v tnh nguyn t ca p

    tng?

    p = 1? Khng phi s nguyn t

    p > 1?

    Kim tra t 2 n p-1 c phi l c s ca p khng

    Nu c th kt lun p khng l s nguyn t, ngc li khng c s no th kt lun p l s nguyn t

    4

  • 2Bi ton s nguyn t (2)

    Nhp p

    if p=1 then begin

    Xut: p khng nguyn t;

    Dng thut ton;

    end

    flag := TRUE

    for k:=2 to p-1 do

    if (k l c s ca p) then begin

    flag:=FALSE;

    break; { ngt vng lp FOR }

    end

    if flag=TRUE then

    Xut: p l s nguyn t

    else

    Xut: p khng l s nguyn t 5

    Tm UCLN, BCNN ca hai s

    B1 : Nhp 2 s a, b

    B2 : x a, y b

    B3 : Nu y # 0, sang B4

    Ngc li, UCLN x, BCNN (a*b)/ UCLN. Kt thc

    B4 : r x mod y

    x y

    y r

    Quay li B3.

    6

    V d

    1. Tm tt c cc c s ca mt s nguyn dng N

    tng : Duyt ln lt cc gi tr t 1 ti N v in ranu gi tr l c s ca N.

    Gii thut

    B1 : Nhp N

    B2 : Gn i 1

    B3 : Nu i

  • 3V d

    3. Kim tra tnh hon ho ca s nguyn dng N.

    B1 : Nhp N

    B2 : Gn i 1, TongUoc = 0,

    B3 : Nu i < N ti B4

    Ngc li, ti B6

    B4 : Nu N chia ht cho i, gn TongUoc TongUoc + i

    B5 : Tng i thm 1 n v. Quay li B3

    B6 : Nu TongUoc = N, kt lun N l s hon ho.

    Nu TongUoc < N, kt lun N l s khng y .

    Nu TongUoc > N, kt lun N l s giu c

    B7 : Kt thc

    9

    V d

    4. Hin th tt c cc s hon ho trong on [1,10000]

    10

    Ni dung

    5.1. Cc cu trc c bn trong lp trnh

    5.2. Gi m (pseudocode)

    5.3. Thut ton s hc

    5.4. Thut ton v dy

    5.5. Thut ton quy

    11

    5.4. Thut ton v dy

    Lm vic vi mt dy s

    Cc bi ton in hnh

    Tm s ln nht, nh nht trong dy

    Kim tra dy c phi l dy tng hoc dy gim

    Sp xp dy tng dn hoc gim dn

    Tm trong dy c phn t no bng mt gi tr cho trc

    Tnh trung bnh cng ca dy

    12

  • 4Bi tp

    Bi 1. Xy dng thut ton tm phn t c gi tr truyt i ln nht trong dy gm n phn t.

    Bi 2. Xy dng thut ton tm tng ca cc s chn v tng ca cc s l trong dy gm n phn t c nhp vo t bn phm.

    Bi 3. Xy dng thut ton kim tra xem mt dy s gm n phn t c nhp vo t bn phm c phi l dy s tng (hoc gim) khng.

    Bi 4. Xy dng thut ton tnh trung bnh cng ca cc s dng trong dy gm n s c nhp vo t bn phm.

    13

    Bi 1

    tng : Gi s GTT ln nht ca dyMaxAbs l |a1|. Duyt cc phn t ai khc trongdy, nu c GTT ln hn MaxAbs th gnMaxAbs = |ai|

    Gii thut:

    B1 : Nhp n v dy s {an}

    B2 : Gn MaxAbs |a1|, i2

    B3 : Nu i MaxAbs, gn MaxAbs|ai|

    B5 : i i +1. Quay li B3

    B6 : Xut MaxAbs. Kt thc

    14

    Bi 2

    15

    tng : Gi tng cc s chn v tng cc s l ln lt lTongChan v TongLe. Duyt ln lt cc phn t ca dy, xt tnhchn l v cng dn vo tng tng ng.

    B1 : Nhp n v dy {an}

    B2 : Gn TongChan 0, TongLe 0, i 1

    B3 : Nu i

  • 5Ni dung

    5.1. Cc cu trc c bn trong lp trnh

    5.2. Gi m (pseudocode)

    5.3. Thut ton s hc

    5.4. Thut ton v dy

    5.5. Thut ton quy

    17

    5.5. Thut ton quy

    Vi bi ton c th c phn tch v a ti vic gii mt bi ton cng loi nhng cp thp hn

    ln d liu nhp nh hn

    gi tr cn tnh ton nh hn

    T thc hin li thut ton

    V d:

    Giai tha: n! = (n-1)! * n

    Dy s Fibonacci: 0, 1, 1, 2, 3, 5, 8...

    F(n) = F(n-1) + F(n-2)

    18

    5.5. Thut ton quy (2)

    xy dng thut ton quy, cn xc nh:

    Trng hp c bn: (Cc) trng hp khng cn thc hin li thut ton.

    Phn tng qut: C yu cu gi quy

    Cn xc nh nguyn l a trng hp tng qut v trng hp c bn

    m bo tnh dng ca gii thut quy - chc chn t trng hp tng qut s n c trng hp c bn

    19

    V d

    Tnh giai tha ca n:

    Trng hp c bn: 0! = 1

    Trng hp tng qut: n! = (n-1)! * n

    Xy dng dy Fibonacci

    Trng hp c bn: F(0) = F(1) = 1

    Trng hp tng qut: F(n) = F(n-1) + F(n-2)

    20

  • 6Tnh giai tha - Thut ton quy

    Input: s t nhin n

    Output: GT(n)=n!

    Thut gii:

    Nhp n

    GT:=1;

    if n>0 then

    GT := GT(n-1)*n;

    Xut GT

    21

    Bi tp

    Xy dng thut ton cho bi ton tm s Fibonacci F(n)

    22

    Thut gii heuristic

    Dng mo

    p dng vi nhng bi ton

    Cha tm c thut ton v khng bit c tn ti thut ton khng

    C thut ton nhng thi gian tnh ton qu lu hoc iu kin ca thut ton kh p ng

    23