Algoritmi i strukture podataka ispitna pitanja i odgovori

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Algoritmi i strukture podataka ispitna pitanja i odgovori"

Transcript

1 Algoritmi i strukture podataka ispitna pitanja i odgovori Nikola Ajzenhamer 26. maj Greške pošaljite na: mi13050@alas.matf.bg.ac.rs Napomena za kodove: Neke od kodova nije potrebno učiti, već su dodati naknadno, voljom autora. Na primer, za pitanja 32, 33 i 37, dovoljno je objasniti ideju i/ili primer umesto pisanja pseudo koda. 1

2 Sadržaj 1 Elementarne strukture podataka 4 2 Stek, red: osnovne operacije, realizacija pomoću niza 4 3 Dvostruko (jednostruko) povezane liste traženje, umetanje, brisanje elementa 6 4 Korenska stabla, predstava proizvoljnog korenskog stabla binarnim stablom 6 5 Binarna stabla: eksplicitno i implicitno predstavljanje 7 6 Hip realizacija reda sa prioritetom osnovne operacije 8 7 Binarno stablo pretrage realizacija rečnika osnovne operacije (traženje, umetanje, brisanje elementa) 9 8 Binarno stablo pretrage prethodnik, sledbenik elementa 11 9 Heš tabele, heš funkcije, kolizije i njihova obrada Grafovi predstavljanje: matrica povezanosti, lista povezanosti Sortiranje objedinjavanjem Sortiranje pomoću hipa (hip sort) Brzo sortiranje (kvik sort) Sortiranje složenosti O(n), donja granica složenosti sortiranja kad se koriste uporedivanja Pretraga grafa u dubinu (dokaz ispravnosti, DFS stablo, numeracija čvorova, komponente povezanosti) Klasifikacija grana grafa u odnosu na DFS stablo, kriterijum za prepoznavanje povratne grane Pretraga grafa u širinu, BFS stablo, osobine Analiza algoritama osnovni pojmovi (aproksimativna asimptotska analiza najgoreg slučaja; asimptotske oznake O, o, Ω, Θ; vremenska i prostorna složenost algoritma) Primeri sumiranja Rešavanje linearnih rekurentnih relacija Rekurentna relacija T (n) = at (n/b) + cn k koja opisuje algoritme zasnovane na razlaganju ( divide-and-conquer ) Rekurentne relacije sa potpunom istorijom; n primer T (n) = 2 n T (i) + n 1, T (1) = 0 (prosečna složenost algoritma kvik sort) Algoritmi grube sile (najveći član niza, dve najbliže tačke u ravni, problem trgovačkog putnika) Pohlepni (greedy) algoritmi: problem izbora aktivnosti Pohlepni (greedy) algoritmi: razlomljeni problem ranca 30 2

3 26 Pohlepni (greedy) algoritmi: optimalni prefiksni (Hofmanov) kod Rešavanje problema razlaganjem (divide-and-conquer): binarna pretraga i varijante Rešavanje problema razlaganjem (divide-and-conquer): istovremeno traženje najmanjeg i najvećeg člana niza Rešavanje problema razlaganjem (divide-and-conquer): problem selekcije nalaženje k-tog najmanjeg člana niza Rešavanje problema razlaganjem (divide-and-conquer): množenje polinoma, brojeva složenosti O(n log 2 3 ) Rešavanje problema razlaganjem (divide-and-conquer): Štrasenov algoritam za množenje matrica Rešavanje problema razlaganjem (divide-and-conquer): nalaženje dve najbliže tačke u ravni Pretraga (backtracking): problem 8 dama Pretraga (backtracking): traženje podskupa brojeva sa zadatim zbirom Pretraga (backtracking): 3-bojenje Ograničavajuće funkcije za pretragu: bojenje grafa minimalnim brojem boja Ograničavajuće funkcije za pretragu: traženje podskupa sa zadatom sumom, korišćenje razlomljenog problema ranca Traženje uzorka u tekstu naivni algoritam, algoritam KMP Traženje uzorka u tekstu izračunavanje pomoćnog niza za algoritam KMP Numerički algoritmi: izračunavanje vrednosti polinoma (Hornerova šema) Numerički algoritmi: Lagranžov interpolacioni polinom Numerički algoritmi: približno rešavanje jednačina (polovljenje intervala, metod sečice, metod tangente) Svodenje rekurzije na iteraciju repna rekuzija, n!, Fibonačijev niz 49 3

4 1 Elementarne strukture podataka Pod pojmom element podrazumevamo podatak kome tip nije preciziran (na primer celi broj, skup celih brojeva, fajl i slično). Razlika izmedu algoritama je samo u realizaciji, a ideje na kojima se zasnivaju algoritmi su iste. Pretpostavka je da se sve operacije nad elementima izvode u jediničnom vremenskom intervalu. Vektor (niz) je niz elemenata istog tipa. Veličina vektora je broj elemenata u njemu i ona se mora unapred znati (odnosno fiksirana je) jer se pre samog korišćenja mora dodeliti odredeni memorijski prostor. Ako je prvi element na lokaciji x, a veličina elementa je a bajtova, onda je k-ti element vektora na lokaciji x + (k 1)a, što se lako izračunava nezavisno od rednog broja elementa. Ovo je efikasna i zbog toga često korišćena struktura podataka. Njena osnovna osobina je da je jednako vreme pristupa svim elementima. Nedostaci ove strukture podataka su da su svi njeni elementi istog tipa i da se njena veličina ne može menjati dinamički, u toku izvršavanja algoritma. Slog (rekord) je takode niz elemenata, koji medutim ne moraju biti istog tipa jedino se fiksira kombinacija tipova elemenata. Veličina sloga takode mora biti unapred definisana. Elementima sloga može se kao i elementima vektora pristupiti za konstantno vreme: za ovu svrhu koristi se poseban vektor sa početnim adresama elemenata sloga, dužine jednake broju elemenata sloga. Adrese ovog i ostalih elemenata prevodilac izračunava samo jednom, prilikom prolaska kroz definiciju sloga, i smešta ih u spomenuti pomoćni vektor. Dinamičke strukture podataka se koriste kada je potrebno dinamički menjati broj elemenata. Kod dinamičkih struktura podataka, elementi se čuvaju zasebno u memoriji i vezuju se pokazivačima čija vrednost predstavlja adresu sledećeg elementa. Primer dinamičke strukture podataka je povezana lista. Ako je cilj efikasno umetanje i izbacivanje elemenata, mora se napustiti sekvencijalni zapis koji karakteriše vektor elementi se moraju zapisivati nezavisno, a medusobno se povezuju (nadovezuju) pomoću pokazivača. 2 Stek, red: osnovne operacije, realizacija pomoću niza Preporučuje se učenje kodova. Stek i red su strukture podataka kojima su operacije INSERT i DELETE predefinisane. Stek funkcioniše po LIFO politici (last-in-first-out), dok red koristi FIFO (first-in-first-out) politiku. Stek: INSERT operacija kod steka se obično naziva PUSH, a DELETE se naziva POP. Stek odgovara primeru diskova koji su naslagani na stalak. Može se pristupiti samo onom koji je na vrhu i da bi se onaj na dnu izvadio moraju se skinuti svi koji se nalaze na njemu. Stek čuva atribut vrh koji nam bez skidanja sa steka pokazuje element koji se nalazi na vrhu. Kod upotrebe operacija PUSH i POP razlikujemo dva stanja: potkoračenje i prekoračenje. Potkoračenje se dešava kada pokušavamo da iskoristimo POP, a na steku nema nijednog elementa. Prekoračenje se dešava kada pokušavamo da iskoristimo PUSH, a stek nam je pun. Pseudo kodovi za realizaciju steka pomoću niza: Stek_pun(S, vrh) if vrh = MAX then return TRUE return FALSE 4

5 Stek_prazan(S, vrh) if vrh = 0 then return TRUE return FALSE Push(S, vrh, x) if Stek_pun(S, vrh) then {ispis greske: prekoracenje steka} vrh = vrh + 1 S[vrh] = x Pop(S, vrh) if Stek_prazan(S, vrh) then {ispis greske: potkoracenje steka} vrh = vrh - 1 return S[vrh+1] Red: operaciju INSERT nazivamo ENQUEUE, a DELETE nazivamo DEQUEUE. Primer rada reda može da predstavlja red u banci, gde prvi iz reda izlazi onaj koji je prvi došao. Red sadrzi poc i kraj. Kada ubacujemo element u red on se ubaci na mesto kraj, a kada izbacujemo element, onda se izbacuje poc. Ako je poc = kraj, onda je red prazan. Ukoliko,,red je pun definišemo kao,,ostalo je samo 1 prazno mesto, onda ako je kraj < n i poc = kraj + 1 ili ako je kraj = n i poc = 1, onda je red pun, pri čemu važi da je inicijalna vrednost i poc i kraj jednaka 1. I ovde razlikujemo potkoračenje i prekoračenje. Pseudo kodovi za realizaciju reda pomoću niza (bez obaveštavanja o greški): Enqueue(Q, poc, kraj, n, x) Q[kraj] = x if kraj = n then kraj = 1 kraj = kraj+1 Dequeue(Q, poc, kraj, n) x = Q[poc] if poc = n then poc = 1 poc = poc + 1 return x 5

6 3 Dvostruko (jednostruko) povezane liste traženje, umetanje, brisanje elementa Preporučuje se učenje kodova. Povezana lista je dinamička struktura podataka što znači da joj se broj elemenata moze dinamički povećavati i smanjivati. Ona predstavlja vektor parova (element, pokazivač) gde pokazivač sadrži adresu narednog para. Obilazak liste je moguć samo linearnim prolaskom, odnosno i-tom elementu se može pristupiti samo prolaskom kroz njegove prethodnike. Prednost povezane liste je to što se izbacivanje i ubacivanje elemenata lako realizuje. Nedostatak je taj što je potrebno više prostora (svaki element mora imati i pokazivač na sledeći što zauzima više memorije). Postoje različite vrste povezanih listi: jednostruko povezana (struktura sadrži element i pokazivač na sledeći element), dvostruko povezana (struktura sadrži element i dva pokazivača: jedan na prethodni, a jedan na sledeći element), ciklično povezana (jednostruko povezana pri čemu poslednji element pokazuje na prvi). Pseudo kodovi za traženje, umetanje i brisanje elemenata iz jednostruko povezane i dvostruko povezane liste: Search(L, k) x = L while x!= NULL and x.kljuc!= k do x = x.nar return x Insert(L, x) x.nar = L if L!= NULL L.pret = x L = x x.pret = NULL Delete(L, x) if x.pret!= NULL x.pret.nar = x.nar L = x.nar if x.nar!= NULL x.nar.pret = x.pret 4 Korenska stabla, predstava proizvoljnog korenskog stabla binarnim stablom Stablo (drvo) hijerarhijska je struktura, ali se može koristiti i za izvodenje nekih operacija nad linearnim strukturama. Korensko stablo čini skup čvorova i grana, koje povezuju čvorove na specijalan način. Jedan čvor je izdvojen, predstavlja vrh hijerarhije i zove se koren stabla. Čvorovi vezani sa korenom čine nivo 1 hijerarhije; (novi) čvorovi vezani sa čvorovima nivoa 1 (sem korena) čine nivo 2 hijerarhije itd. Svaka grana u stablu povezuje neki čvor sa njegovim (jedinstvenim) prethodnikom (ocem); jedino koren nema 6

