Tutorijali.Net forum

Full Version: Razlika izmedju statickog i dinamickog programiranja
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Poz ljudi, je l' moze neko da objasni razliku izmedju statickog i dinamickog programiranja?
Hvala puno He he
Recimo da se od tebe trazi da odredis udaljenost nekog objekta, u statičkom programiranju ti bi trebala znati sve tajne svijeta i svemira i sve fizičke zakone da bi tu udaljenost i odredila, moras kod statičkog programiranja sve detalje moras unaprijed znati imati sve cinjenice. Recimo da trebas u racunalu pohraniti listu od 30 učenika onda ces koristiti statičko programiranje, dinamičko programiranje je drukcije ono dopušta određenu dozu neizvjesnosti recimo da trebas unositi studente dok korisnik ne unese da ih vise ne zeli unositi dakle nemoras znati sve detalje. Kod dinamičkog programiranja ti alociras tocno onoliko prostora koliko ti i treba, dok kod statičkog alociras tocan broj polja te unaprijed moras znati koliko memorije trebas zauzeti :)
I u cemu je kvaka? Mislim ako je tako sjajno mora da je neka falinka kod dinamickog programiranja xD He he Dobro onda, ima da ucim to He he
Nevalja davati savjete kada ste cijeli dan na fax-u btw sada je vec kasno, sutra dajem odgovor Namigivanje
No probs ser, help is appreciated at any time He he
OK malo sam i ja zastranio sa pojmom dinamičkog programiranja, to je metoda programiranja zasnovana na pristupu "podjeli pa vladaj", dakle radi se o optimizaciji samog koda a ne o alokaciji memorije kao sto sam prethodno napisao, ova metoda smanjuje složenost samog algoritma na naćin da problem bilo kakve prirode podjeli na podprobleme riješavanjem tih podproblema i spanjanjem u cjelinu dobilamo riješenje inicialnog problema, zašto koristiti DP pa da bismo riješili problem moramo ispitati sva stanja, no što ako je tih stanja previše, recimo sortiranje milion 32-bitnih intgera, složenost alogritma Bubble sort je
Code:
О(n2)

Dakle da biso riješili problem trebamo proći kroz sva stanja (10^6)^2 = 10^12 = 1 000 000 000 000 puta sto nije baš efikasno, da bismo ovaj problem riješili moramo koristiti DP merge sort je algoritam koji dijeli probleme na podprobleme zatim na kraju riješenja tih podproblema spaja u jednu cijelinu složenost algoritma je
Code:
O(n log n)
10^6 * (log 10^6) = 10^6 * 6 = 6 000 000
Ima slučaja gdje korištenje ovakvih metoda nije baš efikasno jer se često koriste rekurzivna riješenja koja nisu efikasan kao iterativna kada se radi o malom borju stanja. Prednosti nedostatci, ra riješavanje malih problemčića zasada nema bitne razlike tek kasnije kad se budes ozbiljnije bavila programiranjem onda bi trebala koristitiovakve metode.
E hvala ti He he Imas vec +1 od mene He he
He he Nista i dr. put Namigivanje
Reference URL's