seminasrki rad algoritmi dusan coko nrt99 11

Upload: stanislav-neo-milovanovic

Post on 24-Feb-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    1/23

    ALGORITMI

    Diskretna matematika i algoritmi

    Duan oko NRT 99/11Visoka kola elektrotehnike i raunarstva strukovnih studija

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    2/23

    Algoritam je konana i precizno definirana

    procedura, niz dobro definiranih pravila, kojom se

    ulazne vrednosti transformiraju u izlazne, ili se

    opisuje izvravanje nekog postupka.

    Danas se re algoritam esto vezuje za pojamraunarstva mada uopteno algoritam moemosmatrati kao uputstvo kako reiti neki zadatak iliproblem.

    ta je Algoritam?

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    3/23

    Algoritmi mogu biti prikazani ili realizovani na

    vie naina:

    prirodnim jezikom (razumljiv samo govornicima

    tog jezika)

    Grafiki, dijagramom toka (blok dijagramom) ili

    strukturnim dijagramima tekstualno pseudokod, vetakim precizno

    definisanim jezikom koji lii na programski jezik

    ogovarajudim programskim jezikom.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    4/23

    Pseudokodje programski kod napisan obinimjezikom koji se koristi u ubenicima

    programiranja da bi se objasnio oreenialgoritam bez koridenja konkretnogprogramskog jezika.

    Dijagrami toka predstavljaju grafiki prikazizvravanja nekog programa. Laki su zapredstavljanje od pseudokoda. Strelice

    pokazuju tok izvravanja programa.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    5/23

    Standardni oblici za predstavljanje dijagrama

    toka:

    Poetak / kraj algoritma

    Proces - predstavlja zadatak koji

    treba obaviti

    Dijamant: predstavlja odluku u

    programu. Postalja se pitanje i u

    zavisnosti o ogovora krede serazliitom putanjom.Koristi se kod naredbi uslova i petlji.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    6/23

    Standardni oblici za predstavljanje dijagrama

    toka:

    Ulazni podaci

    Izlazni podaci

    Strelice pokazuju redosled

    izvravanja algoritma

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    7/23

    Algoritmi poseduju sleede osobine:

    diskretnost u odvojenim koracima se izvravaju

    diskretne operacije algoritma koji vode kakonanom cilju;

    rezultativnost oznaava sposobnost algoritmada posle konanog broja koraka daje izlazne

    podatke;

    determinisanost za iste ulazne podatkealgoritam uvek generie iste vrednosti na izlazima

    masovnost algoritam je primenljiv na vedi brojulaznih vrednosti.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    8/23

    Postoji mnogo vrsta podela algoritama. Jedna

    od njih je podela algoritama po implementaciji:

    Rekurzivni

    Iterativni

    Serijski / paralelni

    Deterministiki

    Stohastiki

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    9/23

    Rekurzivni algoritam je algoritam koji pozivasamog sebe sve dok se ne postigne oreen uslov.Rekurzivni algoritmi su vrlo esto usko vezani uzimplementaciju pojedine matematike funkcije naprimer Fibbonaijevog niza.

    Iterativni algoritmi su algoritmi koji ne pozivajusamog sebe ved se oslanjaju na strukture poput

    petlji i dodatne strukture podataka kao toje niz ilired da bi reili problem.

    Vano je napomenuti da je svaki rekurzivnialgoritam mogude pretvoriti u iterativni, i da je

    svaki iterativni algoritam mogude pretvoriti urekurzivni, iako ponekad pretvaranje moe biti vrlokompleksno.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    10/23

    Serijski algoritam je algoritam kod koga senaredbe izvravajujedna po jedna.

    Paralelni algoritmi su algoritmi koji se dele navie manjih celina koji svaki od procesorareava a zatim sklapa u jednu celinu.

    Deterministiki algoritam je algoritam koji depri svakom izvravanju u bilo kojim uslovima odistog unosa odi do istog izlaza pratedi svaki putientian niz naredbi.

    Stohastiki algoritam je algoritam koji barem ujednom delu izvravanja donese neku odlukusluajnim odabirom.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    11/23

    Jena o poela ema algoritama je na:

    Linijske

    Cikline

    Linijske algoritamske eme su one eme kokojih se svaki algoritamski korak izvrava

    najvie jeanput u toku izvravanja algoritma.Mogu biti proste i razgranate.

    Proste linijske algoritamske eme su one

    eme ko kojih se svaki algoritamski korakizvrava tano jenput u toku izvravanjaalgoritma.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    12/23

    Razgranate linijske algoritamske eme, su oneeme kod kojih se svaki korak izvrava tano

    jedanput i obavezno sari bar jedan uslovnialgoritamski korak. Ako je uslov ispunjen, izlaz izalgoritamskog koraka bide oznaen sa da, a akouslov nije ispunjen izlaz de biti oznaen sa ne.

    Ciklinealgoritamske eme su one eme u kojima

    se jedan ili vie algoritamskih koraka moeizvravati vie od jedanput u toku izvravanjaalgoritma. Ovi koraci ine ciklus. Ukoliko je uslovispunjen izlazi se iz ciklusa, u suprotnom ciklus se

    ponavlja. Uslov za izlazak iz ciklusa zove se izlazni kriterijumciklusa.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    13/23

    Kod:

    CLS

    CLEAR

    INPUT a, b

    c = a - b

    d = a * b

    e = a / bPRINT a, b, c

    END

    Napii algoritam i ijagram toka za raunanje razlike, mnoenja ikolinika va zaata broja.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    14/23

    Elementarna razgranata

    ema moe se

    komponovati od 3 prostelinijske eme i jenoguslovnog koraka.

    Na slici prikazana jeelementarna razgranata

    ema sa prostim linijskim

    emama PL 1, PL 2 i PL3 i uslovnim

    algoritamskim korakom.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    15/23

    Napisati algoritam za odreivanje faktorijelaprirodnog broja

    ulaz: prirodan broj n

    izlaz: faktorijel prirodnog broja n poetak ulaz n;

    f =1;

    sve dok je n > 1 radi {

    f = f * n;

    n = n - 1;

    } izlaz f;

    kraj

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    16/23

    Napisati algoritam za oreivanje faktorijelaprirodnog broja

    Start

    n

    f=1

    n>1

    f=f*n

    n=n-1

    f

    Kraj

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    17/23

    Napisati algoritam zaizraunavanje n-togFibonaijevog broja.

    Algoritam Fibonaci

    ulaz: n izlaz: n-ti Fibonacijev broj

    poetak ulaz n;

    x0 = 0; x1 = 1;

    ako je n=0 onda jerezultat = x0;

    inace je

    { sve dok je n > 1 radi

    {

    pom = x0;

    x0 = x1; x1 = pom + x1;

    n = n - 1;

    }

    } rezultat = x1;

    izlaz rezultat;

    kraj

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    18/23

    Euklidov algoritam

    U matematici, Euklidov algoritam je efikasan

    nain za odreivanje najveeg zajednikogdelioca (NZD) datih brojeva.

    NZD dva broja je najvedi broj koji istovremenodeli oba bez ostatka. Euklidov algoritam je

    zasnovan na principu da se najvedi zajenikidelilac dva broja ne menja ukoliko se manji brojoduzme od vedeg, pa se zatim odredi NZDnovodobijenog broja i manjeg od prethodna dva.

    Na primer, 21 je NZD za 252 i 105 (252 = 21 12;105 = 21 5); poto je 252 105 = 147, NZD za147 i 105 je takoe 21.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    19/23

    Euklidov algoritam Algoritam Euklid 1

    ulaz: prirodni brojevi a, b izlaz: nzd(a, b)

    poetak ulaz a, b;

    sve dok je a != b radi

    { ako je a > b

    onda je a = a - b;

    inace je b = b - a;

    }

    izlaz a;

    kraj

    Algoritam Euklid 2

    ulaz: prirodni brojevi a, b izlaz: nzd(a, b)

    poetak ulaz a, b;

    ako je a < b onda

    { pom = a; a = b; b = pom;

    }

    sve dok je b != 0 radi

    {

    pom = b; b = a % b; a = pom;

    }

    izlaz a;

    kraj

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    20/23

    Matematika inukcija

    Matematika indukcija igra znaajnu ulogu pri konstrukciji mnogihalgoritama.

    Matematika (potpuna) indukcija je metoda matematikogdokazivanja.

    Dokazivanje ispravnosti tvrdnje dokazujemo sleedim koracima: Prvi korak ilibaza indukcije - dokazujemo da zadana tvrdnjavrijedi za n=1.

    Drugi korak je pretpostavka indukcije - pretpostavljamo da

    tvrdnja vredi za neki proizvoljni prirodni broj k, pa je n=k.

    Tredi korak jekorak indukcije - dokazujemo da tvrdnja vredi iza sledbenika prirodnog broja k; uvrtavamo n=k+1 . Iz svegatoga zakljuujemo da tvrdnja vredi za svaki prirodni broj.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    21/23

    Dokazati da je : 1+2+...+n=n*(n+1)/2

    Baza indukcije n=1:

    1 = 1*(1+1)/2 = 2/2 = 1

    Dokazali smo da gornji izraz vai za n=1

    Pretpostavka indukcije (indukcijska hipoteza)n=k

    1+2+...+k=k*(k+1)/2

    Korak indukcije

    Trebamo dokazati da tvrenje vai i za n=k+1

    1+2+3+...+(k-1)+k+(k+1)=(k+1)*(k+2)/2 Iz pretpostavke indukcije vidimo da postoji vec

    jedan deo na levoj strani koji moemo zameniti

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    22/23

    Korak indukcije

    k*(k+1)/2+(k+1)=(k+1)*(k+2)/2

    [k*(k+1)+2*(k+1)]/2 = (k+1)*(k+2)/2 (k+1)*(k+2)/2= (k+1)*(k+2)/2

    Ovim smo dokazali da vai izraz za bilo koji

    prirodan broj.

  • 7/25/2019 Seminasrki Rad Algoritmi Dusan Coko NRT99 11

    23/23

    Primer dokazan matematikom indukcijomsada moemo iskoristiti da prikaemo putem

    algoritma. Start

    n

    S = 0

    i > n

    S = S + i

    s

    Kraj