7 oca. Osnovna karakteristika stabla je da nema ciklusa (zatvorenih puteva), zbog čega izmedu svaka dva njegova čvora postoji jedinstveni put. Čvor u stablu vezan je sa ocem i sa nekoliko sinova. Za čvor v koji se nalazi na putu od čvora u do korena kaže se da je predak čvora u; u tom slučaju je čvor u potomak čvora v. Maksimalni broj sinova čvora u grafu zove se stepen stabla. Stablo stepena dva zove se binarno stablo. Čvor u binarnom stablu može da ima najviše dva sina, levog i desnog. Čvor bez dece zove se list, a čvor koji nije list zove se unutrašnji čvor. Visina stabla je najveći nivo hijerarhije u njemu, tj. maksimalno rastojanje od korena do nekog čvora. Čvor ima ključ iz nekog potpuno uredenog skupa (npr. celi ili realni broj). Svaki čvor može da ima polje za podatak što zavisi od primene. Slika 1: Primer korenskog stabla. Stablo stepena većeg od dva može se predstaviti korišćenjem samo dva pokazivača po čvoru: jednog ka prvom sinu, a drugog ka narednom bratu videti primer na slici 2. Slika 2: Prikazivanje nebinarnog stabla sa po najviše 2 pokazivača po čvoru. 5 Binarna stabla: eksplicitno i implicitno predstavljanje U zavisnosti od toga da li se koriste pokazivači ili ne, predstavljanje stabla je eksplicitno, odnosno implicitno. 7

8 Pri eksplicitnom predstavljanju se čvor sa k sinova predstavlja slogom čiji je deo vektor sa k pokazivača ka sinovima; ponekad je deo sloga i pokazivač ka ocu. Pogodno je da svi čvorovi budu istog tipa sa m pokazivača, gde je m stepen stabla. Za implicitno predstavljanje stabla ne koriste se pokazivači: svi čvorovi se smeštaju u vektor, a veze izmedu čvorova odredene su njihovom pozicijom u vektoru. Ako je sa A označen vektor u koji se smeštaju čvorovi binarnog stabla, onda se koren smešta u A[1]; njegov levi, odnosno desni sin zapisuju se u A[2], odnosno A[3], itd. Dakle, u vektoru se čvorovi zapisuju onim redom kojim se prolaze s leva u desno, nivo po nivo; pri tome se očigledno u vektoru mora rezervisati prostor i za odsutne čvorove. Indukcijom se može pokazati da ako je čvor v zapisan u elementu A[i], onda su njegov levi, odnosno desni sin zapisani u elementu A[2i], odnosno A[2i + 1]. 6 Hip realizacija reda sa prioritetom osnovne operacije Preporučuje se učenje kodova. Hip je binarno stablo koje zadovoljava uslov hipa: ključ svakog čvora je veći ili jednak od ključeva njegovih sinova. Neposredna posledica definicije (zbog tranzitivnosti relacije ) je da je u hipu ključ svakog čvora veći ili jednak od ključeva svih njegovih potomaka. Hip je pogodan za realizaciju liste sa prioritetom, apstraktne strukture podataka za koju su definisane dve operacije: umetni(x) umetni ključ x u strukturu, i ukloni() ukloni (obriši) najveći ključ iz strukture. Hip se može realizovati sa implicitno ili eksplicitno zadatim stablom. Ovde će biti prikazana realizacija hipa na implicitno zadatom stablu. Smatraćemo da su ključevi čvorova hipa smešteni u vektoru A, pri čemu je k gornja granica za broj elemenata hipa (ako se ta granica ne zna unapred, onda se za hip mora koristiti povezana lista). Ako je n tekući broj elemenata hipa, onda se za smeštanje elemenata hipa koriste lokacije u vektoru A sa indeksima od 1 do n. Algoritam Skini_max_sa_hipa(A, n); Ulaz: A (vektor veličine n za smeštanje hipa). Izlaz: Vrh hipa (najveći elemenat hipa), A (novi hip), n (nova veličina hipa; ako je n = 0 hip je prazan). if n = 0 then print "hip je prazan" Vrh_hipa := A[1]; A[1] := A[n]; n := n - 1; Otac := 1; if n > 1 then Sin := 2; while Sin <= n do if Sin + 1 <= n and A[Sin] < A[Sin + 1] then Sin := Sin + 1; if A[Sin] > A[Otac] then zameni (A[Otac], A[Sin]); Otac := Sin; Sin := 2 * Sin; Sin := n + 1 {da bi se iskočilo iz petlje} 8

9 Algoritam Upis_u_hip(A, n, x); Ulaz: A (vektor veličine n za smeštanje hipa), x (broj). Izlaz: A (novi hip), n (nova veličina hipa). n = n + 1; {pretpostavka je da novo n nije veće od veličine A} A[n] = x; Sin = n; Otac = n div 2; while Otac >= 1 do if A[Otac] < A[Sin] then zameni(a[otac], A[Sin]); Sin = Otac; Otac = Otac div 2; Otac = 0; {za iskakanje iz petlje} Obe operacije su složenosti reda O(log n). 7 Binarno stablo pretrage realizacija rečnika osnovne operacije (traženje, umetanje, brisanje elementa) Preporučuje se učenje kodova. Svaki čvor binarnog stabla ima najviše dva sina, pa se može fiksirati neko preslikavanje skupa njegovih sinova u skup {levi, desni}. Ovo preslikavanje može se iskoristiti pri iscrtavanju stabla u ravni: levi sin crta se levo, a desni sin desno od oca; svi čvorovi iste generacije (nivoa) crtaju se na istoj horizontalnoj pravoj, ispod prave na kojoj su čvorovi prethodne generacije. Levom, odnosno desnom sinu korena stabla odgovara levo, odnosno desno podstablo. U binarnom stablu pretrage (BSP) ključ svakog čvora veći je od ključeva svih čvorova levog podstabla, a manji od ključeva svih čvorova desnog podstabla. BSP omogućuje efikasno izvršavanje sledeće tri operacije: Nadji(x) nadi elemenat sa ključem x u strukturi, ili ustanovi da ga tamo nema (pretpostavlja se da se svaki ključ u strukturi nalazi najviše jednom); Umetni(x) umetni ključ x u strukturu, ako on već nije u njoj; u protivnom ova operacija nema efekta, i Ukloni(x) ako u strukturi podataka postoji elemenat sa ključem x, ukloni ga. Struktura podataka sa ovim operacijama zove se rečnik. Za njenu realizaciju može se iskoristiti BSP. Svaki čvor stabla je slog sa bar tri polja: ključ, levi i desni. Drugo, odnosno treće polje su pokazivači ka drugim čvorovima, ili NULL (ako čvor nema levog, odnosno desnog sina). Algoritam Nadji_u_BSP(Koren, x); Ulaz: Koren (pokazivač na koren BSP), x (broj). Izlaz: Čvor (pokazivač na čvor koji sadrži ključ x, ili NULL ako takvog čvora nema). if Koren = NULL or Koren.Ključ = x then Čvor := Koren if x < Koren.Ključ then Čvor = Nadji_u_BSP(Koren.Levi, x); Čvor = Nadji_u_BSP(Koren.Desni, x); return Čvor; 9

10 Algoritam Umetni u BSP(Koren, x); Ulaz: Koren (pokazivač na koren BSP), x (broj). Izlaz: U BSP se umeće čvor sa ključem x na koga pokazuje pokazivač Sin; ako već postoji čvor sa ključem x, onda Sin = NULL. if Koren = NULL then kreiraj novi čvor na koga pokazuje Sin; Koren := Sin; Koren.Ključ = x; Koren.levi := NULL; Koren.Desni := NULL; Čvor := Koren; {tekući čvor u stablu} Sin := Koren; {postavlja se na vrednost različitu od NULL} while Čvor!= NULL and Sin!= NULL do if Čvor.Ključ = x then Sin := NULL {silazak niz stablo za jedan nivo} Otac := Čvor; if x < Čvor.Ključ then Čvor := Čvor.Levi Čvor := Čvor.Desni; if Sin!= NULL then {novi čvor je sin čvora Otac} kreiraj novi čvor na koga pokazuje Sin; Sin.Ključ := x; Sin.Levi = NULL; Sin.Desni = NULL; if x < Otac.Ključ then Otac.Levi := Sin Otac.Desni := Sin 10

11 Algoritam Ukloni iz BSP(Koren, x); Ulaz: Koren (pokazivač na koren BSP), x (broj). Izlaz: Iz BSP se uklanja čvor sa ključem x, ako takav postoji. {Pretpostavka je da se koren nikad ne briše, i da su svi ključevi različiti} {prva faza: traženje čvora sa ključem x} Čvor := Koren; while Čvor!= NULL and Čvor.Ključ!= x do Otac := Čvor; if x < Čvor.Ključ then Čvor := Čvor.Levi; Čvor := Čvor.Desni; if Čvor = NULL then print("x nije u BSP"); halt; {brisanje nadenog čvora Čvor, ili njegovog prethodnika} if Čvor!= Koren then if Čvor.Levi = NULL then if x <= Otac.Ključ then Otac.Levi := Čvor.Desni; Otac.Desni := Čvor.Desni; if Čvor.Desni = NULL then if x <= Otac.Ključ then Otac.Levi := Čvor.Levi; Otac.Desni := Čvor.Levi; {slučaj sa dva sina} Čvor1 := Čvor.Levi; Otac1 := Čvor; while Čvor1.Desni!= NULL do Otac1 := Čvor1; Čvor1 := Čvor1.Desni; {a sada brisanje; Čvor1 je prethodnik čvora Čvor} Čvor.Ključ := Čvor1.Ključ; if Otac1 = Čvor then Otac1.Levi := Čvor1.Levi; {Čvor1 je levi sin čvora Otac1} Otac1.Desni := Čvor1.Levi; {Čvor1 je desni sin čvora Otac1} Složenost: Ukoliko je stablo približno uravnoteženo onda je složenost sve tri operacije jednaka O(log n) što je jednako visini stabla. U najgorem slučaju visina stabla moze biti O(n) i to se dešava ako je redosled ubacivanja elemenata u BSP ureden rastuće. Brisanje može predstavljati problem ukoliko se sve vreme koristi samo prethodnik ili samo sledbenik kao pomoćni čvor, a to se može rešiti naizmeničnom upotrebom funkcija sledbenik i prethodnik. 8 Binarno stablo pretrage prethodnik, sledbenik elementa Preporučuje se učenje kodova. Za algoritme prethodnika i sledbenika nekog elementa, potrebni su algoritmi za minimalni i maksimalni element. Minimum(koren) while koren.levi!= NULL do koren = koren.levi return koren 11

12 Maksimum(koren) while koren.desni!= NULL do koren = koren.desni return koren Sledbenik nekog elementa x je čvor sa najmanjim ključem koji je veći od x.ključ. Algoritam za nalaženje sledbenika se razbija u dva slučaja: (1) Ako je desno podstablo neprazno, sledbenik je minimum u desnom podstablu i (2) Ako je desno podstablo prazno, premeštamo se uvis sve dok je taj čvor desni sin oca. Ako postoji, naredni otac je sledbenik. Sledbenik(x) if x.desni!= NULL then return Minimum(x.desni) y = x.otac while y!= NULL and x = y.desni do x = y y = y.otac return y Pojam prethodnika i algoritam za nalaženje prethodnika je simetričan u odnosu na prethodni algoritam. Prethodnik(x) if x.levi!= NULL then return Maksimum(x.levi) y = x.otac; while y!= NULL and x = y.levi do x = y; y = y.p; return y 9 Heš tabele, heš funkcije, kolizije i njihova obrada Heš tabele spadaju medu najkorisnije strukture podataka. Ideja je da, ako imamo vektor duzine n i vrednosti od 1 do n da stavimo u tabelu, onda ćemo vrednost i da stavimo na i-tu poziciju. Ova ideja funkcioniše samo za manje vrednosti n-a. Ukoliko je opseg iz koga su vrednosti od 1 do M, gde je M neki jako veliki broj, onda ne možemo da koristimo vektor dužine M. Primer je upis na osnovu matičnog broja. Pretpostavimo da nam je dato n kljuceva iz skupa U velicine U = M >> m. Potrebno je naći funkciju koja bi vršila preslikavanja {0, 1, 2,..., M 1} {0, 1, 2,..., m 1} koja se naziva heš funkcija i koja odreduje odgovarajuću poziciju elementa na osnovu njegovog ključa. Ako veličina m nije dovoljno velika, onda može doći do deljenja odgovarajućih pozicija različitih podataka i to se naziva kolizija. Uniformnost i slučajnost su bitne osobine heš funkcija. Postoje dva problema: Nalaženje heš funkcija koje minimiziraju verovatnoću da dode do kolizija i Nalaženje načina da se obrade kolizije ako do njih ipak dode 12

