Nekaj osnovnih algoritmov na seznamih in nizih. Janez Brank
|
|
- Mira Krivec
- pred 3 leti
- Pregledov:
Transkripcija
1 Nekaj osnovnih algoritmov na seznamih in nizih Janez Brank
2 Urejanje
3 Urejanje Imamo seznam/tabelo a[0..n 1], radi bi jo uredili Elemente seznama hočemo prerazporediti tako, da bo za vsak i veljalo a[i 1] < a[i] V splošnem si znak < tukaj razlagajmo takole: x < y = v vrstnem redu, po katerem želimo urediti naš seznam, mora priti x prej kot y Mnogi algoritmi za urejanje ne predpostavijo o podatkih nič drugega kot to, da se jih dá primerjati glede na relacijo < Notranje vs. zunanje urejanje Ali imamo naključen dostop do podatkov ali le zaporednega? Stabilno urejanje Če je več elementov enakih (glede na <), ali ostane njihov relativni medsebojni vrstni red nespremenjen?
4 Bubble sort Primerjamo po dva zaporedna elementa, po potrebi ju zamenjamo (swap): for (i = 1; i < n; i++) if (a[i] < a[i 1]) swap(a[i 1], a[i]); Gornji postopek ponavljamo, dokler je še kaj zamenjav Po k izvedbah tega postopka je največjih k elementov že na pravih mestih na koncu tabele for (neurejeni = n ; neurejeni > 1; neurejeni ) for (i = 1; i < neurejeni ; i++) if (a[i] < a[i 1]) swap(a[i 1], a[i]);
5 Urejanje z vstavljanjem (insertion sort) Recimo, da imamo v a[0..u 1] že urejen del seznama, zdaj bi radi vanj vrinili element a[u] novi = a[u]; i = u; while (i > 0 && novi < a[i 1]) { a[i] = a[i 1]; i = i 1; } a[i] = novi ; Da uredimo cel seznam, moramo le počasi povečevati u za 1: for (u = 2; u < n; u++) Vrini(u) // postopek od zgoraj
6 Urejanje z izbiranjem (selection sort) Poiščimo največji element in ga premaknimo na konec tabele (na indeks n 1) Neurejeni del tabele je zdaj za en element krajši, gornji postopek ponovimo na njem for (neurejeni = n ; neurejeni > 1; neurejeni ) { for (kjemax = 0, i = 1; i < neurejeni ; i++) if (a[kjemax] < a[i]) kjemax = i ; swap(a[kjemax], a[neurejeni 1]); }
7 Zlivanje (merging) Dve urejeni zaporedji bi radi zlili v eno Vhod: a[0..n A 1] in b[0..n B 1] Izhod: c[0..n A + n B 1] i A = 0; i B = 0; i C = 0; while (i A < n A && i B < n B ) if (a[i A ] < b[i B ]) c[i C ++] = a[i A ++]; else c[i C ++] = b[i B ++]; while (i A < n A ) c[i C ++] = a[i A ++]; while (i B < n B ) c[i C ++] = b[i B ++]; Lahko bi šli tudi od konca proti začetku Tedaj lahko za c uporabimo isto tabelo kot za a Do podatkov potrebujemo le zaporedni dostop Koristno, če so v linked listah ali pa v datotekah na disku/traku C++: merge v <algorithm>
8 Urejanje z zlivanjem (merge sort) Rekurzivna ideja: Razbijmo zaporedje na dva kosa Uredimo vsakega posebej (rekurzivni klic) Na koncu ju zlijmo v eno urejeno zaporedje funkcija MergeSort (a[0..n 1]): if (n <= 1) return; L = a[0..n/2 1]; D = a[n/2..n 1]; MergeSort (L); MergeSort (D); zlij L in D v a (s postopkom s prejšnje strani); Časovna zahtevnost: T(n) = O(n) + 2 T(n/2) Iz tega dobimo T(n) = O(n log n) Prostorska zahtevnost: O(n) pomožnega prostora za L in D Če imamo podatke v linked listah, pa jih moramo le premikati med njimi samo O(log n) pomnilnika (globina rekurzije)
9 Hitro urejanje (quicksort) Spet rekurzivna ideja: Izberimo si poljuben element tabele a, recimo mu m Razdelimo a na levi del (elementi, manjši od m) in desni del (elementi, m) Uredimo vsak del posebej z rekurzivnim klicem funkcija Quicksort (l, d): // mora urediti a[l..d 1] if (d l < 2) return; // trivialno m = eden od elementov a[l ],, a[d 1]; i = l ; j = d; while (i < j) { // partition // Elementi a[l..i 1] so < m; elementi a[ j..d 1] so m. if (a[i] < m) { i++; continue; } if (a[j 1] m) { j--; continue; } swap(a[i], a[ j 1]); i++; j--; } QuickSort (l, i ); QuickSort (j, d);
10 Hitro urejanje (quicksort) Časovna zahtevnost: T(n) = O(n) + T(n') + T(n n'), če smo razdelili tabelo dolžine n na levi del dolžine n' in desni del dolžine n n' Najslabši primer: če vedno delimo na 1 : (n 1), gre rekurzija n nivojev globoko, T(n) = O(n 2 ) Najboljši primer: če delimo na n/2 : n/2, gre rekurzija log 2 n nivojev globoko, T(n) = O(n log n) Povprečje je, kot se izkaže, tudi O(n log n) Velikost levega in desnega dela pa je odvisna od tega, kaj smo izbrali za m Smola: če je m največji/najmanjši element Ugodno: če je m nekje bolj na sredi (npr. mediana) Lahko m izberemo naključno Potem je zelo malo verjetno, da bi imeli ves čas smolo Lahko izberemo tri naključne m, uporabimo srednjega od njih Ko je n majhen, preklopimo na insertion sort ipd.
11 Izbor k-tega najmanjšega elementa Imamo neurejeno tabelo a[0..n 1], radi bi poiskali k-ti najmanjši element Seveda jo lahko najprej uredimo toda ali gre brez tega? V enem prehodu čez tabelo lahko poiščemo najmanjši element V naslednjem prehodu drugega najmanjšega itd. Pazimo na primere, če obstaja več enakih elementov O(k n) časa za k-ti najmanjši/največji element Boljša ideja: zgledujmo se po quicksortu ( quickselect ) Razdelimo a[0..n 1] na levi del a[0..n' 1], kjer so vsi elementi < m, in desni del a[n'..n 1], kjer so vsi elementi m Če je k < n', moramo v nadaljevanju iskati k-ti najmanjši elt. v levem delu Sicer moramo iskati (k n')-ti najmanjši element v desnem delu To je kot quicksort, le da namesto dveh rekurzivnih klicev izvedemo le enega od njiju: TS(n) = O(n) + {TS(n') ali TS(n n')} Spet, če imamo smolo (n' = 1 ali n' = n 1), nastane TS(n) = O(n 2 ) V najboljšem primeru (in tudi v povprečju) pa je TS(n) = O(n) C++: nth_element v <algorithm>
12 Mediana median Zanimiv prijem za izbor m-ja pri quicksortu/quickselectu Razdelimo elemente a-ja na skupine po 5 V vsaki skupini poiščimo mediano Iz teh median sestavimo nov seznam dolžine n/5 S quickselectom poiščimo njegovo mediano to bo naš m Zagotovo je vsaj 30% elementov prvotnega seznama manjših od m in vsaj 30% večjih od m Cena za quickselect je zdaj v najslabšem primeru TS(n) = O(n) + TS(n/5) + TS(7n/10) Za quicksort pa T(n) = O(n) + TS(n/5) + T(3n/10) + T(7n/10) Izkaže se TS(n) = O(n) in T(n) = O(n log n), zdaj torej tudi v najslabšem primeru
13 Urejanje s štetjem (counting sort) Recimo, da so elementi a-ja majhna naravna št. od 0 do M 1 Za vsako možno vrednost preštejmo, kolikokrat se pojavlja (naredimo histogram tabele) Nato lahko urejeno tabelo kar zgeneriramo for (x = 0; x < M; x++) hist[x] = 0; for (i = 0; i < n; i++) hist[a[i]] += 1; for (x = 0, i = 0; x < M; x++) for ( j = 0; j < hist[x]; j++) a[i++] = x; Tu smo torej predpostavili, da lahko elemente a-ja uporabimo kot indekse v tabelo hist Če to ne gre, lahko za hist uporabimo slovar Ključe tako dobljenega slovarja bomo morali urediti po kakšnem drugem postopku, vendar imamo zdaj vsak ključ samo enkrat, v a pa je bil mogoče večkrat
14 Urejanje s štetjem (counting sort) Kaj če so v tabeli pari (ključ, spremljevalni podatki) in urejene tabele ne moremo kar zgenerirati samo iz ključev? for (x = 0; x < M; x++) hist[x] = 0; for (i = 0; i < n; i++) hist[a[i].ključ ] += 1; for (x = 0, i = 0; x < M; x++) { kam[x] = i; i += hist[x]; } for (i = 0; i < n; i++) { x = a[i].ključ ; b[kam[x]++] = a[i]; } Dobili smo primerno urejeno izhodno tabelo b Takšno urejanje je tudi stabilno Z malo pazljivosti lahko kam hranimo v isti tabeli kot hist
15 Urejanje z vedri (bucket sort) Razdelimo elemente tabele a na B veder (buckets) tako, da so vsi elementi v prvem vedru manjši od vseh v drugem vedru in tako naprej Uredimo vsako vedro posebej Staknimo rezultate skupaj for (b = 0; b < B; b++) vedro[b] = prazen seznam; for (i = 0; i < n; i++) { x = a[i].ključ; dodaj a[i] v vedro[ f(x)]; } for (b = 0; b < B; b++) uredi vedro[b]; for (i = 0, b = 0; b < B; b++) for (elt : vedro[b]) a[i++] = elt; Vprašanje je, ali znamo poceni računati neko primerno funkcijo f(x), ki ključe čim bolj enakomerno razprši med vedra Npr. če so ključi realna števila z območja [min, max), lahko vzamemo f(x) = floor((x min) / (max min) * B) Idealni scenarij: B = n, vsako vedro ima v povprečju en element, zato urejanje posameznega vedra traja O(1), celoten postopek pa O(n)
16 Urejanje po števkah (radix sort) Recimo, da so naši ključi k-mestna naravna števila Razdelimo jih na 10 veder glede na najbolj levo števko (MSD) Uredimo vsako vedro z enakim postopkom (rekurzivni klic), le da najbolj levo števko takrat odmislimo Staknimo rezultate skupaj Ali pa: Uredimo jih s štetjem glede na najbolj desno števko (LSD) Nato ta seznam spet uredimo s štetjem glede na predzadnjo števko Urejanje s štetjem je stabilno, zato so zdaj urejeni po zadnjih dveh števkah skupaj Nato ga uredimo s štetjem glede na predpredzadnjo števko itd. Porabili smo O(k n) časa za urejanje n k-mestnih števil To bi znalo priti prav tudi za urejanje nizov po abecedi ipd.
17 Kopica
18 Prioritetna vrsta Spomnimo se: vrsta (queue) = podatkovna struktura, v katero dodajamo na koncu in brišemo na začetku Brišemo vedno element, ki je najdlje v vrsti FIFO = first in, first out = kdor prej pride, prej melje Prioritetna vrsta (priority queue): Vsak element ima prioriteto Brišemo vedno element z najvišjo prioriteto Najpogostejša implementacija: (binarna) kopica So še druge kopice: b-iške za b > 2, binomske kopice, Fibonaccijeve kopice Znan primer uporabe: Dijkstrov algoritem za najkrajše poti v grafu
19 Kopica Kopica je binarno drevo, v katerem: Vsi nivoji so polni, razen mogoče zadnjega Na zadnjem nivoju so vsa vozlišča na levi strani Vsak element ima vsaj tolikšno prioriteto kot njegova otroka Posledica: koren ima najvišjo prioriteto med vsemi Koristno za brisanje elementa z najvišjo prioriteto vemo, kje ga dobiti Kopica z n elementi ima torej povsem predvidljivo obliko Primerna za implementacijo s tabelo a[0..n 1] Vozlišče i ima otroka 2i + 1 in 2i + 2 ter starša (i 1) / 2 Vozlišče i je notranje za i < n/2, sicer je list Vozlišče 0 je koren Kopica ima 1 + log 2 n nivojev C++: make_heap, push_heap, pop_heap, sort_heap v <algorithm>
20 Brisanje iz kopice Recimo, da bi radi pobrisali element na indeksu i V kopici je tam zdaj luknja premaknimo vanjo element s konca Primerjajmo ga z večjim od otrok in ga po potrebi pogreznimo (sift) funkcija Briši(i): a[i] = a[n 1]; n = 1; Sift(i) funkcija Sift(i): // pogrezanje while (i < n / 2) { // O(log n) ci = 2 * i + 1; if (ci + 1 < n && a[ci + 1].p > a[ci].p) ci++; if (a[i].p <= a[ci].p) break; swap(a[i], a[ci]); i = ci; } Postopek Sift pride prav tudi, če hočemo nekemu elementu znižati prioriteto (in moramo popraviti kopico) Drobna izboljšava: namesto swap-ov si na začetku skopirajmo a[i] v temp, nato namesto vsakega swap naredimo a[i] = a[ci] in na koncu po zanki še a[i] = temp.
21 Dodajanje v kopico Novi element dodajmo na konec Toda zdaj moramo preveriti, če ima mogoče višjo prioriteto od starša Če jo ima, ju zamenjamo in tako naprej gor po kopici To je ravno obratna operacija od dodajanja funkcija Dodaj(x): a[n] = x; n += 1; Lift(n 1); funkcija Lift(i): // dvigovanje while (i > 0) { // O(log n) starš = (i 1) / 2; if (a[starš ].p <= a[i].p) break; swap(a[starš ], a[i]); i = starš ; }
22 Gradnja kopice Recimo, da bi dano tabelo a[0..n 1] preuredili v kopico Vsak list je že kopica sama zase Če imamo notranje vozlišče, čigar poddrevesi sta že kopici, bo s pogrezanjem starša vse skupaj postalo kopica Torej poganjajmo pogrezanje od nižjih nivojev proti višjim Implementacija: funkcija Heapify(n): for (i = (n 1) / 2; i >= 0; i ) Sift(i); Časovna zahtevnost je le O(n)
23 Urejanje s kopico (heapsort) Tabelo a, ki bi jo uredili, najprej predelajmo v kopico Največji element je zdaj v korenu to je tisti, ki mora priti na konec tabele Pobrišimo ga iz kopice Na koncu s tem pridobimo v tabeli prazno mesto, prav tisto, kamor moramo vpisati pobrisani element iz korena funkcija HeapSort(a[0..n 1]): Heapify(a); while (n > 0) { x = a[0]; Briši(0); // predpostavimo, da Briši zmanjša n za 1 a[n] = x; } Časovna zahtevnost: O(n log n)
24 Bisekcija
25 Bisekcija (binarno iskanje) Imamo urejeno tabelo a[0..n 1], iščemo element z vrednostjo x Primerjajmo x z elementom na sredi tabele Če je x manjši od njega, mora biti levo, sicer desno Tako na vsakem koraku zmanjšamo območje, ki ga preiskujemo, za polovico O(log n) korakov Kaj naj vrnemo, če x v tabeli ni? Ali pa če jih je več? Iščimo najbolj levi element z vrednostjo vsaj x Če takega ni, vrnemo n (mislimo si a[n] = ) Rezultat nam bo torej tudi povedal, kam vriniti x (če ga še ni v tabeli), da bo tabela ostala urejena C++: lower_bound, upper_bound, binary_search v <algorithm> funkcija Bisekcija(a[0..n 1], x): if (n == 0 x <= a[0]) return 0; L = 0; D = n; while (D L > 1) { // Tu velja a[l] < x a[d]. M = (L + D) / 2; if (a[m] < x) L = M; else D = M; } // Tu velja a[l] < x a[l + 1]. return L + 1;
26 Poizvedbe na intervalih, kumulativne vsote itd.
27 Poizvedbe na intervalih Dana je tabela a[0..n 1], radi bi znali učinkovito odgovarjati na poizvedbe oblike Kakšna je vsota/minimum/maksimum elementov a[l..d 1]? Obstajajo razni prijemi za računanje teh stvari, odvisno od tega, ali se vsebina naše tabele lahko tudi spreminja in kako
28 Kumulativne vsote Lahko si vnaprej izračunamo tabelo kumulativnih (delnih) vsot: b[i] = vsota vrednosti a[0..i 1] Potem je b[d] b[l] = vsota vrednosti a[l..d 1] Porabimo O(n) časa za pripravo tabele b, odtlej le O(1) za vsako poizvedbo b[0] = 0; for (i = 1; i < n; i++) b[i] = b[i 1] + a[i 1]; Slabost: če se katerikoli element a-ja spremeni, moramo celo tabelo b izračunati znova Slabost: ta prijem odpove, če nas namesto vsote zanima minimum ali maksimum
29 Korenska dekompozicija Razdelimo v mislih tabelo a na bloke po B elementov Blokov je torej približno n/b Za vsak blok izračunajmo vsoto (ali minimum ali karkoli nas že pač zanima) Ko pride poizvedba za a[l..d 1]: Območje l..d 1 pokriva na začetku in na koncu po en blok le delno, vmes pa nekaj blokov v celoti Seštejmo pokrite elemente iz blokov, ki sta pokrita le delno, in vsote celih blokov, ki so pokriti v celoti O(B) + O(n/B) časa za eno poizvedbo Najbolje bo torej pri B = n O( n) časa za poizvedbo Če se v tabeli en element spremeni, moramo popraviti le vsoto njegovega bloka O( n) časa
30 Redka tabela Podobno kot ideja z bloki, le da se nam tu bloki tudi prekrivajo: T[k, i] = vsota elementov a[i..i + 2 k 1] Tabela T porabi O(n log n) prostora, priprava tudi O(n log n) časa for (i = 0; i < n; i++) T[0, i] = a[i]; k = 1; while (2 k n) for (i = 0; i < n; i++) { T[k, i] = T[k 1, i]; if (i + 2 k 1 < n) T[k, i] += T[k 1, i + 2 k 1 ]; } Ko pride poizvedba za območje a[l..d 1]: To območje razdelimo na bloke dolžine 2 k za razne k in skombiniramo rezultate: funkcija Vsota(l, d): dolžina = d l; rezultat = 0; k = 0; while (dolžina > 0) { if ((dolžina & 1) == 1) { rezultat += T[k, l ]; l += (1<< k); } dolžina >>= 1; k += 1; } return rezultat; Pri minimumu je še lažje, ker lahko uporabimo dva prekrivajoča se bloka dolžine 2 k za največji tak k, pri katerem je 2 k d l : rezultat = min(t[k, l] + T[k, d 2 k ]);
31 Drevo blokov Naj bo T[k, i] = vsota (ali minimum itd.) območja a[2 k i..2 k (i + 1) 1] To si lahko predstavljamo kot zaporedje tabel: T[k, ] je dolga n/2 k elementov Lahko pa si jih predstavljamo kot drevo Vse skupaj imajo n/2 + n/4 + n elementov Če se nek a[i] spremeni, moramo popraviti O(log n) elementov T-ja Poizvedba: na vsakem nivoju drevesa moramo pogledati največ dva elementa O(log n) S še eno izboljšavo dobimo Fenwickovo drevo
32 Mo-jev algoritem Dana je tabela a[1..n] in veliko (recimo Q) poizvedb oblike (l, r) = povej nekaj o a[l..r] Na primer: najpogostejši element Oz. nekaj takega, za kar potrebujemo nekakšne statistike o a[l],, a[r] Recept: Razdelimo tabelo na bloke velikosti B Uredimo poizvedbe glede na blok, v katerem leži l Za vsako tako skupino poizvedb z istim začetnim blokom: Uredimo jih naraščajoče po r Za prvo od njih izračunajmo odgovor z zanko od l do r Za vsako naslednjo: Njen r je nekje desno od r-ja prejšnje Njen l je malo (največ B) levo/desno od l-ja prejšnje Popravimo rezultat prejšnje poizvedbe Skupaj O(n) premikov r-ja in O(B št. poizvedb s tem začetnim blokom) premikov l-ja Po vseh začetnih blokih skupaj: O((n/B) n) premikov r-ja in O(B Q) premikov l-ja pri B = n dobimo časovno zahtevnost O((n + Q) n) (čas popravka pri premiku l-ja ali r-ja za 1)
33 Primer naloge (UVA, #11990) Dana je permutacija števil 1..n, iz nje v nekem danem vrstnem redu brišemo elemente, po vsakem brisanju povej število inverzij torej parov (i, j), za katere je i < j in a[i] > a[ j] Ko pobrišemo element, si mislimo, da v a tam ostane luknja, tako da se indeksi ostalih elementov ne spreminjajo Ko brišemo a[i], nas zanima, koliko je levo od njega večjih elementov in koliko je desno od njega manjših elementov Razdelimo a na bloke, za vsak blok vzdržujmo binarno iskalno drevo z vrednostmi elementov tistega bloka + števce velikosti poddreves Koliko je na indeksih 0..i 1 elementov, manjših od a[i]? Za bloke, ki v celoti ležijo na tem intervalu, izvedemo poizvedbo v drevesu O(log n) za vsak blok Če blok leži delno na tem intervalu, pregledamo elemente posebej Bloki velikosti n: O( n log n) za vsako poizvedbo, O(log n) za vsak update, O(n n log n) za cel postopek Bloki oblike [2 k i..2 k (i + 1) 1]: O((log n) 2 ) za poizvedbo, enako za update, skupaj O(n (log n) 2 )
34 Primer naloge (Codeforces, 1175D) Zaporedje a[1..n] razreži na k nepraznih delov. Naj bo f [i] 1..k številka dela, ki mu pripada element a[i]. Maksimiziraj vsoto S i=1..n f [i] a[i]. Naj bo p j indeks prvega elementa v j-tem delu Našo vsoto lahko zapišemo tudi kot S j=1..k S i=p j..n a[i] = S j=1..k s[p j ], če je s[i] = a[i] + + a[n] Vidimo torej, da moramo le izbrati največjih k 1 izmed delnih vsot s[2..n] in jih sešteti (in prišteti še s[1]) Quickselect, O(n)
35 Nizi in iskanje podnizov
36 Nizi Niz (string) je zaporedje znakov s je dolžina niza Če sta s in t niza, je st stik teh dveh nizov Znake označimo z s[0], s[1],, s[n 1] za n = s Podnizi: s[i:j] = s[i] s[i+1] s[ j 1] s[0:i] = prefiks (začetek, predpona) s[i:n] = sufiks (konec, končnica, pripona)
37 Iskanje podniza v nizu Dana sta niza s in p; ali se (oz. kje se) pojavlja p kot (strnjen) podniz s-ja? Pišimo n = s in m = p Naivna rešitev: O(nm) funkcija NajdiPodniz(s, p): for (i = 0; i < n m; i++) { j = 0; while ( j < m && s[i + j] == p[ j]) j++; if ( j == m) return i ; } return 1; } V povprečju sicer ne bo tako slaba, če se neujemanje opazi hitro (npr. če sta s in p iz naključnih znakov)
38 Rabin-Karpov algoritem Ideja: preden pri nekem i primerjamo s[i:i+m] in p znak po znak, izračunajmo iz vsakega od njiju neko hash kodo Če se hash kodi ne ujemata, sta niza gotovo različna in ju ni treba primerjati funkcija RabinKarp(s, p): hp = hash(p); for (i = 0; i < n m; i++) { hs = hash(s[i:i + m]); if (hs!= hp) continue; j = 0; while ( j < m && s[i + j] == p[ j]) j++; if ( j == m) return i ; } return 1; } Večinoma bosta hash kodi enaki le, če bosta tudi niza enaka, tako da bo primerjanje po znakih potrebno le enkrat O(n + m) če znamo te hash kode poceni računati (ne pa s še eno zanko po znakih niza s[i:i + m])
39 Rolling hash kode Znake niza lahko gledamo kot cela števila (npr. po ASCII ipd.) kot števke v B-iškem sestavu za nek velik B Niz k znakov je kot zaporedje k števk torej kot neko (ogromno) celo število Za hash kodo vzemimo njegov ostanek po deljenju z M: hash(t[0:k]) = (S i=0..k 1 B k 1 i t[i]) % M Lahko ga računamo z zanko: funkcija hash(t[0:k]): h = 0; for (i = 0; i < k; i++) h = (h * B + t[i]) % M; return M; Ko se v glavni zanki premaknemo naprej po nizu s: hash(s[i+1:i+1+m]) = ((hash(s[i:i+m]) B k 1 s[i]) * B + s[i + m]) % M Torej lahko novo hash kodo izračunamo iz stare v O(1) časa, če si vnaprej pripravimo B m 1 % M
40 Z-funkcija Za dani niz s[0:n] definirajmo tabelo z[i] = dolžina najdaljšega skupnega prefiksa nizov s[0:n] in s[i:n] Da poiščemo pojavitve podniza p v nizu s, izračunamo tabelo z za niz p#s in v njej iščemo indekse, ki imajo z[i] = p Vprašanje je, kako poceni računati tabelo z, naivna rešitev je v O(n 2 ) for (i = 0; i < n; i++) { z[i] = 0; while (i + z[i] < n && s[i] == s[i + z[i]]) z[i]++; } Vsak doslej izračunani z[i] nam pove, da je s[0:z[i]] = s[i:i + z[i]]. Med njimi si zapomnimo tistega, ki seže najbolj desno, torej z največjim i + z[i]. Temu recimo s[l:d]. Ko kasneje računamo z[i] za nek večji i (i > l): Če je i > d, računamo kot pri naivni rešitvi Sicer začnemo pri z [i] = min{z [i l ], d i } in nadaljujemo kot pri naivni rešitvi Zakaj? Ker je s[l:d] = s[0:d l ], je s[i:d] = s[i l:d l ] Za s[i l :n] že vemo, da se ujema s s[0:n] v prvih z [i l ] znakih Torej se s[i l : d l] ujema s s[0:n] v prvih min{z [i l ], d i } znakih
41 Knuth-Morris-Prattov algoritem Recimo, da smo primerjali s[0:m] in p ter opazili prvo neujemanje po j znakih Če zdaj premaknemo p še i (za nek i < j) mest naprej Se mora p[0:] ujemati s p[i:] v vsaj prvih j i znakih (*) Prvo neujemanje s s-jem gotovo ne nastopi prej kot po j i znakih p-ja torej ni treba zamikati po 1 znak naprej, vzamemo lahko najmanjši premik, pri katerem je izpolnjen pogoj (*) Primerjanje z znaki s-ja pa nadaljujemo pri s[ j ], kjer smo ga prej končali Vsak znak s-ja sodeluje v kvečjemu eni uspešni primerjavi, za vsak položaj p-ja je še kvečjemu ena neuspešna primerjava O(n + m) Vnaprej si za vsak j izračunamo najmanjši primerni zamik i Torej najmanjši i, za katerega je p[0:j i] = p[i:j] Naivno v času O(m 3 ), dá se tudi v O(m)
42 Boyer-Mooreov algoritem Recimo, da smo pri nekem i in da primerjamo p[0:m] in s[i:i + m] Gremo od desne proti levi Ko opazimo neujemanje, za koliko naj povečamo i? Recimo, da sta se p[0:m] in s[i:i + m] ujemala v zadnjih k znakih, pred tem pa je p[m k 1] s[i + m k 1] = c i moramo povečati vsaj za toliko, da bo pod s[i + m k:i + m] stala predzadnja pojavitev tega niza v p-ju (zadnja je čisto na koncu p-ja) i moramo povečati vsaj za toliko, da bo pod s[i + m k 1] stala zadnja pojavitev c-ja v nizu p[0:m k] Oboje imamo potabelirano vnaprej [O(m)], uporabimo večjega od obeh premikov C++17: boyer_moore_searcher v headerju <functional>
43 Primer naloge (UVA, #11475) Dan je niz s, dodaj na koncu nek čim krajši niz t tako, da bo st palindrom Palindrom bo torej oblike st = t R u R c u t za s = t R u R c u Iščemo torej nek čim daljši konec (sufiks) s-ja, u, ki se malo pred tem pojavi kot u R Ali pa: iščemo čim daljši w, ki se pojavi kot w R tudi na koncu s-ja Izračunajmo Z-tabelo nad nizom s R #s V desni polovici te tabele nam z[n i] = d pove, da se s[i:] ujema s s R v prvih d znakih Če se tidve pojavitvi stakneta (i + d n d), tvorita primeren u R c u in za t lahko vzamemo s[:i]
44 Domače naloge Dana je tabela a, ki vsebuje permutacijo števil 1..n Za dani m povej, koliko je parov (l, r), za katere velja, da je mediana elementov a[l..r] enaka m Danih je 2n nizov in ločilni znak # Zloži po dva niza v vrstico oblike s#t Nastane seznam n vrstic, hočemo leksikografsko najmanjšega Dana je tabela a[1..n], odgovarjaj na poizvedbe oblike Q(l, r) = S x N(l, r, x) 2 x, kjer je N(l, r, x) število pojavitev vrednosti x v a[l..r] Namig: Mo-jev algoritem
Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo
Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =
Prikaži večMicrosoft Word - UP_Lekcija04_2014.docx
4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in
Prikaži večUčinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v
Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar 2009 1 Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero velja 0 f(e) u(e) za e E(G). Za v V (G) definiramo presežek
Prikaži večRAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni
RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje
Prikaži večPoročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo
Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni
Prikaži večUrejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se
Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft
Prikaži večIme in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite
Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5 februar 018 Navodila Pazljivo preberite besedilo naloge, preden se lotite reševanja Nalog je
Prikaži večKazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij
Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................
Prikaži večDN5(Kor).dvi
Koreni Število x, ki reši enačbo x n = a, imenujemo n-ti koren števila a in to označimo z n a. Pri tem je n naravno število, a pa poljubno realno število. x = n a x n = a. ( n a ) n = a. ( n a ) m = n
Prikaži večMATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir
MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero
Prikaži več1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam
1. izbirni test za MMO 018 Ljubljana, 16. december 017 1. Naj bo n naravno število. Na mizi imamo n okraskov n različnih barv in ni nujno, da imamo enako število okraskov vsake barve. Dokaži, da se okraske
Prikaži večStrojna oprema
Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT
Prikaži večDatum in kraj
Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI
Prikaži večMicrosoft Word - Seštevamo stotice.doc
UČNA PRIPRAVA: MATEMATIKA UČNI SKLOP: Računske operacije UČNA TEMA: Seštevamo in odštevamo stotice Seštevamo stotice UČNE METODE: razlaga, prikazovanje, demonstracija, grafično in pisno delo UČNE OBLIKE:
Prikaži večMicrosoft Word - M _mod..docx
Državni izpitni center *M17278113* JESENSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Ponedeljek, 28. avgust 2017 SPLOŠNA MATURA Državni izpitni center Vse pravice pridržane. M172-781-1-3 2 IZPITNA POLA 1 1
Prikaži večDiapozitiv 1
Pogojni stavek Pogojni (if) stavek Tip bool Primerjanje Uranič Srečo If stavek Vsi dosedanji programi so se izvajali zaporedoma, ni bilo nobenih vejitev Program razvejimo na osnovi odločitev pogojnega
Prikaži večUNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Anže Pratnemer Analiza algoritmov za iskanje podnizov s pomočjo sistema ALGator DIPLOMS
UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Anže Pratnemer Analiza algoritmov za iskanje podnizov s pomočjo sistema ALGator DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE
Prikaži večBYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig
BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površe, pri tem pa zbrati čim več točk. Podobno igro najdemo tudi v knjigi Scratch (Lajovic, 2011), vendar
Prikaži večDiapozitiv 1
9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : Državni izpitni center *M15245112* JESENSKI IZPITNI ROK Izpitna pola 2 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali kemični svinčnik in računalo.
Prikaži več3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja
3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja AV k = V k H k + h k+1,k v k+1 e T k = V kh k+1,k.
Prikaži večresitve.dvi
FAKULTETA ZA STROJNISTVO Matematika Pisni izpit. junij 22 Ime in priimek Vpisna st Navodila Pazljivo preberite besedilo naloge, preden se lotite resevanja. Veljale bodo samo resitve na papirju, kjer so
Prikaži večUNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina
UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v financah Ljubljana, 2010 1. Klasični pristop k analizi
Prikaži večMladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015
Mladi za napredek Maribora 015 3. srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 015 Kazalo 1. Povzetek...3. Uvod...4 3. Spirala 1...5 4. Spirala...6 5. Spirala 3...8 6. Pitagorejsko drevo...10
Prikaži večDelavnica Načrtovanje digitalnih vezij
Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Programirljivi Digitalni Sistemi Digitalni sistem Digitalni sistemi na integriranem vezju Digitalni sistem
Prikaži več'Kombinatoricna optimizacija / Lokalna optimizacija'
Kombinatorična optimizacija 3. Lokalna optimizacija Vladimir Batagelj FMF, matematika na vrhu različica: 15. november 2006 / 23 : 17 V. Batagelj: Kombinatorična optimizacija / 3. Lokalna optimizacija 1
Prikaži več6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru
6.1 Uvod 6 Igra Chomp Marko Repše, 30.03.2009 Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru in na končni ali neskončni čokoladi. Igralca si izmenjujeta
Prikaži večOsnove matematicne analize 2018/19
Osnove matematične analize 2018/19 Neža Mramor Kosta Fakulteta za računalništvo in informatiko Univerza v Ljubljani Funkcija je predpis, ki vsakemu elementu x iz definicijskega območja D f R priredi natanko
Prikaži večglava.dvi
Lastnosti verjetnosti 1. Za dogodka A in B velja: P(A B) = P(A) + P(B) P(A B) 2. Za dogodke A, B in C velja: P(A B C) = P(A) + P(B) + P(C) P(A B) P(A C) P(B C) + P(A B C) Kako lahko to pravilo posplošimo
Prikaži večMERE SREDNJE VREDNOSTI
OPIS PODATKOV ENE SPREMENLJIVKE frekvenčne porazdelitve in mere srednje vrednosti as. dr. Nino RODE Uni-Lj. Fakulteta za socialno delo O ČEM BOMO GOVORILI NAMEN OPISNE STATISTIKE Kako opisati podatke OPIS
Prikaži večŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA
ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo
Prikaži večMicrosoft Word - vaje2_ora.doc
II UKAZI 1. Napišite zaporedje ukazov, ki vrednost enobajtne spremenljivke STEV1 prepiše v enobajtno spremenljivko STEV2. Nalogo rešite z neposrednim naslavljanjem (zaporedje lahko vsebuje le 2 ukaza v
Prikaži večIme in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be
Ime in priimek: Vpisna št: FAKULEA ZA MAEMAIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6 julij 2018 Navodila Pazljivo preberite besedilo naloge, preden se lotite reševanja Za pozitiven rezultat
Prikaži večM
Š i f r a k a n d i d a t a : Državni izpitni center *M16140111* Osnovna raven MATEMATIKA Izpitna pola 1 SPOMLADANSKI IZPITNI ROK Sobota, 4. junij 016 / 10 minut Dovoljeno gradivo in pripomočki: Kandidat
Prikaži večMere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike
Mere kompleksnih mrež (angl. Network Statistics) Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike Ajda Pirnat, Julia Cafnik in Živa Mitar Fakulteta za matematiko in fiziko April
Prikaži večMAGIČNI KVADRATI DIMENZIJE 4n+2
List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 18 (1990/1991) Številka 6 Strani 322 327 Borut Zalar: MAGIČNI KVADRATI DIMENZIJE 4n + 2 Ključne besede: matematika, aritmetika,
Prikaži večBellman-Fordov algoritem za iskanje najkraj²ih poti Alenka Frim 19. februar 2009 Popravek 25. februar 2009 Imamo usmerjen graf G z uteºmi na povezavah
Bellman-Fordov algoritem za iskanje najkraj²ih poti Alenka Frim 19. februar 2009 Popravek 25. februar 2009 Imamo usmerjen graf G z uteºmi na povezavah (uteº si predstavljamo npr. kot dolºino, ceno, teºo
Prikaži več10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k
10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, ki ga sprejme antena in dodatni šum T S radijskega sprejemnika.
Prikaži večTeorija kodiranja in kriptografija 2013/ AES
Teorija kodiranja in kriptografija 23/24 AES Arjana Žitnik Univerza v Ljubljani, Fakulteta za matematiko in fiziko Ljubljana, 8. 3. 24 AES - zgodovina Septembra 997 je NIST objavil natečaj za izbor nove
Prikaži večNamesto (x,y)R uporabljamo xRy
RELACIJE Namesto (x,y) R uporabljamo xry Def.: Naj bo R AxA D R = { x; y A: xry } je domena ali definicijsko obmocje relacije R Z R = { y; x A: xry } je zaloga vrednosti relacije R Za zgled od zadnjič:
Prikaži večEKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi
EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Miklavič 30. okt. 2003 Math. Subj. Class. (2000): 05E{20,
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali
Prikaži večFAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese
FAKULTETA ZA STROJNIŠTVO Matematika Pisni izpit 9. junij 005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite besedilo naloge, preden se lotite reševanja. Veljale bodo
Prikaži večPoglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri te
Poglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri tem je lahko nelinearna funkcija f podana eksplicitno,
Prikaži večUniverza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA
Enopredmetna matematika IN STATISTIKE Maribor, 31. 01. 2012 1. Na voljo imamo kovanca tipa K 1 in K 2, katerih verjetnost, da pade grb, je p 1 in p 2. (a) Istočasno vržemo oba kovanca. Verjetnost, da je
Prikaži večLehmerjev algoritem za racunanje najvecjega skupnega delitelja
Univerza v Ljubljani Fakulteta za računalništvo in informatiko ter Fakulteta za Matematiko in Fiziko Mirjam Kolar Lehmerjev algoritem za računanje največjega skupnega delitelja DIPLOMSKO DELO NA INTERDISCIPLINARNEM
Prikaži večMicrosoft PowerPoint - Java_spremenljivke
Java Spremenljivke, prireditveni stavek Spremenljivke Prostor, kjer hranimo vrednosti Ime Znak, števka, _ Presledkov v imenu ne sme biti! Tip spremenljivke int (cela števila) Vse spremenljivke napovemo
Prikaži večFGG14
Iterativne metode podprostorov Iterativne metode podprostorov uporabljamo za numerično reševanje linearnih sistemov ali računanje lastnih vrednosti problemov z velikimi razpršenimi matrikami, ki so prevelike,
Prikaži večLaTeX slides
Statistični modeli - interakcija - Milena Kovač 23. november 2007 Biometrija 2007/08 1 Število živorojenih pujskov Biometrija 2007/08 2 Sestavimo model! Vplivi: leto, farma Odvisna spremenljivka: število
Prikaži večVrste
Matematika 1 17. - 24. november 2009 Funkcija, ki ni algebraična, se imenuje transcendentna funkcija. Podrobneje si bomo ogledali naslednje transcendentne funkcije: eksponentno, logaritemsko, kotne, ciklometrične,
Prikaži večPodatkovni model ER
Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke
Prikaži večDES11_realno
Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Delovanje realnega vezja Omejitve modela vezja 1 Model v VHDLu je poenostavljeno
Prikaži večDiapozitiv 1
Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika
Prikaži večSTAVKI _5_
5. Stavki (Teoremi) Vsebina: Stavek superpozicije, stavek Thévenina in Nortona, maksimalna moč na bremenu (drugič), stavek Tellegena. 1. Stavek superpozicije Ta stavek določa, da lahko poljubno vezje sestavljeno
Prikaži večMicrosoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf
uporaba for zanke i iz korak > 0 oblika zanke: for i iz : korak : ik NE i ik DA stavek1 stavek2 stavekn stavek1 stavek2 stavekn end i i + korak I&: P-XI/1/17 uporaba for zanke i iz korak < 0 oblika zanke:
Prikaži večStatistika, Prakticna matematika, , izrocki
Srednje vrednosti Srednja vrednost...... številske spremenljivke X je tako število, s katerim skušamo kar najbolje naenkrat povzeti vrednosti na posameznih enotah: Polovica zaposlenih oseb ima bruto osebni
Prikaži večFGG13
10.8 Metoda zveznega nadaljevanja To je metoda za reševanje nelinearne enačbe f(x) = 0. Če je težko poiskati začetni približek (še posebno pri nelinearnih sistemih), si lahko pomagamo z uvedbo dodatnega
Prikaži večIme in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite
Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31 avgust 018 Navodila Pazljivo preberite besedilo naloge, preden se lotite reševanja Za pozitiven
Prikaži večMicrosoft Word - avd_vaje_ars1_1.doc
ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov
Prikaži večRAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko
RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko andrej.taranenko@uni-mb.si kabinet: 0/95 govorilne ure: http://matematika-racunalnistvo.fnm.uni-mb.si/
Prikaži večMicrosoft Word - SI_vaja1.doc
Univerza v Ljubljani, Zdravstvena fakulteta Sanitarno inženirstvo Statistika Inštitut za biostatistiko in medicinsko informatiko Š.l. 2011/2012, 3. letnik (1. stopnja), Vaja 1 Naloge 1. del: Opisna statistika
Prikaži večSpoznajmo PowerPoint 2013
Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji
Prikaži več11. Navadne diferencialne enačbe Začetni problem prvega reda Iščemo funkcijo y(x), ki zadošča diferencialni enačbi y = f(x, y) in začetnemu pogo
11. Navadne diferencialne enačbe 11.1. Začetni problem prvega reda Iščemo funkcijo y(x), ki zadošča diferencialni enačbi y = f(x, y) in začetnemu pogoju y(x 0 ) = y 0, kjer je f dana dovolj gladka funkcija
Prikaži večARS1
Nepredznačena in predznačena cela števila Dvojiški zapis Nepredznačeno Predznačeno 0000 0 0 0001 1 1 0010 2 2 0011 3 3 Pri odštevanju je stanje C obratno (posebnost ARM)! - če ne prekoračimo 0 => C=1 -
Prikaži večMicrosoft Word - M doc
Državni izpitni center *M11145113* INFORMATIKA SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Petek, 10. junij 2011 SPLOŠNA MATURA RIC 2011 2 M111-451-1-3 IZPITNA POLA 1 1. b 2. a 3. Pojem se povezuje
Prikaži večINFORMATOR BIROKRAT 1/2011
ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO
Prikaži večINFORMATOR BIROKRAT 1/2011
ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO
Prikaži večSpace Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta Bila je ena izmed prvih streljaških iger, v k
Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta 1978. Bila je ena izmed prvih streljaških iger, v kateri je igralec vodil laserski top ali vesoljsko ladjo,
Prikaži večDOLŽNIK: MARJAN KOLAR - osebni steč aj Opr. št. St 3673/ 2014 OSNOVNI SEZNAM PREIZKUŠENIH TERJATEV prij ava terjatve zap. št. št. prij. matič na števi
DOLŽNIK: MARJAN KOLAR - osebni steč aj Opr. St 3673/ 2014 OSNOVNI SEZNAM PREIZKUŠENIH TERJATEV prij ava terjatve zap. prij. matič na številka firma / ime upnika glavnica obresti stroški skupaj prij ava
Prikaži večDOMACA NALOGA - LABORATORIJSKE VAJE NALOGA 1 Dani sta kompleksni stevili z in z Kompleksno stevilo je definirano kot : z = a + b, a p
DOMACA NALOGA - LABORATORIJSKE VAJE NALOGA 1 Dani sta kompleksni stevili z 1 5 2 3 in z 2 3 8 5. Kompleksno stevilo je definirano kot : z = a + b, a predstavlja realno, b pa imaginarno komponento. z 1
Prikaži večPrekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan
Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajanje prekinitvene rutine Dogodek GLAVNI PROGRAM (MAIN-OB1)
Prikaži več4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov
4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenovalec, ter iz ulomkove črte. Racionalna števila so števila,
Prikaži večAnaliza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila
Programsko orodje LabVIEW za kreiranje, zajem in obdelavo signalov (statične in dinamične karakteristike hidravličnih proporcionalnih ventilov) Marko Šimic Telefon: +386 1 4771 727 e-mail: marko.simic@fs.uni-lj.si
Prikaži večExcel 2016
PRIDOBIVANJE TEMELJN IH IN POKLICNIH KOMPETENC OD 2019 DO 2022 HIPERPOVEZAVA Gradivo za interno uporabo AVTOR: Belinda Lovrenčič Gradivo ni lektorirano V Maj 2019 Operacijo sofinancira Evropska unija,
Prikaži večMatematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y
Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y 2 ). Rešitev: Diferencialna enačba ima ločljive spremenljivke,
Prikaži večMicrosoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2
Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 12. junij 2013 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero
Prikaži večANALITIČNA GEOMETRIJA V RAVNINI
3. Analitična geometrija v ravnini Osnovna ideja analitične geometrije je v tem, da vaskemu geometrijskemu objektu (točki, premici,...) pridružimo števila oz koordinate, ki ta objekt popolnoma popisujejo.
Prikaži večAPS1
Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI Podatkovni tipi Razvil Pascal, Oberon itd. Software is
Prikaži večNEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in
NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?
Prikaži večUradni list RS - 12(71)/2005, Mednarodne pogodbe
PRILOGA 3 Osnovne značilnosti, ki se sporočajo za usklajevanje 1. Zgradba podatkovne zbirke Podatkovno zbirko sestavljajo zapisi, ločeni po znakovnih parih "pomik na začetek vrstice pomik v novo vrstico"
Prikaži večRAČUNALNIŠKA ORODJA V MATEMATIKI
DEFINICIJA V PARAVOKOTNEM TRIKOTNIKU DEFINICIJA NA ENOTSKI KROŢNICI GRAFI IN LASTNOSTI SINUSA IN KOSINUSA POMEMBNEJŠE FORMULE Oznake: sinus kota x označujemo z oznako sin x, kosinus kota x označujemo z
Prikaži večPosebne funkcije
10 Posebne funkcije Posebne funkcije Geometrijska vrsta Binomska vrsta Eksponentna funkcija Logaritemska funkcija Kotne funkcije Kotne tabele Grafi kotnih funkcij Obratne kotne funkcije 10.1 Posebne funkcije
Prikaži večPRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA
KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti
Prikaži več2019 QA_Final SL
Predhodni prispevki v enotni sklad za reševanje za leto 2019 Vprašanja in odgovori Splošne informacije o metodologiji izračuna 1. Zakaj se je metoda izračuna, ki je za mojo institucijo veljala v prispevnem
Prikaži večDelavnica Načrtovanje digitalnih vezij
Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami
Prikaži več4. tema pri predmetu Računalniška orodja v fiziki Ljubljana, Grafi II Jure Senčar
4. tema pri predmetu Računalniška orodja v fiziki Ljubljana, 6.4.29 Grafi II Jure Senčar Relativna sila krčenja - F/Fmax [%]. Naloga Nalogo sem delal v Excelu. Ta ima vgrajeno funkcijo, ki nam vrne logaritemsko
Prikaži večOsnove statistike v fizični geografiji 2
Osnove statistike v geografiji - Metodologija geografskega raziskovanja - dr. Gregor Kovačič, doc. Bivariantna analiza Lastnosti so med sabo odvisne (vzročnoposledično povezane), kadar ena lastnost (spremenljivka
Prikaži večREKONSTRUKCIJA DREVES – 2. del
List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 27 (1999/2000) Številka 3 Strani 138 141 Martin Juvan: REKONSTRUKCIJA DREVES 2. del Ključne besede: računalništvo, programiranje,
Prikaži večresitve.dvi
FAKULTETA ZA STROJNISTVO Matematika 2. kolokvij. december 2 Ime in priimek: Vpisna st: Navodila Pazljivo preberite besedilo naloge, preden se lotite resevanja. Veljale bodo samo resitve na papirju, kjer
Prikaži večDIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk
DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funkciji izbiralnika. Tisti od 2 n izhodov y 0,.., y 2
Prikaži večLaTeX slides
Model v matri ni obliki ena ba modela Milena Kova 13 november 2012 Biometrija 2012/13 1 Nomenklatura Skalarji: tako kot doslej, male tiskane, neodebeljene Vektorji: male tiskane, odebeljene rke (y) ali
Prikaži večPoslovilno predavanje
Poslovilno predavanje Matematične teme z didaktiko Marko Razpet, Pedagoška fakulteta Ljubljana, 20. november 2014 1 / 32 Naše skupne ure Matematične tehnologije 2011/12 Funkcije več spremenljivk 2011/12
Prikaži večMicrosoft PowerPoint - OAPS1- Uvod.ppt
Univerza v Ljubljani Fakulteta za računalništvo in informatiko Igor Rožanc Osnove algoritmov in podatkovnih struktur I ( OAPS I ) 2. letnik VSP Računalništvo in informatika, vse smeri Študijsko leto 2006/07
Prikaži več_ _BDA_CapitalSports_CS-Timer.indd
10028194 10029391 CS Timer 6 Spoštovani kupci, Čestitamo Vam za nakup. Prosimo, da skrbno preberete navodilo in da skrbite za nasvete o namestitvi in uporabi, da bi ste izognili tehničnim poškodbam. Za
Prikaži večMicrosoft Word KR navodila za CMS.doc
Navodila za objavo vsebin s CMS sistemom Izvajalec: Gooya IT, interaktivni mediji, d.o.o., Ljubljana, julij 2011 stran 1 od 31 Vsebina Navodila vsebujejo informacije, ki jih potrebujejo uredniki spletnega
Prikaži večGHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)
GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto
Prikaži večSESTAVA VSEBINE MATEMATIKE V 6
SESTAVA VSEBINE MATEMATIKE V 6. RAZREDU DEVETLETKE 1. KONFERENCA Št. ure Učne enote CILJI UVOD (1 ura) 1 Uvodna ura spoznati vsebine učnega načrta, način dela, učne pripomočke za pouk matematike v 6. razredu
Prikaži večC:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi
Kemijska tehnologija, Kemija Bolonjski univerzitetni program Smer: KT K WolframA: DA NE Računski del izpita pri predmetu MATEMATIKA I 6. 2. 2014 Čas reševanja je 75 minut. Navodila: Pripravi osebni dokument.
Prikaži več