13 Heš funkcije: Ako je veličina tabele m prost broj, onda je dobra heš funkcija: h(x) = x mod m Ukoliko m nije prost broj, onda se može koristiti heš funkcija tipa: h(x) = (x mod p) mod m, gde je p prost broj takav da je m << p << M. Problem se javlja ako su sve vrednosti koje ubacujemo oblika r + kp, za neki celi broj r zato što će uvek da idu na poziciju r. Ovaj problem se moze rešiti time što necémo uvek koristiti isto p već će se ono menjati po unapred odredenom redosledu. Drugo rešenje je da koristimo heš funkciju oblika: h(x) = (ax + b mod p), gde je a 0 i a, b su slučajni brojevi. Ova funkcija u proseku daje dobro rešenje. Obrada kolizija: Razlikujemo odvojeno nizanje, linearno popunjavanje i dvostruko heširanje kao moguća rešenja za kolizije. Odvojeno nizanje je najjednostavniji način i tu je svaki element tabele u stvari pokazivač na povezanu listu koja čuva ključeve kojima je heš funkcija dodelila tu poziciju. Kod traženja ključa se mora, u najgorem slučaju, proći cela lista kako bi se videlo da li sadrži dati ključ. Ovaj metod je neefikasan ukoliko su liste na odgovarajućim pozicijama dugačke, a dodatno otežavanje predstavlja memorijska lokacija, ali s druge strane radi bez greške i ukoliko je dimenzija tabele pogrešne veličine. Linearno popunjavanje funkcioniše po modelu h 1 (x) = (h(x) + i) mod m, gde je i 0. U slučaju traženja zadatog elementa potrebno je pretražiti tabelu od pozicije h(x) sve do prve nepopunjene pozicije. Ovo rešenje je efikasno ukoliko nam je tabela retka, u suprotnom bi dolazilo do mnogo sekundarnih kolizija (kolizija ključeva kojima su vrednosti heš funkcija različite). Veliki broj mogućnosti za sekundarne kolizije se naziva i efekat grupisanja. Dvostruko heširanje: Kada dode do kolizije na poziciji h(x) = i, izračunava se vrednost druge heš funkcije h 2 (x) i onda se ključ x stavlja na poziciju g(x) = (h(x) + i h 2 (x)) mod m, za i 0. Treba voditi računa da vrednosti h 2 (x) budu uzajamno proste sa m. 10 Grafovi predstavljanje: matrica povezanosti, lista povezanosti Graf G = (V, E) sastoji se od skupa V čvorova i skupa E grana. Grana odgovara paru čvorova. Drugim rečima, grane predstavljaju relaciju izmedu čvorova. Na primer, graf može da predstavlja skup ljudi, a da grana povezuje dva čoveka ako se oni poznaju. Graf je usmeren, odnosno neusmeren ako su mu grane uredeni, odnosno neuredeni parovi. Ako se usmereni graf predstavlja crtežom, granama se dodaju strelice koje vode ka drugom čvoru iz uredenog para. Jednostavan primer grafa je stablo. Uobičajena su dva načina predstavljanja grafova: Prvi je matrica povezanosti grafa. Neka je V = n i V = {v 1, v 2,..., v n }. Matrica povezanosti grafa G je kvadratna matrica A = (a ij ) reda n, sa elementima a ij = 1 akko (v i, v j ) E, a ostali elementi matrice A su nule. Ako je graf neusmeren, matrica A je simetrična. Vrsta i ove matrice je dakle vektor dužine n čija je j-ta koordinata jednaka 1 ako iz čvora v i vodi grana u čvor v j, odnosno 0 u protivnom. Nedostatak matrice povezanosti je to što ona uvek zauzima prostor veličine n 2, nezavisno od toga koliko grana ima graf. Svakom čvoru grafa pridružuje se vektor dužine n. Ako je broj grana u grafu mali, većina elemenata matrice povezanosti biće nule. 13

14 Umesto da se i sve nepostojeće grane eksplicitno predstavljaju u matrici povezanosti, mogu se formirati povezane liste od jedinica iz i-te vrste, i = 1, 2,..., n. Ovaj drugi način predstavljanja grafa zove se lista povezanosti. Svakom čvoru pridružuje se povezana lista, koja sadrži sve grane susedne čvoru (odnosno grane ka susednim čvorovima). Lista može biti uredena prema rednim brojevima čvorova na krajevima njenih grana. Graf je predstavljen vektorom lista. Svaki elemenat vektora sadrži ime (indeks) čvora i pokazivač na njegovu listu čvorova. Ako je graf statički, odnosno nisu dozvoljena umetanja i brisanja, onda se liste mogu predstaviti vektorima na sledeći način. Koristi se vektor duižne V + E. Prvih V članova vektora su pridruženi čvorovima. Komponenta vektora pridružena čvoru v i sadrži indeks početka spiska čvorova susednih čvoru v i, i = 1, 2,..., n. Na slici 3 prikazana su na jednom primeru oba načina predstavljanja grafa. Slika 3: Predstavljanje grafa matricom povezanosti (a), odnosno listom povezanosti (b) Sa matricama povezanosti je jednostavnije raditi. S druge strane, liste povezanosti su efikasnije za grafove sa malim brojem grana. U praksi se često radi sa grafovima koji imaju znatno manje grana od maksimalnog mogućeg broja (n(n 1)/2 neusmerenih, odnosno n(n 1) usmerenih grana), i tada je obično bolje koristiti liste povezanosti. 11 Sortiranje objedinjavanjem Preporučuje se učenje kodova. Algoritam radi na sledeći način. Najpre se niz podeli na dva jednaka ili približno jednaka dela (ako mu je dužina neparna). Zatim se oba dela rekurzivno sortiraju. Na kraju se sortirani delovi objedinjavaju u jedan sortirani niz. Dva sortirana niza mogu se objediniti u sortirani niz jednim prolazom. Objedinjavanje se vrši tako što se brojevi iz drugog niza razmatraju redom: traži se mesto u prvom nizu za najmanji broj, pa za sledeći itd. Preciznije, označimo nizove sa a 1, a 2,..., a n, odnosno b 1, b 2,..., b m, i pretpostavimo da su oba niza sortirana u rastućem poretku. Elementi prvog niza se pregledaju dok se ne pronade mesto za b 1, pa se umeće b 1. Zatim se nastavlja sa pregledanjem od te pozicije dalje, dok se ne pronade mesto za b 2, 14

15 itd. Pošto su brojevi u drugom nizu sortirani, nema potrebe za vraćanjem u prvom nizu. Ukupan broj uporedivanja u najgorem slučaju jednak je zbiru dužina dva niza. Problem su premeštanja: neefikasno je premeštati elemente pri svakom umetanju, jer se tada elementi moraju premeštati više puta. Umesto toga, pošto objedinjavanje daje jedan po jedan elemenat u sortiranom redosledu, elemente kopiramo u privremeni niz; svaki elemenat se kopira tačno jednom. Ukupno je za objedinjavanje dva sortirana niza dužina n i m potrebno O(n + m) uporedivanja i premeštanja podataka. Pretpostavlja se da je raspoloživ memorijski prostor za pomoćni niz. Algoritam Sort_objed(X, n); Ulaz: X (niz od n brojeva); Izlaz: X (sortirani niz); M_sort(1, n); procedure M_Sort(Levi, Desni); if Desni - Levi = 1 then {provera koja nije neophodna, ali čini program efikasnijim} if X[Levi] > X[Desni] then zameni (X[Levi], X[Desni]) if Levi!= Desni then Srednji := (Levi + Desni)/2; M_Sort(Levi, Srednji - 1); M_Sort(Srednji, Desni); {sada se dva sortirana dela niza objedinjavaju} i := Levi; {pokazivač na levu polovinu niza} j := Srednji; {pokazivač na desnu polovinu niza} k := 0; {pokazivač na pomoćni vektor Pom} while (i <= Srednji - 1) and (j <= Desni) do k := k + 1; if X[i] <= X[j] then Pom[k] := X[i]; i := i + 1; Pom[k] := X[j]; j := j + 1 if j > Desni then {kopiranje ostatka leve polovine na kraj vektora Pom} {ako je i >= Srednji, onda je desna strana već na svom mestu} for t := 0 to Srednji i do X[Desni - t] := X[Srednji t]; {kopiranje pomoćnog vektora Pom nazad u X} for t := 0 to k - 1 do X[Levi + t] := Pom[t + 1] Složenost: Neka je T (n) broj uporedivanja potrebnih za sortiranje objedinjavanjem u najgorem slučaju. Da bi se izracunalo T (n), treba rešiti diferencnu jednačinu: Njeno rešenje je T (n) = O(n log n). T (2n) = 2T (n) + cn, T (2) = 1. Nedostatak ovog sortiranja, pored toga što se ne realizuje lako, korak objedinjavanja zahteva dopunsku memoriju, tj. ovo nije sortiranje u mestu. Kopiranje se radi pri svakom objedinjavanju manjih skupova, što čini proceduru sporijom. 15

16 12 Sortiranje pomoću hipa (hip sort) Hipsort predstavlja jos jedan tip brzih algoritama za sortiranje koji nije mnogo sporiji od sortiranja razdvajanjem, ali za razliku od njega hipsort ima garantovanu efikasnost. Njegova složenost je O(n log n). Hipsort je algoritam koji radi u mestu (ne zahteva dodatni memorijski prostor). Pretpostavlja se da se hip predstavlja implicitno (preko niza). Hipsort se izvršava isto kao i sortiranje izborom, razlika je u upotrebljenoj strukturi podataka. Najpre se elementi niza preurede tako da čine ispravan hip. Problem formiranja hipa:,,dat je niz A[1], A[2],..., A[n] tako proizvoljno rasporedenih elemenata i potrebno je preurediti ih tako da čine hip. Postoje dva pristupa formiranju hipa: Odozgo-nadole (induktivna hipoteza): Niz A[1], A[2],..., A[i] predstavlja hip. Bazni slučaj A[1] je trivijalan, zato što jeste hip. Osnovni deo algoritma je ubacivanje novog elementa A[i + 1] u hip A[1], A[2],..., A[i]. Dakle, element A[i + 1] se uporeduje sa svojim ocem, ako je veći, onda njih dvojica zamenjuju pozicije i pozove se rekurzivno ubacivanje dalje u vrh. Menja se sve dok ne stigne do vrha hipa ili vrednost oca ne bude veća ili jednaka njegovoj. Složenost je O(n log n). Odozdo-nagore (induktivna hipoteza): Niz A[i + 1],..., A[n] je hip. Elementi sa indeksima vecim od n/2 + 1 su listovi, pa oni trivijalno zadovoljavaju uslov hipa. Dovoljno je da indukcijom krenemo od i = n/2. Pristup odozdo-nagore je efikasniji zato što je pola posla trivijalno. A[i] se uporeduje sa svojim sinovima A[2i] i A[2i + 1] i zamenjuje se sa većim ako je on manji od njega. Sa zamenama se nastavlja sve dok A[i] ne stigne na poziciju na kojoj ili nema sinove ili je veći ili jednak od vrednosti oba sina. Vremenska slozenost je O(n). Na osnovu formiranog hipa se vrši uklanjanje jednog po jednog elementa korišćenjem operacije,,ukloni element sa najvećom vrednošću i dobija se sortiran niz. Algoritam Hipsort(X, n); Ulaz: X (niz od n brojeva). Izlaz: X (sortirani niz). Preurediti X tako da bude hip; for i := n downto 2 do zameni (X[1], X[n]); Preuredi_Hip(i, 1); {procedura slična algoritmu Skini_max_sa_hipa} 13 Brzo sortiranje (kvik sort) Preporučuje se učenje kodova. Sortiranje razdvajanjem predstavlja dobar primer algoritma zasnovanom na dekompoziciji. Ideja sortiranja razdvajanjem je da se veći deo vremena utroši na fazu podele, a manji deo na objedinjavanje. Pretpostavimo da znamo element x takav da je pola niza manje ili jednako od njega, a pola veće. Broj x se može uporediti sa svim ostalim elementima sto je (n 1) poredenja i podeliti ih u dve grupe prema rezultatu uporedivanja. Ovo razdvajanje se može izvršiti bez dopunskog memorijskog prostora to je faza podele. Zatim se oba podniza rekurzivno sortiraju. Element x se jos naziva i pivotom i osnovna ideja je podeli niz na elemente veće ili jednake njemu i manje od njega. Ideja je da imamo dva pokazivača: L koji pokazuje na početku na skroz levi element niza i D koji pokazuje na skroz desni. Zatim se pokazivači približavaju jedan drugom tako što se L povećava ukoliko je element na koji pokazuje od pivota, a D se smanjuje sve dok je element na koji on pokazuje veći od pivota. Ako važi L < D, onda zamenimo ta dva elementa. U protivnom, potrebno je izvršiti dodatni 16

17 korak zamenjivanja pivota sa elementom na koji pokazuje D. Sledeća induktivna hipoteza (tj. invarijanta petlje) garantuje ispravnost razdvajanja: Induktivna hipoteza. U koraku k algoritma važi pivot x i za sve indekse i < L i pivot < x j za sve indekse j > D. Ostaje problem izbora dobrog pivota i preciziranja poslednjeg koraka algoritma kad se pokazivači sretnu. Algoritmi zasnovani na dekompoziciji najbolje rade kad delovi imaju približno iste veličine, što sugeriše da što je pivot bliži sredini, to će algoritam biti efikasniji. Izbor slučajnog elementa niza je dobro rešenje. Ako je polazni niz dobro ispreturan, onda se za pivot može uzeti prvi elemenat niza. Algoritam Quicksort(X, n); Ulaz: X (niz od n brojeva). Izlaz: X (sortirani niz). Q_sort(1, n); procedure Q_Sort(Levi, Desni); if Levi < Desni then S = Razdvajanje(X, Levi, Desni); {S je indeks pivota posle razdvajanja} Q_Sort(Levi, S - 1); Q_Sort(S + 1, Desni); function Razdvajanje(X, Levi, Desni); Ulaz: X (niz), Levi (leva granica niza) i Desni (desna granica niza). Izlaz: X i S = Razdvoji, takav indeks da je X[i] <= X[S] za sve i <= S i X[j] > X[S] za sve j > S. pivot := X[Levi]; L := Levi; D := Desni; while L < D do while X[L] <= pivot and L <= Desni do L := L + 1; while X[D] > pivot and D >= Levi do D := D - 1; if L < D then zameni X[L] i X[D]; Razdvoji := D; zameni X[Levi] sa X[S] Složenost: Vreme izvršenja sortiranja razdvajanjem zavisi od konkretnog ulaza i izbora pivota. Ako pivot uvek razdvaja niz na dva jednaka dela, onda je diferencna jednačina za složenost T (n) = 2T (n/2) + cn, T (2) = 1, što za posledicu ima T (n) = O(n log n). Ipak najgora analiza slučaja pokazuje da je ovaj algoritam reda O(n 2 ), za primer ako je niz već ureden rastuće (ili skoro ureden rastuće), pošto se za pivot uvek bira prvi element. 14 Sortiranje složenosti O(n), donja granica složenosti sortiranja kad se koriste uporedivanja Funkcija f(n) predstavlja donju granicu složenosti nekog problema ako za proizvoljan algoritam koji se izvršava u vremenu T (n) važi T (n) = Ω(f(n)). Dokazivanje da je neka funkcija donja granica složenosti nekog problema nije jednostavan posao zato što se moraju uzeti u obzir svi algoritmi koji rešavaju taj 17

18 problem. Neophodno je odabrati model koji odgovara odredenom načinu rešavanja, a zatim odrediti da li je složenost tog proizvoljnog algoritma veća ili jednaka donjoj granici. Stablo odlučivanja predstavlja model algoritma koji se zasniva uglavnom na uporedivanju. Definiše se kao binarno stablo sa dve vrste čvorova, unutrašnjim i listovima. Svaki unutrašnji čvor predstavlja pitanje na koje se mogu imati dva odgovora koji su predstavljeni granama, dok list predstavlja krajnji rezultat. Ako se radi o problemu sortiranja, onda smatramo da nam je ulaz niz x 1, x 2,..., x n. U svakom čvoru se postavlja jedno pitanje u vezi sa ulazom, a broj rezultata (listova) jednak je broju permutacija ulaznog niza. Posto je n veličina niza, permutacija ima n!. Slika 4: Sortiranje tri elementa pomoću stabla odlučivanja. Vremenska složenost algoritma definisanog stablom odlučivanja je najveći broj koraka koji su odredeni poredenjima, odnosno unutrašnjim čvorovima. Za stablo odlučivanja visine h, listova (rešenja koja se nalaze u listovima) ima najviše 2 h. Za nas je bitna relacija ( n 2 h n! h log 2 n! > log 2 2 n 2... n ) ( n ) n = log }{{ = n } 2 2 (log 2 n 1), n 2 odakle se dobija da svi algoritmi koji koriste uporedivanje moraju biti barem u nekom skupu slučaja složenosti O(n log n). Algoritam složenosti O(n): Posmatrajući ideju sortiranja bez uporedivanja, može se konstruisati algoritam sortiranja razvrstavanjem na sledeći način: Neka treba sortirati niz A[1], A[2],..., A[n] čiji su elementi celi brojevi iz opsega S = {1, 2,..., m}. Recimo, za n = 5, niz A = {3, 8, 2, 6, 4} i opseg S = {1, 2,..., 8}. Algoritam glasi: (1) Napraviti pomoćni niz X dužine m i inicijalizovati njegove vrednosti na nule. (2) Prolazeći kroz niz A, kada se naide na broj i A, uvećati X[i] (3) Prolazeći kroz niz X, ispisati one indekse i akko X[i] = 1. Broj koraka ovog algoritma jednak je O(m) + O(n) = O(m + n), medutim, kako je m >> n u najčešćem slučaju, broj koraka jednak je O(m). Ipak, opseg m se može izraziti nekom multiplikativnom i/ili aditivnom konstantom u zavisnosti od n, pa je broj koraka jednak O(m) = O(c 1 n + c 2 ) = O(n). Veliki nedostatak ovog algoritma je prostorna složenost jer je dužina niza X jednaka broju m, za koji važi, kao što je prethodno rečeno, u najčešćem slučaju m >> n. 18

19 15 Pretraga grafa u dubinu (dokaz ispravnosti, DFS stablo, numeracija čvorova, komponente povezanosti) Preporučuje se učenje kodova. Neusmereni grafovi: Opis pretrage grafa u dubinu (DFS, skraćenica od depth-first-search) odgovara polasku kroz galeriju. Uvek se trudimo da prodemo kroz neposećeni hodnik i kada se nademo na raskrsnici, ostavimo kamenčić. Kada naidemo na hodnik koji ne vodi nikud, ili na već posećenu raskrsnicu, mi se vraćamo nazad do prethodne raskrsnice i pokušavamo da udemo u novi hodnik. Ako nema neposećenog, idemo nazad itd. Osnovni razlog upotrebljivosti DFS pretrage je jednostavna implementacija korišćenjem rekurzije. Za neusmereni graf predstavljen listom povezanosti algoritam počinje od zadatog cvora v koji predstavlja koren pretrage u dubinu. On se označava kao posećen i onda se vrši rekurzivni poziv za proizvoljan cvor w koji je sused cvora v. Iz rekurzivnog poziva nekog čvora se izlazi tek ako ne postoji susedan cvor za koji se moze pozvati dalja pretraga u dubinu. Kako bi imao što veću upotrebljivost, DFS algoritam razlikuje ulaznu i izlaznu obradu pri poseti čvora. Ulazna obrada se vrši u trenutku ulaska u novi rekurzivni poziv, dok se izlazna vrši kada se rekurzivni poziv završava. Oni zavise od same primene DFS algoritma. Pseudo kod uopštenog algoritma DFS: DFS(G, v) označiti v; prework na v; for sve grane (v, w) do if w nije označen then DFS(G, w); postwork na (v, w); Sledećom lemom je obezbedena ispravnost DFS algoritma: Lema: Ako je graf G povezan, onda će algoritmom pretrage u dubinu svi njegovi čvorovi biti označeni, a sve njegove grane biće u toku izvršavanja algoritma pregledane bar po jednom. : Pretpostavimo suprotno, i označimo sa U skup neoznačenih čvorova zaostalih posle izvršavanja algoritma. Pošto je G povezan, bar jedan čvor iz U mora biti povezan granom sa nekim označenim čvorom. Medutim, ovako nešto je nemoguće, jer kad god se poseti čvor, moraju biti posećeni (pa dakle i označeni) svi njegovi neoznačeni susedi. Pošto su svi čvorovi posećeni, a kad se čvor poseti, onda se pregledaju sve grane koje vode iz njega, zaključujemo da su i sve grane grafa pregledane. Pseudo kod za pravljenje DFS stabla: T = prazan_graf(); DFS_stablo(G, v) označiti v; for sve grane (v, w) do if w nije označen then dodati (v, w) u T; DFS(G, w); Numeracija i DFS stablo imaju bitnu ulogu u mnogim algoritmima čak iako graf nije eksplicitno zadat. 19

20 DFS Numeracija može biti dolazna ili odlazna koje odgovaraju ulaznoj i izlaznoj obradi. Pretpostavimo da čvorovi imaju polja num1 i num2 koji treba da označavaju njihovu dolaznu, odnosno odlaznu numeraciju. Za preorder (dolaznu) numeraciju, potrebno je u prework delu DFS algoritma staviti kod {c1 = c1 + 1; v.pre = c1}, dok je za postorder (odlaznu) numeraciju potrebno u postwork delu staviti kod {if w je poslednji u petlji then {c2 = c2 + 1; v.post = c2}}, pri čemu su c1 i c2 inicijalizovani na 0 pre prvog poziva. Slika 5: Primer pretrage u dubinu. Dva broja uz čvor jednaka su njegovim rednim brojevima pri dolaznoj, odnosno odlaznoj DFS numeraciji. Algoritam za nalaženje komponenti grafa: Algoritam Komponente_povezanosti(G); Ulaz: G = (V, E) (neusmereni graf); Izlaz: v.komp za svaki čvor v dobija vrednost jednaku rednom broju komponente povezanosti koja sadrži v; Rb.komp := 1; while postoji neoznačen čvor v do DFS(G, v); {u prework DFS algoritma treba staviti: v.komp := Rb.komp;} Rb.komp := Rb.komp + 1; 16 Klasifikacija grana grafa u odnosu na DFS stablo, kriterijum za prepoznavanje povratne grane Pri obilasku DFS stabla razlikujemo 4 vrste grana: direktne grane, poprečne grane, povratne grane i grane stabla. Direktne, povratne i grane stabla povezuju dva čvora koji su u vezi predak potomak. Direktne grane predstavljaju grane koje povezuju pretka sa potomkom. Povratne grane povezuju potomka sa pretkom. Poprečne grane povezuju dva čvora koja nisu u srodstvu u stablu i za njih vazi da moraju biti usmerene s desna na levo. Lema (Osnovna osobina DFS stabla neusmerenog grafa): Neka je G = (V, E) povezan neusmeren graf, i neka je T = (V, F ) DFS stablo grafa G dobijeno algoritmom DFS stablo. Svaka grana e E pripada T (tj. e F ) ili spaja dva čvora grafa G, od kojih je jedan predak drugog u T. : Neka je (v, u) grana u G, i pretpostavimo da je u toku DFS v posećen pre u. Posle označavanja v, u petlji se rekurzivno pokreće DFS iz svakog neoznačenog suseda v. U trenutku kad dode red na suseda u, ako je u označen, onda je u potomak v u T, a u protivnom se iz u startuje DFS, pa u postaje sin v. 20

21 Tvrdenje leme može se preformulisati na sledeći način: grane grafa ne mogu biti poprečne grane za DFS stablo, odnosno grane koje povezuju čvorove na različitim putevima od korena (ili: takva dva čvora u i v da je npr. u levo od v). Usmereni grafovi: Procedura pretrage u dubinu usmerenih grafova ista je kao za neusmerene grafove. Medutim, usmerena DFS stabla imaju nešto drugačije osobine. Za njih, na primer, nije tačno da nemaju poprečne grane, što se može videti iz primera na slici 5. Slika 6: DFS stablo usmerenog grafa. Lema (Osnovna osobina usmerenih DFS stabala): Neka je G = (V, E) usmereni graf, i neka je T = (V, F ) DFS stablo grafa G. Ako je (v, w) E grana grafa G za koju važi v.p re < w.p re, onda je w potomak v u stablu T. : Pošto je prema dolaznoj DFS numeraciji v ispred w, w je označen posle v. Grana grafa (v, w) mora biti razmatrana u toku rekurzivnog poziva DFS iz čvora v. Ako u tom trenutku čvor w nije bio označen, onda se grana (v, w) mora uključiti u stablo, tj. (v, w) F, pa je tvrdenje leme tačno. U protivnom, w je označen u toku izvodenja rekurzivnog poziva DFS iz v, pa w mora biti potomak v u stablu T. Za DFS obilazak usmerenog grafa ne mora značiti da se pozivom iz proizvoljnog čvora mogu obići svi čvorovi, što se može videti iz primera na slici 6. Slika 7: Primer kad DFS usmerenog grafa ne obilazi kompletan graf. 21

22 Razmotrimo sada za svaku granu (u, v) odnos odlaznih DFS brojeva čvorova u i v. 1. Ako je (u, v) grana stabla ili direktna grana, onda je v potomak u, pa je v.p ost < u.p ost. 2. Ako je (u, v) poprečna grana, onda je zbog toga što je v levo od u, ponovo v.p ost < u.p ost. 3. Ako je (u, v) povratna grana i v u, onda je v pravi predak u i v.p ost > u.p ost. Medutim, v = u je moguće za povratnu granu, jer je i petlja povratna grana. Prema tome, za povratnu granu (u, v) znamo da je v.p ost u.p ost. Prema tome, dokazano je sledeće tvrdenje: Lema: Grana (u, v) usmerenog grafa G = (V, E) je povratna akko prema odlaznoj numeraciji čvor u prethodi čvoru v, odnosno u.p ost v.p ost. 17 Pretraga grafa u širinu, BFS stablo, osobine Preporučuje se učenje kodova. Pretraga u širinu (ili BFS, što je skraćenica od breadth-first-search) obilazak je grafa na sistematičan način, nivo po nivo. Ako polazimo od čvora v, onda se najpre posećuju svi susedi v (deca u stablu pretrage, nivo jedan). Zatim se dolazi do svih,,unuka (nivo dva), i tako dalje. Obilazak se realizuje listom FIFO (skraćenica od first-in-first-out queue). Prilikom obilaska čvorovi se mogu numerisati BFS brojevima, slično kao pri DFS. Preciznije, čvor w ima BFS broj k ako je on k-ti čvor označen u toku BFS. BFS stablo grafa može se formirati uključivanjem samo grana ka novooznačenim čvorovima. Izlazna obrada ovde nema smisla. Pseudo kod algoritma BFS (i pravljenja stabla T ): BFS(G, v); označi v; upiši v u red; {red = FIFO lista} while red je neprazan do skini prvi čvor w sa reda; prework na w; {ulazna obrada zavisi od primene BFS} for sve grane (w, x) za koje x nije označen do označi x; dodaj (w, x) u stablo T; upiši x u red; Lema: Ako grana (u, w) pripada BFS stablu i čvor u je otac čvora w, onda čvor u ima minimalni BFS broj medu čvorovima iz kojih postoji grana ka w. : Ako bi u grafu postojala grana (v, w), pri čemu v ima manji BFS broj od u, onda bi u trenutku obrade v na listu morao biti stavljen čvor w, pa bi grana (v, w) morala biti uključena u stablo, suprotno pretpostavci. Lema: Put od korena r BFS stabla do proizvoljnog čvora w kroz BFS stablo najkraći je put od r do w u grafu G. : Indukcijom po d dokazaćemo da do svakog čvora w na rastojanju d od korena r (jedinstveni) put kroz stablo od r do v ima dužinu d. Za d = 1 tvrdenje je tačno: grana (r, w) je obavezno deo stabla, pa izmedu r i w postoji put kroz stablo dužine 1. Pretpostavimo da je tvrdenje tačno za čvorove koji su na rastojanju manjem od d od korena, i neka je w neki čvor na rastojanju d od korena, tj. postoji niz čvorova w 0 = r, w 1, w 2,..., w d = w koji čine put dužine d od r do w. Prema induktivnoj hipotezi put od r do w d 1 kroz stablo ima dužinu d 1. U trenutku obrade čvora w d1, pošto u G postoji grana (w d 1, w d ), ta grana se uključuje u BFS stablo, pa do čvora w d postoji put dužine d kroz stablo. 22

23 Nivo čvora w je dužina puta u stablu od korena do w. Pretraga u širinu obilazi graf nivo po nivo. Lema: Ako je (v, w) grana iz E koja ne pripada T, onda ona spaja dva čvora čiji se nivoi razlikuju najviše za jedan. : Neka je npr. čvor v prvi dostignut pretragom i neka je njegov nivo d. Tada je nivo čvora w veći ili jednak od d. Taj nivo jednak je rastojanju w od korena, pa je manji ili jednak od d + 1, jer do w postoji put dužine d + 1 (put od korena do v produžen granom (v, w)). 18 Analiza algoritama osnovni pojmovi (aproksimativna asimptotska analiza najgoreg slučaja; asimptotske oznake O, o, Ω, Θ; vremenska i prostorna složenost algoritma) Cilj analize algoritama je da proceni brzinu izvršavanja algoritma bez obzira na to koji računar ga koristi. Ideja je da se proceni brzina rada bez realizacije. Tačno ponašanje algoritma je nemoguće predvideti sem u najjednostavnijim slučajevima. Analiza algoritma mora biti približna. Ona omogućava poredenje algoritama koji rešavaju isti problem. Zanemaruju se konstantni faktori zato što se i izvršavanja na različitim računarima razlikuju za konstantu. Najinteresantnija je asimptotska analiza algoritama, odnosno kada veličina ulaza teži jako velikim vrednostima. Obično se veličina ulaza opisuje kao memorijski prostor koji je neophodan za korišćenje algoritma. Najčešće se koristi analiza najgoreg slučaja. Trajanje algoritma predstavlja funkciju u zavisnosti od ulazne veličine. Analiza asimptotskog ponašanja složenosti algoritma, i to u najgorem slučaju medu ulazima odredene veličine to je dakle aproksimacija vremena rada odredenog algoritma na odredenom ulazu, koja ipak najčešće dobro karakteriše osobine algoritma. Definicija 1: Neka su f i g pozitivne funkcije od argumenta n iz skupa N prirodnih brojeva. Kaže se da je g(n) = O(f(n)) ako postoje pozitivne konstante c i N, takve da za svako n > N važi g(n) cf(n). Oznaka O(f(n)) se ustvari odnosi na klasu funkcija, a jednakost g(n) = O(f(n)) je uobičajena oznaka za inkluziju g(n) O(f(n)). Jasno je da je funkcija f samo neka vrsta gornje granice za funkciju g. Na primer, pored jednakosti 5n = O(n 2 ) (jer je 5n n 2 za n 4) važi i jednakost 5n = O(n 3 ) (jer je 5n n 3 za n 6). Ova notacija omogućuje ignorisanje multiplikativnih i aditivnih konstanti: umesto O(5n + 4) može se pisati O(n). Slično, u izrazu O(log n) osnova logaritma nije bitna, jer se logaritmi za različite osnove razlikuju za multiplikativnu konstantu: log a n = log a (b log b n ) = log b n log a b. Specijalno, O(1) je oznaka za klasu ograničenih funkcija. Lako se pokazuje da se O-izrazi mogu sabirati i množiti: O(f(n)) + O(g(n)) = O(f(n) + g(n)), O(f(n))O(g(n)) = O(f(n)g(n)). Drugi problem u vezi sa složenošću algoritma je pitanje donje granice za potreban broj računskih operacija. Dok se gornja granica odnosi na konkretan algoritam, donja granica složenosti odnosi se na proizvoljan algoritam iz neke odredene klase. Zbog toga ocena donje granice zahteva posebne postupke analize. Definicija 2: Za funkciju g(n) kaže se da je asimptotska donja granica funkcije T (n) i piše se T (n) = Ω(g(n)), ako postoje pozitivni c i N, takvi da za svako n > N važi T (n) > cg(n). Tako je na primer n 2 = Ω(n 2 100), i n = Ω(n 0,9 ). Vidi se da simbol Ω odgovara relaciji. 23

24 Definicija 3: Ako za dve funkcije f(n) i g(n) istovremeno važi i f(n) = O(g(n)) i f(n) = Ω(g(n)), onda one imaju iste asimptotske brzine rasta, što se označava sa f(n) = Θ(g(n)). Tako je na primer 5n log 2 n 10 = Θ(n log n), pri čemu je u poslednjem izrazu osnova logaritma nebitna. Definicija 4: f(n) Činjenica da je lim = 0 označava se sa f(n) = o(g(n)). n g(n) Ocena (vremenske) složenosti algoritma sastoji se u brojanju računskih koraka koje treba izvršiti. Medutim, termin računski korak može da podrazumeva različite operacije, na primer sabiranje i množenje, čije izvršavanje traje različito vreme. Zato se obično u okviru algoritma izdvaja neki osnovni korak, onaj koji se najčešće ponavlja. Tako, ako se radi o sortiranju, osnovni korak je uporedivanje. Ako je broj uporedivanja O(f(n)), a broj ostalih operacija je proporcionalan broju uporedivanja, onda je O(f(n)) granica vremenske složenosti algoritma. Pod prostornom složenošću algoritma podrazumeva se veličina memorije potrebne za izvršavanje algoritma, pri čemu se prostor za smeštanje ulaznih podataka najčešće ne računa. Kao i kod vremenske složenosti, i za prostornu složenost se najčešće traži njeno asimptotsko ponašanje u najgorem slučaju, za velike veličine problema. Prostorna složenost O(n) znači da je za izvršavanje algoritma potrebna memorija proporcionalna onoj za smeštanje ulaznih podataka. Ako je pak prostorna složenost algoritma O(1), onda to znači da je potreban memorijski prostor za njegovo izvršavanje ograničen konstantom, bez obzira na veličinu ulaza. 19 Primeri sumiranja Ako je osnova nekog algoritma petlja koja se izvršava i = 1, 2,.., n puta, a izvršavanje i-tog prolaska kroz petlju troši f(i) koraka, onda se broj koraka algoritma može prikazati kao n f(i). Primer 1: Ako je f(i) = i, odnosno u i-tom prolasku kroz petlju izvršava se i koraka, onda je ukupan broj koraka S(n) = n i = 1 2n(n + 1). : Kako je 1 = , tvrdenje je tačno za n = 1. Ako se pretpostavi da je ono tačno za neko n, onda je: S(n + 1) = n + (n + 1) = S(n) + n + 1 = 1 2 n(n + 1) + (n + 1) = 1 (n + 1)(n + 2), 2 odnosno zaključujemo da je tvrdenje tačno i za n + 1. Primer 2: (Stepene sume) Ako sa S k (n) označimo opštiju sumu k-tih stepena prvih n prirodnih brojeva, n i k, za izračunavanje suma S k (n) može se iskoristiti rekurentna relacija S k (n) = 1 k + 1 k 1 ( k + 1 j j=0 Polazeći od S 0 (n) = n, S 1 (n) = n(n + 1)/2, za k = 2 se dobija S 2 (n) = = 1 3 ) S j (n) + 1 k + 1 ((n + 1)k+1 1). n i 2 = 1 3 (S 0(n) + 3S 1 (n)) ((n + 1)3 1) = ( ) n 3 + 3n 2 n(n + 1) + 3n n 3 = (n3 + 3n 2 + n) = = 1 n(n + 1)(n + 2) 6 24

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović Novi Sad April 17, 2018 1 / 22 Teorija grafova April 17, 2018 2 / 22 Definicija Graf je ure dena trojka G = (V, G, ψ), gde je (i) V konačan skup čvorova,

Διαβάστε περισσότερα

3.1 Granična vrednost funkcije u tački

3.1 Granična vrednost funkcije u tački 3 Granična vrednost i neprekidnost funkcija 2 3 Granična vrednost i neprekidnost funkcija 3. Granična vrednost funkcije u tački Neka je funkcija f(x) definisana u tačkama x za koje je 0 < x x 0 < r, ili

Διαβάστε περισσότερα

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju RAČUN OSTATAKA 1 1 Prsten celih brojeva Z := N + {} N + = {, 3, 2, 1,, 1, 2, 3,...} Osnovni primer. (Z, +,,,, 1) je komutativan prsten sa jedinicom: sabiranje (S1) asocijativnost x + (y + z) = (x + y)

Διαβάστε περισσότερα

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Goran Stančić SIGNALI I SISTEMI Zbirka zadataka NIŠ, 014. Sadržaj 1 Konvolucija Literatura 11 Indeks pojmova 11 3 4 Sadržaj 1 Konvolucija Zadatak 1. Odrediti konvoluciju

Διαβάστε περισσότερα

Teorijske osnove informatike 1

Teorijske osnove informatike 1 Teorijske osnove informatike 1 9. oktobar 2014. () Teorijske osnove informatike 1 9. oktobar 2014. 1 / 17 Funkcije Veze me du skupovima uspostavljamo skupovima koje nazivamo funkcijama. Neformalno, funkcija

Διαβάστε περισσότερα

Algoritmi i strukture podataka - 1.cas

Algoritmi i strukture podataka - 1.cas Algoritmi i strukture podataka - 1.cas Aleksandar Veljković October 2016 Materijali su zasnovani na materijalima Mirka Stojadinovića 1 Složenost algoritama Približna procena vremena ili prostora potrebnog

Διαβάστε περισσότερα

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla XI dvoqas veжbi dr Vladimir Balti 4. Stabla Teorijski uvod Teorijski uvod Definicija 5.7.1. Stablo je povezan graf bez kontura. Definicija 5.7.1. Stablo je povezan graf bez kontura. Primer 5.7.1. Sva stabla

Διαβάστε περισσότερα

Operacije s matricama

Operacije s matricama Linearna algebra I Operacije s matricama Korolar 3.1.5. Množenje matrica u vektorskom prostoru M n (F) ima sljedeća svojstva: (1) A(B + C) = AB + AC, A, B, C M n (F); (2) (A + B)C = AC + BC, A, B, C M

Διαβάστε περισσότερα

Algoritmi i strukture podataka

Algoritmi i strukture podataka Algoritmi i strukture podataka vežbe 5 Mirko Stojadinović 6. novembar 2015 1 1 Grafovi 1.1 Osnovni pojmovi Graf G = (V, E) se sastoji od skupa čvorova V i skupa grana E, pri čemu grane predstavljaju relacije

Διαβάστε περισσότερα

Elementi spektralne teorije matrica

Elementi spektralne teorije matrica Elementi spektralne teorije matrica Neka je X konačno dimenzionalan vektorski prostor nad poljem K i neka je A : X X linearni operator. Definicija. Skalar λ K i nenula vektor u X se nazivaju sopstvena

Διαβάστε περισσότερα

SISTEMI NELINEARNIH JEDNAČINA

SISTEMI NELINEARNIH JEDNAČINA SISTEMI NELINEARNIH JEDNAČINA April, 2013 Razni zapisi sistema Skalarni oblik: Vektorski oblik: F = f 1 f n f 1 (x 1,, x n ) = 0 f n (x 1,, x n ) = 0, x = (1) F(x) = 0, (2) x 1 0, 0 = x n 0 Definicije

Διαβάστε περισσότερα

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti). PRAVA Prava je kao i ravan osnovni geometrijski ojam i ne definiše se. Prava je u rostoru određena jednom svojom tačkom i vektorom aralelnim sa tom ravom ( vektor aralelnosti). M ( x, y, z ) 3 Posmatrajmo

Διαβάστε περισσότερα

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost M086 LA 1 M106 GRP Tema: CSB nejednakost. 19. 10. 2017. predavač: Rudolf Scitovski, Darija Marković asistent: Darija Brajković, Katarina Vincetić P 1 www.fizika.unios.hr/grpua/ 1 Baza vektorskog prostora.

Διαβάστε περισσότερα

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Sortiranje prebrajanjem (Counting sort) i Radix Sort Sortiranje prebrajanjem (Counting sort) i Radix Sort 15. siječnja 2016. Ante Mijoč Uvod Teorem Ako je f(n) broj usporedbi u algoritmu za sortiranje temeljenom na usporedbama (eng. comparison-based sorting

Διαβάστε περισσότερα

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012 Iskazna logika 3 Matematička logika u računarstvu Department of Mathematics and Informatics, Faculty of Science,, Serbia novembar 2012 Deduktivni sistemi 1 Definicija Deduktivni sistem (ili formalna teorija)

Διαβάστε περισσότερα

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1 Strukture podataka i algoritmi 1. kolokvij Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Predajete samo papire koje ste dobili. Rezultati i uvid u kolokvije: ponedjeljak,

Διαβάστε περισσότερα

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15 MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15 Matrice - osnovni pojmovi (Matrice i determinante) 2 / 15 (Matrice i determinante) 2 / 15 Matrice - osnovni pojmovi Matrica reda

Διαβάστε περισσότερα

Računarska grafika. Rasterizacija linije

Računarska grafika. Rasterizacija linije Računarska grafika Osnovni inkrementalni algoritam Drugi naziv u literaturi digitalni diferencijalni analizator (DDA) Pretpostavke (privremena ograničenja koja se mogu otkloniti jednostavnim uopštavanjem

Διαβάστε περισσότερα

IZVODI ZADACI (I deo)

IZVODI ZADACI (I deo) IZVODI ZADACI (I deo) Najpre da se podsetimo tablice i osnovnih pravila:. C`=0. `=. ( )`= 4. ( n )`=n n-. (a )`=a lna 6. (e )`=e 7. (log a )`= 8. (ln)`= ` ln a (>0) 9. = ( 0) 0. `= (>0) (ovde je >0 i a

Διαβάστε περισσότερα

Osnovne teoreme diferencijalnog računa

Osnovne teoreme diferencijalnog računa Osnovne teoreme diferencijalnog računa Teorema Rolova) Neka je funkcija f definisana na [a, b], pri čemu važi f je neprekidna na [a, b], f je diferencijabilna na a, b) i fa) fb). Tada postoji ξ a, b) tako

Διαβάστε περισσότερα

ELEKTROTEHNIČKI ODJEL

ELEKTROTEHNIČKI ODJEL MATEMATIKA. Neka je S skup svih živućih državljana Republike Hrvatske..04., a f preslikavanje koje svakom elementu skupa S pridružuje njegov horoskopski znak (bez podznaka). a) Pokažite da je f funkcija,

Διαβάστε περισσότερα

41. Jednačine koje se svode na kvadratne

41. Jednačine koje se svode na kvadratne . Jednačine koje se svode na kvadrane Simerične recipročne) jednačine Jednačine oblika a n b n c n... c b a nazivamo simerične jednačine, zbog simeričnosi koeficijenaa koeficijeni uz jednaki). k i n k

Διαβάστε περισσότερα

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ). 0.1 Faktorizacija: ID, ED, PID, ND, FD, UFD Definicija. Najava pojmova: [ID], [ED], [PID], [ND], [FD] i [UFD]. ID: Komutativan prsten P, sa jedinicom 1 0, je integralni domen [ID] oblast celih), ili samo

Διαβάστε περισσότερα

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI) IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI) Izračunavanje pokazatelja načina rada OTVORENOG RM RASPOLOŽIVO RADNO

Διαβάστε περισσότερα

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo IZVODI ZADACI ( IV deo) LOGARITAMSKI IZVOD Logariamskim izvodom funkcije f(), gde je >0 i, nazivamo izvod logarima e funkcije, o jes: (ln ) f ( ) f ( ) Primer. Nadji izvod funkcije Najpre ćemo logarimovai

Διαβάστε περισσότερα

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je, PARCIJALNI IZVODI I DIFERENCIJALI Sama definicija parcijalnog ivoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je, naravno, naučiti onako kako vaš profesor ahteva. Mi ćemo probati

Διαβάστε περισσότερα

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

Διαβάστε περισσότερα

III VEŽBA: FURIJEOVI REDOVI

III VEŽBA: FURIJEOVI REDOVI III VEŽBA: URIJEOVI REDOVI 3.1. eorijska osnova Posmatrajmo neki vremenski kontinualan signal x(t) na intervalu definisati: t + t t. ada se može X [ k ] = 1 t + t x ( t ) e j 2 π kf t dt, gde je f = 1/.

Διαβάστε περισσότερα

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE 1 SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE Neka je (V, +,, F ) vektorski prostor konačne dimenzije i neka je f : V V linearno preslikavanje. Definicija. (1) Skalar

Διαβάστε περισσότερα

APROKSIMACIJA FUNKCIJA

APROKSIMACIJA FUNKCIJA APROKSIMACIJA FUNKCIJA Osnovni koncepti Gradimir V. Milovanović MF, Beograd, 14. mart 2011. APROKSIMACIJA FUNKCIJA p.1/46 Osnovni problem u TA Kako za datu funkciju f iz velikog prostora X naći jednostavnu

Διαβάστε περισσότερα

Računarska grafika. Rasterizacija linije

Računarska grafika. Rasterizacija linije Računarska grafika Osnovni inkrementalni algoritam Drugi naziv u literaturi digitalni diferencijalni analizator (DDA) Pretpostavke (privremena ograničenja koja se mogu otkloniti jednostavnim uopštavanjem

Διαβάστε περισσότερα

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log = ( > 0, 0)!" # > 0 je najčešći uslov koji postavljamo a još je,, > 0 se zove numerus (aritmand), je osnova (baza). 0.. ( ) +... 7.. 8. Za prelazak na neku novu bazu c: 9. Ako je baza (osnova) 0 takvi se

Διαβάστε περισσότερα

Ispitivanje toka i skiciranje grafika funkcija

Ispitivanje toka i skiciranje grafika funkcija Ispitivanje toka i skiciranje grafika funkcija Za skiciranje grafika funkcije potrebno je ispitati svako od sledećih svojstava: Oblast definisanosti: D f = { R f R}. Parnost, neparnost, periodičnost. 3

Διαβάστε περισσότερα

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A. 3 Infimum i supremum Definicija. Neka je A R. Kažemo da je M R supremum skupa A ako je (i) M gornja meda skupa A, tj. a M a A. (ii) M najmanja gornja meda skupa A, tj. ( ε > 0)( a A) takav da je a > M

Διαβάστε περισσότερα

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu Trigonometrijske jednačine i nejednačine. Zadaci koji se rade bez upotrebe trigonometrijskih formula. 00. FF cos x sin x

Διαβάστε περισσότερα

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f 2. Nule i znak funkcije; presek sa y-osom IspitivaƬe

Διαβάστε περισσότερα

5 Ispitivanje funkcija

5 Ispitivanje funkcija 5 Ispitivanje funkcija 3 5 Ispitivanje funkcija Ispitivanje funkcije pretodi crtanju grafika funkcije. Opšti postupak ispitivanja funkcija koje su definisane eksplicitno y = f() sadrži sledeće elemente:

Διαβάστε περισσότερα

Dijagonalizacija operatora

Dijagonalizacija operatora Dijagonalizacija operatora Problem: Može li se odrediti baza u kojoj zadani operator ima dijagonalnu matricu? Ova problem je povezan sa sljedećim pojmovima: 1 Karakteristični polinom operatora f 2 Vlastite

Διαβάστε περισσότερα

7 Algebarske jednadžbe

7 Algebarske jednadžbe 7 Algebarske jednadžbe 7.1 Nultočke polinoma Skup svih polinoma nad skupom kompleksnih brojeva označavamo sa C[x]. Definicija. Nultočka polinoma f C[x] je svaki kompleksni broj α takav da je f(α) = 0.

Διαβάστε περισσότερα

Zavrxni ispit iz Matematiqke analize 1

Zavrxni ispit iz Matematiqke analize 1 Građevinski fakultet Univerziteta u Beogradu 3.2.2016. Zavrxni ispit iz Matematiqke analize 1 Prezime i ime: Broj indeksa: 1. Definisati Koxijev niz. Dati primer niza koji nije Koxijev. 2. Dat je red n=1

Διαβάστε περισσότερα

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati: Staša Vujičić Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati: pseudo jezikom prirodnim jezikom dijagramom toka. 2

Διαβάστε περισσότερα

numeričkih deskriptivnih mera.

numeričkih deskriptivnih mera. DESKRIPTIVNA STATISTIKA Numeričku seriju podataka opisujemo pomoću Numeričku seriju podataka opisujemo pomoću numeričkih deskriptivnih mera. Pokazatelji centralne tendencije Aritmetička sredina, Medijana,

Διαβάστε περισσότερα

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D} Matematika 1 Funkcije radni nerecenzirani materijal za predavanja Definicija 1. Neka su D i K bilo koja dva neprazna skupa. Postupak f koji svakom elementu x D pridružuje točno jedan element y K zovemo funkcija

Διαβάστε περισσότερα

Algoritmi i strukture podataka

Algoritmi i strukture podataka Algoritmi i strukture podataka vežbe 1 Mirko Stojadinović 6. oktobar 2015 1 1 Složenost algoritama Postoje 3 mere na osnovu kojih se porede efikasnosti algoritama: 1. najgori mogući slučaj 2. prosečan

Διαβάστε περισσότερα

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1. Pismeni ispit iz matematike 0 008 GRUPA A Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: λ + z = Ispitati funkciju i nacrtati njen grafik: + ( λ ) + z = e Izračunati

Διαβάστε περισσότερα

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B.

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B. Korespondencije Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B. Pojmovi B pr 2 f A B f prva projekcija od

Διαβάστε περισσότερα

18. listopada listopada / 13

18. listopada listopada / 13 18. listopada 2016. 18. listopada 2016. 1 / 13 Neprekidne funkcije Važnu klasu funkcija tvore neprekidne funkcije. To su funkcije f kod kojih mala promjena u nezavisnoj varijabli x uzrokuje malu promjenu

Διαβάστε περισσότερα

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x. 4.7. ZADACI 87 4.7. Zadaci 4.7.. Formalizam diferenciranja teorija na stranama 4-46) 340. Znajući izvod funkcije arcsin, odrediti izvod funkcije arccos. Rešenje. Polazeći od jednakosti arcsin + arccos

Διαβάστε περισσότερα

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A Ime i prezime: 1. Prikazane su tačke A, B i C i prave a,b i c. Upiši simbole Î, Ï, Ì ili Ë tako da dobijeni iskazi

Διαβάστε περισσότερα

IZVODI ZADACI (I deo)

IZVODI ZADACI (I deo) IZVODI ZADACI (I deo Najpre da se podsetimo tablice i osnovnih pravila:. C0.. (. ( n n n-. (a a lna 6. (e e 7. (log a 8. (ln ln a (>0 9. ( 0 0. (>0 (ovde je >0 i a >0. (cos. (cos - π. (tg kπ cos. (ctg

Διαβάστε περισσότερα

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x Zadatak (Darjan, medicinska škola) Izračunaj vrijednosti trigonometrijskih funkcija broja ako je 6 sin =,,. 6 Rješenje Ponovimo trigonometrijske funkcije dvostrukog kuta! Za argument vrijede sljedeće formule:

Διαβάστε περισσότερα

Binarno stablo (BinaryTree)

Binarno stablo (BinaryTree) Binarno stablo (BinaryTree) Binarno stablo T je konačan skup podataka istog tipa (čvorova) koji je ili prazan ili ima istaknuti čvor (korijen), a ostali čvorovi su podijeljeni u dva podskupa T L i T R

Διαβάστε περισσότερα

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori MATEMATIKA 2 Prvi pismeni kolokvijum, 14.4.2016 Grupa 1 Rexea zadataka Dragan ori Zadaci i rexea 1. unkcija f : R 2 R definisana je sa xy 2 f(x, y) = x2 + y sin 3 2 x 2, (x, y) (0, 0) + y2 0, (x, y) =

Διαβάστε περισσότερα

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011. INTEGRALNI RAČUN Teorije, metodike i povijest infinitezimalnih računa Lucija Mijić lucija@ktf-split.hr 17. veljače 2011. Pogledajmo Predstavimo gornju sumu sa Dodamo još jedan Dobivamo pravokutnik sa Odnosno

Διαβάστε περισσότερα

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota:

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota: ASIMPTOTE FUNKCIJA Naš savet je da najpre dobro proučite granične vrednosti funkcija Neki profesori vole da asimptote funkcija ispituju kao ponašanje funkcije na krajevima oblasti definisanosti, pa kako

Διαβάστε περισσότερα

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika Rešenja. Matematičkom indukcijom dokazati da za svaki prirodan broj n važi jednakost: + 5 + + (n )(n + ) = n n +.

Διαβάστε περισσότερα

Matematička analiza 1 dodatni zadaci

Matematička analiza 1 dodatni zadaci Matematička analiza 1 dodatni zadaci 1. Ispitajte je li funkcija f() := 4 4 5 injekcija na intervalu I, te ako jest odredite joj sliku i inverz, ako je (a) I = [, 3), (b) I = [1, ], (c) I = ( 1, 0].. Neka

Διαβάστε περισσότερα

Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom.

Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom. 1 Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom. Pravilo 2. Svaki atribut entiteta postaje atribut relacione šeme pod istim imenom. Pravilo 3. Primarni ključ entiteta postaje

Διαβάστε περισσότερα

Program testirati pomoću podataka iz sledeće tabele:

Program testirati pomoću podataka iz sledeće tabele: Deo 2: Rešeni zadaci 135 Vrednost integrala je I = 2.40407 42. Napisati program za izračunavanje koeficijenta proste linearne korelacije (Pearsonovog koeficijenta) slučajnih veličina X = (x 1,..., x n

Διαβάστε περισσότερα

Overviev BFS-analiza DFS algoritam. Predstavljanje grafova BFS algoritam. Grafovski algoritmi

Overviev BFS-analiza DFS algoritam. Predstavljanje grafova BFS algoritam. Grafovski algoritmi Predstavljanje grafova BFS algoritam Grafovski algoritmi Mnogi računarski problemi definisani u terminima grafova; Graf G = (V, E); V neprazan skup čije elemente nazivamo čvorovi grafa; E V V skup čije

Διαβάστε περισσότερα

radni nerecenzirani materijal za predavanja

radni nerecenzirani materijal za predavanja Matematika 1 Funkcije radni nerecenzirani materijal za predavanja Definicija 1. Kažemo da je funkcija f : a, b R u točki x 0 a, b postiže lokalni minimum ako postoji okolina O(x 0 ) broja x 0 takva da je

Διαβάστε περισσότερα

Algoritmi zadaci za kontrolni

Algoritmi zadaci za kontrolni Algoritmi zadaci za kontrolni 1. Nacrtati algoritam za sabiranje ulaznih brojeva a i b Strana 1 . Nacrtati algoritam za izračunavanje sledeće funkcije: x y x 1 1 x x ako ako je : je : x x 1 x x 1 Strana

Διαβάστε περισσότερα

5. Karakteristične funkcije

5. Karakteristične funkcije 5. Karakteristične funkcije Profesor Milan Merkle emerkle@etf.rs milanmerkle.etf.rs Verovatnoća i Statistika-proleće 2018 Milan Merkle Karakteristične funkcije ETF Beograd 1 / 10 Definicija Karakteristična

Διαβάστε περισσότερα

Geometrija (I smer) deo 1: Vektori

Geometrija (I smer) deo 1: Vektori Geometrija (I smer) deo 1: Vektori Srdjan Vukmirović Matematički fakultet, Beograd septembar 2013. Vektori i linearne operacije sa vektorima Definicija Vektor je klasa ekvivalencije usmerenih duži. Kažemo

Διαβάστε περισσότερα

SKUPOVI I SKUPOVNE OPERACIJE

SKUPOVI I SKUPOVNE OPERACIJE SKUPOVI I SKUPOVNE OPERACIJE Ne postoji precizna definicija skupa (postoji ali nama nije zanimljiva u ovom trenutku), ali mi možemo koristiti jednu definiciju koja će nam donekle dočarati šta su zapravo

Διαβάστε περισσότερα

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011. Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika Monotonost i ekstremi Katica Jurasić Rijeka, 2011. Ishodi učenja - predavanja Na kraju ovog predavanja moći ćete:,

Διαβάστε περισσότερα

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA. KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI NEUTRALNI ELEMENT GRUPOIDA 1 Grupoid (G, ) je asocijativa akko važi ( x, y, z G) x (y z) = (x y) z Grupoid (G, ) je komutativa akko važi ( x, y G) x y = y x Asocijativa

Διαβάστε περισσότερα

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18. Deljivost 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18. Rešenje: Nazovimo naš izraz sa I.Važi 18 I 2 I 9 I pa možemo da posmatramo deljivost I sa 2 i 9.Iz oblika u kom je dat

Διαβάστε περισσότερα

Zadaci iz Osnova matematike

Zadaci iz Osnova matematike Zadaci iz Osnova matematike 1. Riješiti po istinitosnoj vrijednosti iskaza p, q, r jednačinu τ(p ( q r)) =.. Odrediti sve neekvivalentne iskazne formule F = F (p, q) za koje je iskazna formula p q p F

Διαβάστε περισσότερα

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2. Sume kvadrata Koji se prirodni brojevi mogu prikazati kao zbroj kvadrata dva cijela broja? Propozicija 1. Ako su brojevi m i n sume dva kvadrata, onda je i njihov produkt m n takoder suma dva kvadrata.

Διαβάστε περισσότερα

TRIGONOMETRIJSKE FUNKCIJE I I.1.

TRIGONOMETRIJSKE FUNKCIJE I I.1. TRIGONOMETRIJSKE FUNKCIJE I I Odredi na brojevnoj trigonometrijskoj kružnici točku Et, za koju je sin t =,cost < 0 Za koje realne brojeve a postoji realan broj takav da je sin = a? Izračunaj: sin π tg

Διαβάστε περισσότερα

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i PRIPREMA ZA II PISMENI IZ ANALIZE SA ALGEBROM. zadatak Re{avawe algebarskih jedna~ina tre}eg i ~etvrtog stepena. U skupu kompleksnih brojeva re{iti jedna~inu: a x 6x + 9 = 0; b x + 9x 2 + 8x + 28 = 0;

Διαβάστε περισσότερα

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola. KVADRATNA FUNKCIJA Kvadratna funkcija je oblika: = a + b + c Gde je R, a 0 i a, b i c su realni brojevi. Kriva u ravni koja predstavlja grafik funkcije = a + b + c je parabola. Najpre ćemo naučiti kako

Διαβάστε περισσότερα

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a = x, y, z) 2 2 1 2. Rešiti jednačinu: 2 3 1 1 2 x = 1. x = 3. Odrediti rang matrice: rang 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. 2 0 1 1 1 3 1 5 2 8 14 10 3 11 13 15 = 4. Neka je A = x x N x < 7},

Διαβάστε περισσότερα

Algebarske strukture sa jednom operacijom (A, ): Ako operacija ima osobine: zatvorenost i asocijativnost, onda je (A, ) polugrupa

Algebarske strukture sa jednom operacijom (A, ): Ako operacija ima osobine: zatvorenost i asocijativnost, onda je (A, ) polugrupa Binarne operacije Binarna operacija na skupu A je preslikavanje skupa A A u A, to jest : A A A. Pišemo a b = c. Označavanje operacija:,,,. Poznate operacije: sabiranje (+), oduzimanje ( ), množenje ( ).

Διαβάστε περισσότερα

Binarne relacije. Definicija. Uopštena binarna relacija je uredjena trojka (A, B, ρ) gde je ρ A B; (A, B) je tip ove binarne relacije.

Binarne relacije. Definicija. Uopštena binarna relacija je uredjena trojka (A, B, ρ) gde je ρ A B; (A, B) je tip ove binarne relacije. Binarne relacije Definicija. Uopštena binarna relacija je uredjena trojka (A, B, ρ) gde je ρ A B; (A, B) je tip ove binarne relacije. Kaže se i da je ρ binarna relacija sa skupa A u skup B (kao u [MP]).

Διαβάστε περισσότερα

U raznim oblastima se često javlja potreba da se izmed u izvesnih objekata uspostave izvesne veze, odnosi ili relacije.

U raznim oblastima se često javlja potreba da se izmed u izvesnih objekata uspostave izvesne veze, odnosi ili relacije. Šta je to relacija? U raznim oblastima se često javlja potreba da se izmed u izvesnih objekata uspostave izvesne veze, odnosi ili relacije. Na primer, često se javlja potreba da se izvesni objekti uporede

Διαβάστε περισσότερα

1 Promjena baze vektora

1 Promjena baze vektora Promjena baze vektora Neka su dane dvije različite uredene baze u R n, označimo ih s A = (a, a,, a n i B = (b, b,, b n Svaki vektor v R n ima medusobno različite koordinatne zapise u bazama A i B Zapis

Διαβάστε περισσότερα

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k. 1 3 Skupovi brojeva 3.1 Skup prirodnih brojeva - N N = {1, 2, 3,...} Aksiom matematičke indukcije Neka je N skup prirodnih brojeva i M podskup od N. Ako za M vrijede svojstva: 1) 1 M 2) n M (n + 1) M,

Διαβάστε περισσότερα

4 Numeričko diferenciranje

4 Numeričko diferenciranje 4 Numeričko diferenciranje 7. Funkcija fx) je zadata tabelom: x 0 4 6 8 fx).17 1.5167 1.7044 3.385 5.09 7.814 Koristeći konačne razlike, zaključno sa trećim redom, odrediti tačku x minimuma funkcije fx)

Διαβάστε περισσότερα

10 Iskazni račun - deduktivni sistem za iskaznu logiku

10 Iskazni račun - deduktivni sistem za iskaznu logiku 10 Iskazni račun - deduktivni sistem za iskaznu logiku Definicija 20 Iskazni račun je deduktivni sistem H = X, F orm, Ax, R, gde je X = S {,, (, )}, gde S = {p 1, p 2,..., p n,... }, F orm je skup iskaznih

Διαβάστε περισσότερα

Trigonometrijske nejednačine

Trigonometrijske nejednačine Trignmetrijske nejednačine T su nejednačine kd kjih se nepznata javlja ka argument trignmetrijske funkcije. Rešiti trignmetrijsku nejednačinu znači naći sve uglve kji je zadvljavaju. Prilikm traženja rešenja

Διαβάστε περισσότερα

Sistemi veštačke inteligencije primer 1

Sistemi veštačke inteligencije primer 1 Sistemi veštačke inteligencije primer 1 1. Na jeziku predikatskog računa formalizovati rečenice: a) Miloš je slikar. b) Sava nije slikar. c) Svi slikari su umetnici. Uz pomoć metode rezolucije dokazati

Διαβάστε περισσότερα

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove. Klasifikacija blizu Teorema Neka je M Kelerova mnogostrukost. Operator krivine R ima sledeća svojstva: R(X, Y, Z, W ) = R(Y, X, Z, W ) = R(X, Y, W, Z) R(X, Y, Z, W ) + R(Y, Z, X, W ) + R(Z, X, Y, W ) =

Διαβάστε περισσότερα

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića Verovatnoća i Statistika I deo Teorija verovatnoće zadaci Beleške dr Bobana Marinkovića Iz skupa, 2,, 00} bira se na slučajan način 5 brojeva Odrediti skup elementarnih dogadjaja ako se brojevi biraju

Διαβάστε περισσότερα

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta. auchyjev teorem Neka je f-ja f (z) analitička u jednostruko (prosto) povezanoj oblasti G, i neka je zatvorena kontura koja čitava leži u toj oblasti. Tada je f (z)dz = 0. Postoji više dokaza ovog teorema,

Διαβάστε περισσότερα

Linearna algebra 2 prvi kolokvij,

Linearna algebra 2 prvi kolokvij, Linearna algebra 2 prvi kolokvij, 27.. 20.. Za koji cijeli broj t je funkcija f : R 4 R 4 R definirana s f(x, y) = x y (t + )x 2 y 2 + x y (t 2 + t)x 4 y 4, x = (x, x 2, x, x 4 ), y = (y, y 2, y, y 4 )

Διαβάστε περισσότερα

ELEMENTARNA MATEMATIKA 1

ELEMENTARNA MATEMATIKA 1 Na kolokviju nije dozvoljeno koristiti ni²ta osim pribora za pisanje. Zadatak 1. Ispitajte odnos skupova: C \ (A B) i (A C) (C \ B). Rje²enje: Neka je x C \ (A B). Tada imamo x C i x / A B = (A B) \ (A

Διαβάστε περισσότερα

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET Riješiti jednačine: a) 5 = b) ( ) 3 = c) + 3+ = 7 log3 č) = 8 + 5 ć) sin cos = d) 5cos 6cos + 3 = dž) = đ) + = 3 e) 6 log + log + log = 7 f) ( ) ( ) g) ( ) log

Διαβάστε περισσότερα

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12 GRAFOVI Ljubo Nedović 21. februar 2013 Sadržaj 1 Osnovni pojmovi 2 2 Bipartitni grafovi 8 3 Stabla 9 4 Binarna stabla 11 5 Planarni grafovi 12 6 Zadaci 13 1 2 1 Osnovni pojmovi Iz Vikipedije, slobodne

Διαβάστε περισσότερα

Konstrukcija i analiza algoritama odgovori na pitanja. Anja Bukurov Nikola Ajzenhamer Vojislav Stanković 11. juni 2015.

Konstrukcija i analiza algoritama odgovori na pitanja. Anja Bukurov Nikola Ajzenhamer Vojislav Stanković 11. juni 2015. Konstrukcija i analiza algoritama odgovori na pitanja Anja Bukurov Nikola Ajzenhamer Vojislav Stanković 11. juni 2015. 1 Sadržaj 1 Pravila izvođenja, valjani dokazi, rezolucija. Pravila izvođenja sa kvantifikatorima.

Διαβάστε περισσότερα

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović Univerzitet u Nišu Elektronski fakultet RAČUNSKE VEŽBE IZ PREDMETA (IV semestar modul EKM) IV deo Miloš Marjanović MOSFET TRANZISTORI ZADATAK 35. NMOS tranzistor ima napon praga V T =2V i kroz njega protiče

Διαβάστε περισσότερα

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama. Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama. a b Verovatno a da sluqajna promenljiva X uzima vrednost iz intervala

Διαβάστε περισσότερα

Prediktor-korektor metodi

Prediktor-korektor metodi Prediktor-korektor metodi Prilikom numeričkog rešavanja primenom KP: x = fx,, x 0 = 0, x 0 x b LVM α j = h β j f n = 0, 1, 2,..., N, javlja se kompromis izmed u eksplicitnih metoda, koji su lakši za primenu

Διαβάστε περισσότερα

Relacije poretka ure denja

Relacije poretka ure denja Relacije poretka ure denja Relacija na skupu A je relacija poretka na A ako je ➀ refleksivna ➁ antisimetrična ➂ tranzitivna Umesto relacija poretka često kažemo i parcijalno ured enje ili samo ured enje.

Διαβάστε περισσότερα

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika2. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika2. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje. Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika2 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje Milica Ćirić Ciklična algoritamska struktura Ciklična struktura (petlja)

Διαβάστε περισσότερα

RIJEŠENI ZADACI I TEORIJA IZ

RIJEŠENI ZADACI I TEORIJA IZ RIJEŠENI ZADACI I TEORIJA IZ LOGARITAMSKA FUNKCIJA SVOJSTVA LOGARITAMSKE FUNKCIJE OSNOVE TRIGONOMETRIJE PRAVOKUTNOG TROKUTA - DEFINICIJA TRIGONOMETRIJSKIH FUNKCIJA - VRIJEDNOSTI TRIGONOMETRIJSKIH FUNKCIJA

Διαβάστε περισσότερα

Linearno ispitivanje. Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF) algoritmi

Linearno ispitivanje. Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF) algoritmi Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Linearno ispitivanje Za datu običnu heš funkciju h : U {0, 1,... m 1} kojoj se obraćamo kao pomoćnoj heš funkciji metod linearnog ispitivanja

Διαβάστε περισσότερα

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1) Inženjerska grafika geometrijskih oblika (5. predavanje, tema1) Prva godina studija Mašinskog fakulteta u Nišu Predavač: Dr Predrag Rajković Mart 19, 2013 5. predavanje, tema 1 Simetrija (Symmetry) Simetrija

Διαβάστε περισσότερα

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto Trigonometrija Adicijske formule Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto Razumijevanje postupka izrade složenijeg matematičkog problema iz osnova trigonometrije

Διαβάστε περισσότερα