Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr
|
|
- Кирил Ђукановић
- пре 5 година
- Прикази:
Транскрипт
1 Oblikovanje i analiza algoritama 5. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. predavanje p. 1/68
2 Sadržaj predavanja Nehomogene rekurzije i homogenizacija: Opće rješenje homogenizirane rekurzije. Opće rješenje polazne nehomogene rekurzije. Primjer sporog algoritma Hanojski tornjevi: Jednostavni model složenosti broj poteza. Hanojski tornjevi razne varijante (Pascal). Hanojski tornjevi Intel C compiler. Prošireni model složenosti. OAA 2017, 5. predavanje p. 2/68
3 Informacije web stranica Moja web stranica za Oblikovanje i analizu algoritama je ili, skraćeno Kopija je na adresi Službena web stranica za Oblikovanje i analizu algoritama je OAA 2017, 5. predavanje p. 3/68
4 Informacije kolokviji Oblikovanje i analiza algoritama je u kolokvijskom razredu B1. Službeni termini svih kolokvija su: Prvi kolokvij: srijeda, , u 9 sati. Drugi kolokvij: srijeda, , u 9 sati. Popravni kolokvij: srijeda, , u 9 sati. Uputa: izbjegnite popravni obavite to ranije! OAA 2017, 5. predavanje p. 4/68
5 Osnovni model složenosti OAA 2017, 5. predavanje p. 5/68
6 Osnovni model = broj osnovnih poteza Jednostavni model (vremenske) složenosti Hanojskih tornjeva dobivamo tako da gledamo samo broj osnovnih poteza = prebacivanja po jednog diska, tj., broj poziva funkcije prebaci_jednog. Dakle, model za složenost, u ovisnosti o broju diskova n, je t n := broj poteza za n diskova = h n. Pripadna rekurzija za t n je ista kao i za h n (v. Prog2) t n = { 0, za n = 0, 2t n 1 +1, za n > 0. OAA 2017, 5. predavanje p. 6/68
7 Oblik rekurzije za broj poteza Za početak, ovo je nehomogena rekurzija, sa zadanim (jednim) početnim uvjetom t 0 = 0. Pripadna homogena rekurzija ima oblik, kao u (1), t n = 2t n 1, za n > 0, = linearna rekurzija prvog reda, s konstantnim koeficijentima. Nehomogeni član u rekurziji ima standardni oblik, kao u (4), uz g(n) = b n p d (n), b = 1, p 0 (n) = 1. Dakle, treba riješiti standardnu nehomogenu rekurziju prvog reda, s konstantnim koeficijentima. OAA 2017, 5. predavanje p. 7/68
8 Rješenje rekurzije za broj poteza Rješenje. Karakteristična jednadžba homogenizirane rekurzije je (x 2)(x 1) = 0, s korijenima r 1 = 1 i r 2 = 2. Opće rješenje homogenizirane rekurzije je t n = c 1 1 n +c 2 2 n. Ovo rješenje uvrstimo u polaznu rekurziju, zato da dobijemo konstantu c 1 uz onaj dio rješenja koji odgovara nehomogenom članu. Izlazi c 1 +c 2 2 n = 2 ( c 1 +c 2 2 n 1) +1 c 1 = 2c 1 +1 c 1 = 1. OAA 2017, 5. predavanje p. 8/68
9 Rješenje rekurzije za broj poteza Dakle, opće rješenje polazne nehomogene rekurzije je t n = c 2 2 n 1, n 0, a konstanta c 2 se računa iz početnog uvjeta t 0. Početni uvjet je t 0 = 0, pa je t 0 = c = 0 = c 2 = 1. Konačno rješenje za broj poteza u Hanojskim tornjevima s n diskova je t n = 2 n 1, n 0. OAA 2017, 5. predavanje p. 9/68
10 Model trajanje jednog poteza Broj poteza za n diskova: F(n) = 2 n 1. Ako je izmjereno vrijeme T(n), onda je trajanje jednog poteza c(n) = T(n) F(n) = T(n) 2 n 1. Uočiti: c(n) je obratno proporcionalan brzini (inverz brzine). OAA 2017, 5. predavanje p. 10/68
11 Hanojski tornjevi u Pascalu OAA 2017, 5. predavanje p. 11/68
12 Hanoi ispis na ekran procedure Hanoi ( n, i, j : integer ) ; begin if n > 0 then begin Hanoi ( n - 1, i, 6 - i - j ) ; writeln ( i, ->, j ) ; Hanoi ( n - 1, 6 - i - j, j ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 12/68
13 Hanoi ispis na disk procedure Hanoi ( n, i, j : integer ) ; begin if n > 0 then begin Hanoi ( n - 1, i, 6 - i - j ) ; writeln ( Moves, i, ->, j ) ; Hanoi ( n - 1, 6 - i - j, j ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 13/68
14 Hanoi opis varijanti potprograma Za normalnije mjerenje vremena (i brzine) bez ispisa, testiramo 2 2 = 4 varijante potprograma Hanoi. Dubina rekurzije: varijanta 0 ima pozive za n = 0, koji ništa ne rade, varijanta 1 nema pozive za n = 0, s posebnim testom za n = 1. Broj argumenata: obična varijanta ima samo dvije igle kao argumente (odakle, kamo) i računa pomoćnu iglu, varijanta a ima sve tri igle kao argumente, bez računa. OAA 2017, 5. predavanje p. 14/68
15 Hanoi varijanta 0 procedure Hanoi ( n, i, j : integer ) ; begin if n > 0 then begin Hanoi ( n - 1, i, 6 - i - j ) ; Prebaci ( i, j ) ; Hanoi ( n - 1, 6 - i - j, j ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 15/68
16 Hanoi varijanta 1 procedure Hanoi ( n, i, j : integer ) ; begin if n <= 1 then Prebaci ( i, j ) else begin Hanoi ( n - 1, i, 6 - i - j ) ; Prebaci ( i, j ) ; Hanoi ( n - 1, 6 - i - j, j ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 16/68
17 Hanoi varijanta a0 procedure Hanoi ( n, i, j, k : integer ) ; begin if n > 0 then begin Hanoi ( n - 1, i, k, j ) ; Prebaci ( i, j ) ; Hanoi ( n - 1, k, j, i ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 17/68
18 Hanoi varijanta a1 procedure Hanoi ( n, i, j, k : integer ) ; begin if n <= 1 then Prebaci ( i, j ) else begin Hanoi ( n - 1, i, k, j ) ; Prebaci ( i, j ) ; Hanoi ( n - 1, k, j, i ) ; end ; { n > 0 } end ; { Hanoi } OAA 2017, 5. predavanje p. 18/68
19 Potprogram prebaci Potprogram Prebaci samo zbraja poteze (globalni brojač): procedure Prebaci ( i, j : integer ) ; begin { Povecaj globalni brojac poteza. Trajanje je (skoro) konstantno: T(Prebaci) = c.} Broj_poteza := Broj_poteza + 1 ; end ; { Prebaci } OAA 2017, 5. predavanje p. 19/68
20 Sudionici (žrtve) eksperimenta Test je napravljen godine, s 2 Pascal compilera: Turbo Pascal 7 generira 16 bitni kôd za obični DOS. Free Pascal generira 32 bitni kôd za tzv. DOS ekstender GO32v2. Izvršavanje je kroz DOS prozor na Windowsima (2000, XP). Računala u eksperimentu su: Pentium na 166MHz, zvani P , roden 1996., (ranije je imao Pentium na 120 MHz); Pentium 2 na 333MHz, zvani Klamath, roden 1998., (kasnije je imao Pentium 3 na 500MHz); Pentium 4/660 na 3.6 GHz, zvan(a) BabyBlue, roden(a) 2005., test iz godine (isti.exe kao prije); OAA 2017, 5. predavanje p. 20/68
21 TP7 Tablica izmjerenih vremena T(n) Usporedba izmjerenih vremena T(n) (u s) za razna računala i razne varijante: Varijanta P Klamath BabyBlue ekran, n = disk, n = , n = , n = a0, n = a1, n = Uočiti: Zelena vremena za varijantu 1 (bez poziva za n = 0) su oko 2/3 vremena za varijantu 0. OAA 2017, 5. predavanje p. 21/68
22 TP7 Tablica trajanja poteza za n = 30 Usporedba trajanja jednog poteza (u s) za razna računala i razne varijante: Varijanta P Klamath BabyBlue ekran, n = disk, n = , n = , n = a0, n = a1, n = OAA 2017, 5. predavanje p. 22/68
23 FPC Tablica izmjerenih vremena T(n) Usporedba izmjerenih vremena T(n) (u s) za razna računala i razne varijante: Varijanta P Klamath BabyBlue ekran, n = disk, n = , n = , n = a0, n = a1, n = Grubo objašnjenje zelenih i crvenih rezultata za varijantu 1 (bez poziva za n = 0) ide malo kasnije! OAA 2017, 5. predavanje p. 23/68
24 FPC Tablica trajanja poteza za n = 30 Usporedba trajanja jednog poteza (u s) za razna računala i razne varijante: Varijanta P Klamath BabyBlue ekran, n = disk, n = , n = , n = a0, n = a1, n = OAA 2017, 5. predavanje p. 24/68
25 Objašnjenje rezultata za varijante 0 i 1 Free Pascal generira loš 32 bitni kôd. Izvršavanje tog kôda (i to kroz DOS-ekstender) je sve sporije na modernim 32 bitnim procesorima. Do Pentium 4 Northwood procesora ponašanje je zeleno, isplati se izbaciti pozive za n = 0. Od Pentium 4 Prescott procesora ponašanje je crveno, ne isplati se izbaciti pozive za n = 0. Napomena. Rezultate ne treba koristiti za usporedbu računala. Posebno to vrijedi za TP7, jer izvršavanje 16-bitnog kôda postaje sve sporije. OAA 2017, 5. predavanje p. 25/68
26 Hanojski tornjevi u C-u OAA 2017, 5. predavanje p. 26/68
27 Hanoi početak i štoperica #include <stdio.h> #include <time.h> /* Hanojski tornjevi s n diskova. Broji poteze i mjeri vrijeme. */ int nmax = 30; long int broj_poteza; double dsecnd (void) { return (double)( clock( ) ) / CLOCKS_PER_SEC; } OAA 2017, 5. predavanje p. 27/68
28 Hanoi funkcija prebaci jednog Funkcija Prebaci jednog samo zbraja poteze: void prebaci_jednog(int odakle, int kamo) { /* Umjesto pisanja poteza: printf(" %d -> %d\n", odakle, kamo); samo povecavamo globalni brojac poteza. */ ++broj_poteza; } return; OAA 2017, 5. predavanje p. 28/68
29 Hanoi opis varijanti potprograma Za razumno mjerenje vremena (i brzine) bez ispisa, testiramo 2 2 = 4 varijante funkcije Hanoi. Dubina rekurzije: varijanta 0 ima pozive za n = 0, koji ništa ne rade, varijanta 1 nema pozive za n = 0, s posebnim testom za n = 1. Broj argumenata: obična varijanta ima samo dvije igle kao argumente (odakle, kamo) i računa pomoćnu iglu, varijanta a ima sve tri igle kao argumente, bez računa. OAA 2017, 5. predavanje p. 29/68
30 Hanoi varijanta 0 void Hanoi(int n, int odakle, int kamo) { if (n > 0) { Hanoi(n - 1, odakle, 6 - odakle - kamo); prebaci_jednog(odakle, kamo); Hanoi(n - 1, 6 - odakle - kamo, kamo); } } return; OAA 2017, 5. predavanje p. 30/68
31 Hanoi varijanta 1 void Hanoi(int n, int odakle, int kamo) { if (n <= 1) prebaci_jednog(odakle, kamo); else { Hanoi(n - 1, odakle, 6 - odakle - kamo); prebaci_jednog(odakle, kamo); Hanoi(n - 1, 6 - odakle - kamo, kamo); } } return; OAA 2017, 5. predavanje p. 31/68
32 Hanoi varijanta a0 void Hanoi(int n, int odakle, int kamo, int pomocni) { if (n > 0) { Hanoi(n - 1, odakle, pomocni, kamo); prebaci_jednog(odakle, kamo); Hanoi(n - 1, pomocni, kamo, odakle); } } return; OAA 2017, 5. predavanje p. 32/68
33 Hanoi varijanta a1 void Hanoi(int n, int odakle, int kamo, int pomocni) { if (n <= 1) prebaci_jednog(odakle, kamo); else { Hanoi(n - 1, odakle, pomocni, kamo); prebaci_jednog(odakle, kamo); Hanoi(n - 1, pomocni, kamo, odakle); } } return; OAA 2017, 5. predavanje p. 33/68
34 Hanoi funkcija main int main(void) { int n; double t1, t2, time, c; /* Zaglavlje tablice. */ printf(" n Broj_Poteza(n) Vrijeme " "C = T(n) / (2^n - 1)\n"); printf(" n 2^n - 1 T(n)\n"); printf(" ======================================" "=====================\n"); OAA 2017, 5. predavanje p. 34/68
35 Hanoi funkcija main (nastavak) for (n = 1; n <= nmax; ++n) { /* Inicijalizacija brojaca za ovaj n. */ broj_poteza = 0; t1 = dsecnd( ); Hanojski_tornjevi(n, 1, 3); t2 = dsecnd( ); time = t2 - t1; if (broj_poteza > 0) c = time / broj_poteza; else c = 0.0; OAA 2017, 5. predavanje p. 35/68
36 Hanoi funkcija main (nastavak) } printf(" %2d %10ld %11.6f " "%15e\n", n, broj_poteza, time, c); } return 0; OAA 2017, 5. predavanje p. 36/68
37 Intel C (2007.g.) Izmjerena vremena T(n) Usporedba izmjerenih vremena T(n) (u s) za razna računala i razne varijante (Intel C 9.1, /O3): Varijanta Klamath5 Mali 3.0 Veliki P BabyBlue 0, n = , n = a0, n = a1, n = Na normalnom prevoditelju ipak dobivamo očekivano zeleno ponašanje rezultata za varijantu 1 (bez poziva za n = 0): ušteda u vremenu je skoro 50%! Tih 50% je i gornja granica za uštedu v. malo dalje. OAA 2017, 5. predavanje p. 37/68
38 Intel C (2007.g.) Trajanje poteza za n = 30 Usporedba trajanja jednog poteza (u s) za razna računala i razne varijante (Intel C 9.1, /O3): Varijanta Klamath5 Mali 3.0 Veliki P BabyBlue 0, n = , n = a0, n = a1, n = Razlika Mali, Veliki P na varijantama 0, 1 je misterij. Vjerojatni krivac: razlika u arhitekturi procesora (Northwood C, Prescott) i optimizacija te verzije compilera! OAA 2017, 5. predavanje p. 38/68
39 Intel C (2017.g.) Izmjerena vremena T(n) Usporedba izmjerenih vremena T(n) (u s) za jedno računalo Sasa PC = Intel Core i7 4770K (Haswell) na 3.5GHz, i razne varijante (Intel C 18.0, ia32 i x64, /fast): Varijanta Sasa PC ia32 Sasa PC x64 0, n = , n = a0, n = a1, n = Očekivano, varijanta 1 (bez poziva za n = 0) je bitno brža: ušteda u vremenu je 30 40%! OAA 2017, 5. predavanje p. 39/68
40 Intel C (2017.g.) Trajanje poteza za n = 30 Usporedba trajanja jednog poteza (u s) za jedno računalo (Sasa PC) i razne varijante (Intel C 18.0, ia32 i x64, /fast): Varijanta Sasa PC ia32 Sasa PC x64 0, n = , n = a0, n = a1, n = OAA 2017, 5. predavanje p. 40/68
41 Prošireni model složenosti OAA 2017, 5. predavanje p. 41/68
42 Hanojski tornjevi modeli složenosti Osnovni model složenosti mjeri samo broj poteza Pripadna rekurzija za t n je bila t n := broj poteza za n diskova. t n = { 0, za n = 0, 2t n 1 +1, za n > 0. Rješenje za broj poteza je t n = 2 n 1, za svaki n 0. U ovom modelu nema razlike izmedu varijanti 0 i 1. Model je prejednostavan brojimo samo poteze, bez poziva. OAA 2017, 5. predavanje p. 42/68
43 Mane osnovnog modela složenosti Taj model nije dobar za procjenu vremenske složenosti. Problem se vidi već u početnom uvjetu t 0 = 0. Po tom modelu, poziv s n = 0 uvijek traje nula vremena. No, znamo da to nije istina u varijanti 0, iako nema poteza. Treba nam model u kojem je t 0 > 0. Dovoljno je uzeti da je t 0 = const > 0. Zadatak. Probajte sami napraviti takav model, sa samo jednim parametrom konstantom const. Što je značenje tog parametra const? Testirajte ovaj model, tj. probajte eksperimentalno odrediti parametar const i pogledajte kolike su greške. OAA 2017, 5. predavanje p. 43/68
44 Prošireni model složenosti Još bolji model vremenske složenosti dobivamo tako da uvedemo dva parametra dvije konstante u model. Jedna od njih mjeri samo trajanje poteza, a druga mjeri trajanje preostatka svakog poziva rekurzivne funkcije Hanoi, tj. sve ostalo, bez poteza. Takav model precizno razlikuje poteze od poziva, i mora pokazati razliku izmedu varijanti 0 i 1. OAA 2017, 5. predavanje p. 44/68
45 Dvoparametarski model složenosti parametri Preciznije, neka je: c m = trajanje jednog poteza ( move ), tj. trajanje jednog poziva funkcije prebaci jednog. Što god smatrali potezom, sakriveno je u pozivu ove funkcije! c 0 = trajanje jednog poziva funkcije Hanoi, bez poteza i bez rekurzivnih poziva te funkcije. Dakle, c 0 uključuje poziv funkcije izvana, ulaz u funkciju (priprema argumenata na stack), testiranje vrijednosti od n u if naredbi, izlaz iz funkcije (iza if), što uključuje povratak i čišćenje argumenata sa stacka. OAA 2017, 5. predavanje p. 45/68
46 Vremenska složenost za obje varijante Varijanta 0 ima pozive funkcije Hanoi s argumentom n = 0. Rekurzija za pripadnu vremensku složenost t (0) n je c 0, za n = 0, t (0) n = c 0 +2t (0) n 1 +c m, za n > 0. Varijanta 1 nema pozive funkcije Hanoi s argumentom n = 0. Rekurzija za pripadnu vremensku složenost t (1) n je c 0 +c m, za n = 1, t (1) n = c 0 +2t (1) n 1 +c m, za n > 1. Uočimo da su rekurzije iste u obje varijante! OAA 2017, 5. predavanje p. 46/68
47 Poravnanje početka na n = 0 u varijanti 1 Za lakše rješavanje rekurzija, isplati se poravnati početak, tako da obje rekurzije počinju s n = 0. Stvarni početak varijante 1 je za n = 1, i glasi t (1) 1 = c 0 +c m. Kad umjetno vratimo drugu rekurziju za jedan član unatrag dobivamo da mora biti t (1) 1 = c 0 +c m = c 0 +2t (1) 0 +c m, t (1) 0 = 0. To savršeno odgovara pravom stanju stvari, jer poziva s n = 0 zaista nema, tj. trajanje im je nula! Točno to smo htjeli. OAA 2017, 5. predavanje p. 47/68
48 Zajednička rekurzija za vremensku složenost Rekurzija za vremensku složenost t n u obje varijante je ista t n = 2t n 1 +c 0 +c m, za n > 0, a početni uvjeti su različiti c 0, za varijantu 0, t 0 = 0, za varijantu 1. Rješenje. Nehomogeni član u rekurziji ima standardni oblik g(n) = b n p d (n), uz b = 1, p 0 (n) = c 0 +c m. OAA 2017, 5. predavanje p. 48/68
49 Rješenje rekurzije za vremensku složenost Karakteristična jednadžba homogenizirane rekurzije je (x 2)(x 1) = 0, s korijenima r 1 = 1 i r 2 = 2. Opće rješenje homogenizirane rekurzije je t n = c 1 1 n +c 2 2 n. Ovo rješenje uvrstimo u polaznu rekurziju, zato da dobijemo konstantu c 1 uz onaj dio rješenja koji odgovara nehomogenom članu. Izlazi c 1 +c 2 2 n = 2 ( c 1 +c 2 2 n 1) +c 0 +c m c 1 = 2c 1 +c 0 +c m c 1 = (c 0 +c m ). OAA 2017, 5. predavanje p. 49/68
50 Rješenja za vremensku složenost Dakle, opće rješenje polazne nehomogene rekurzije je t n = c 2 2 n (c 0 +c m ), n 0, a konstanta c 2 se računa iz početnog uvjeta t 0. Za varijantu 0, početni uvjet je t 0 = c 0, pa je t 0 = c (c 0 +c m ) = c 0 = c 2 = 2c 0 +c m. Za varijantu 1, početni uvjet je t 0 = 0, pa je t 0 = c (c 0 +c m ) = 0 = c 2 = c 0 +c m. OAA 2017, 5. predavanje p. 50/68
51 Rješenja za vremensku složenost (nastavak) Konačna rješenja za vremensku složenost obje varijante algoritma, uz polazne oznake, možemo napisati ovako: Varijanta 0 Varijanta 1 t (0) n = (2c 0 +c m ) 2 n (c 0 +c m ) = (c 0 +c m ) (2 n 1)+c 0 2 n, n 0. t (1) n = (c 0 +c m ) 2 n (c 0 +c m ) = (c 0 +c m ) (2 n 1), n 0. Drugo rješenje t (1) n je skalirani broj poteza. U pripadnoj rekurziji piše c 0 +c m, umjesto 1, a početni uvjeti su isti. OAA 2017, 5. predavanje p. 51/68
52 Vremenska složenost usporedba Uz pretpostavku da su konstante c 0 i c m jednake za obje varijante algoritma, što je skoro očito usporedbom tih algoritama, smijemo usporediti dobivena rješenja. Dobivamo da je Zaključak: t (0) n = (c 0 +c m ) (2 n 1)+c 0 2 n = t (1) n +c 0 2 n. trajanje varijante 0 je veće za c 0 2 n, što točno odgovara trajanju 2 n bespotrebnih rekurzivnih poziva s n = 0 diskova. Dakle, ovaj model, bar u teoriji, radi! OAA 2017, 5. predavanje p. 52/68
53 Korektnost modela za vremensku složenost Naravno, ovaj dvoparametarski model je korektan u praksi, ako i samo ako vrijede osnovne pretpostavke tog modela. Te pretpostavke treba provjeriti verificirati u praksi. Osnovna pretpostavka našeg modela je da su parametri c m i c 0 zaista konstante, tj. da ovi parametri ne ovise o broju diskova n. Sada, kad imamo izraze za vremensku složenost t n u obje varijante algoritma, to se lako može eksperimentalno provjeriti, tako da iskoristimo izmjerena vremena trajanja T(n). OAA 2017, 5. predavanje p. 53/68
54 Verifikacija modela za vremensku složenost No, i tu treba biti oprezan da ne tražimo previše. Za verifikaciju pretpostavki i modela striktno govoreći, trebalo bi eksperimentalno provjeriti dvije stvari. Prvo, jesu li c m i c 0 skoro konstante, gledano u funkciji od n, i to za svaku varijantu algoritma posebno. Zatim treba vidjeti dobivamo li u obje varijante približno iste vrijednosti za odgovarajuće konstante. To bi značilo da, na početku, svaka varijanta ima svoje parametre c m i c 0, a onda provjeravamo jesi li oni isti u raznim varijantama. Takav pristup ne valja dobivamo previše parametara. OAA 2017, 5. predavanje p. 54/68
55 Previše parametara za pouzdanu verifikaciju Za naše dvije varijante algoritma, imamo čak 4 parametra. To je previše, u smislu da ih je nemoguće pouzdano odrediti iz mjerenja. U čemu je problem? Kako bismo, za svaku pojedinu varijantu, provjerili jesu li pripadni c m i c 0 konstantni? Recimo, ovako: izmjerimo vremena T(n) za neke vrijednosti od n; postavimo odgovarajući model T(n) = t n, s dva nepoznata konstantna parametra, i parametre odredimo diskretnom metodom najmanjih kvadrata; ako su dobivene greške dovoljno male, možemo uzeti da su nadeni parametri zaista konstantni. OAA 2017, 5. predavanje p. 55/68
56 Tablica vremena za varijantu a0 Na primjer, za varijantu a0 (Intel C 9.1, BabyBlue računalo) dobivamo sljedeći izlaz: n 2 n 1 T(n) T(n)/(2 n 1) e e e e e e e e e e e e e 009 OAA 2017, 5. predavanje p. 56/68
57 Model složenosti za varijantu a0 Pripadni model vremenske složenosti za varijantu 0 je t (0) n = (2c 0 +c m ) 2 n (c 0 +c m ) = (c 0 +c m ) (2 n 1)+c 0 2 n, n 0. Iz ova dva zapisa odmah dobivamo dva različita modela za trajanje T 0 (n) razlika je samo u izboru funkcija baze. Model (a): T 0 (n) = a 1 2 n +a 2 1, s koeficijentima a 1 = 2c 0 +c m i a 2 = c 0 +c m. Model (b): T 0 (n) = b 1 (2 n 1)+b 2 2 n, s koeficijentima b 1 = c 0 +c m i b 2 = c 0. OAA 2017, 5. predavanje p. 57/68
58 Nestabilnost računanja dva parametra Oba modela su linearna i imaju dva nepoznata koeficijenta. Kad ih izračunamo, lako nademo parametre c 0 i c m za varijantu a0 (linearni sustav reda 2). Koeficijente u modelu računamo diskretnom metodom najmanjih kvadrata, iz tablice izmjerenih vremena. I tu je problem. Tablica je vrlo netočna za male vrijednosti n. Izmjerena vremena T(n) imaju neku točnost tek za n 23. U modelu (a), član a 2 1 ima utjecaja samo za male n, tj. koeficijent a 2 se ne može dobro odrediti iz mjerenja. U modelu (b), funkcije baze 2 n 1 i 2 n se iole razlikuju samo za male n. Inače su skoro linearno zavisne, pa b 1 i b 2 ne možemo nezavisno dobro odrediti. Dakle, dva koeficijenta su previše. Jedan bi prošao (v. iza). OAA 2017, 5. predavanje p. 58/68
59 Model složenosti za varijantu a1 Isti problem imamo i u varijanti 1. Tu se još bolje vidi! Model vremenske složenosti za varijantu 1 je t (1) n = (c 0 +c m ) 2 n (c 0 +c m ) = (c 0 +c m ) (2 n 1), n 0. Složenost ovisi samo o zbroju parametara c 0 i c m, tj. stvarno, imamo samo jedan parametar. Jedini razumni model za trajanje T 1 (n) je T 1 (n) = C 1 (2 n 1), s jednim koeficijentom C 1 = c 0 +c m. OAA 2017, 5. predavanje p. 59/68
60 Stvarna ideja dvoparametarskog modela Naš dvoparametarski model vremenske složenosti, s parametrima c m i c 0, smišljen je zato da pokaže razliku izmedu dviju varijanti 0 i 1, a ne zato da dobijemo precizniji model složenosti za svaku pojedinu varijantu. Dakle, na samom početku, u izvodu modela, koji je napravljen na osnovu obje varijante algoritma, pretpostavljamo da za obje varijante vrijede iste vrijednosti parametara c m i c 0. (Očito je da c m mora biti isti zovemo istu funkciju.) Zato, u verifikaciji, treba iskoristiti izmjerena vremena za obje varijante, da bismo odredili/provjerili te parametre c m i c 0. OAA 2017, 5. predavanje p. 60/68
61 Verifikacija modela za vremensku složenost Za dvije varijante algoritma sad imamo samo 2 parametra. Bitno: Njih je lako pouzdano odrediti i verificirati! Najlakši način za to je: za obje varijante algoritma uzmemo jednoparametarski model trajanja s jednim nepoznatim koeficijentom, koji dobro opisuje trajanje za velike n tamo gdje su izmjerene vrijednosti dovoljno točne. Taj model ne mora biti egzaktan, možemo koristiti i asimptotsko ponašanje vremenske složenosti za velike vrijednosti n. Kad odredimo ta dva koeficijenta, provjerimo njihovu konstantost (grešku modela) i nademo parametre c m i c 0. OAA 2017, 5. predavanje p. 61/68
62 Jednoparametarski modeli trajanja Za trajanje T 1 (n) varijante 1 već imamo takav model T 1 (n) = C 1 (2 n 1), s jednim koeficijentom C 1 = c 0 +c m. Ovaj model je egzaktan. Jednoparametarski model za trajanje T 0 (n) varijante 0, izlazi aproksimacijom iz modela vremenske složenosti t (0) n = (2c 0 +c m ) 2 n (c 0 +c m ) = (2c 0 +c m ) (2 n 1)+c 0, n 0. Za iole veći n, zadnji član c 0 postaje zanemariv, pa je T 0 (n) C 0 (2 n 1), s jednim koeficijentom C 0 = 2c 0 +c m. OAA 2017, 5. predavanje p. 62/68
63 Odredivanje parametara i verifikacija modela Koeficijente C 0 i C 1 možemo odrediti na dva načina. Dijeljenjem izmjerenog vremena i broja poteza, C i (n) = T i(n) 2 n 1, za svaki n u tablici za pojedinu varijantu i = 0,1. Tako dobivamo profil koeficijenta C i (n) u ovisnosti o n, odakle se lako vizuelno provjerava konstantnost. Usput, točno to je zadnji stupac izlaza u programima. Diskretnom metodom najmanjih kvadrata s jednim parametrom traženim koeficijentom, uz provjeru grešaka takve aproksimacije izmjerenih podataka. Probajte sami! OAA 2017, 5. predavanje p. 63/68
64 Primjer odredivanja parametara i verifikacije Primjer. Pogledajmo rezultate programa za varijante a0 i a1 (Intel C 9.1, BabyBlue), za n 25 (vrlo slično je za 0 i 1): n 2 n 1 T 0 (n) T 0 (n)/(2 n 1) T 1 (n) T 1 (n)/(2 n 1) e e e e e e e e e e e e 009 Vidimo da su koeficijenti C 0 (n) i C 1 (n) skoro konstantni i stabiliziraju se, kako n raste, približno na sljedeće vrijednosti C 0 = 2c 0 +c m , C 1 = c 0 +c m OAA 2017, 5. predavanje p. 64/68
65 Primjer odredivanja parametara i verifikacije Odavde dobivamo približne vrijednosti za parametre modela c s, c m s. Jedinice su sekunde parametri su trajanje poziva i poteza. Komentar. Naši potezi su jako brzi jedno povećanje globalnog brojača u funkciji prebaci jednog. Brzina približno odgovara frekvenciji računala (3.6 GHz). Jedan poziv traje 11 puta dulje. Zato je ušteda u varijanti 1 skoro 50% (c 0 prema 2c 0 +c m, uz mali c m ). Uz veću točnost štoperice (ili na sporijem računalu), dobili bismo veću točnost parametara. OAA 2017, 5. predavanje p. 65/68
66 Novi parametri (2017.g.) velike razlike!? Napomena. U novim testovim, na jednom računalu Sasa PC, Intel C 18.0, ia32 i x64, /fast, za odgovarajuće varijante algoritma (0 i 1, odnosno, a0 i a1) dobivamo sljedeće rezultate (sva vremena su u 10 9 s): Test \ Parametar C 0 C 1 c 0 c m ia32 (0 i 1) ia32 (a0 i a1) x64 (0 i 1) x64 (a0 i a1) Dobivamo ogromne razlike u trajanjima jednog poziva (c 0 ), odnosno, jednog poteza (c m ). OAA 2017, 5. predavanje p. 66/68
67 Asimptotski jednoparametarski modeli trajanja Napomena. Mogli smo koristiti i jednoparametarske modele na bazi asimptotskog ponašanja vremenske složenosti T 0 (n) C 0 2 n, T 1 (n) C 1 2 n, s istim značenjima koeficijenata C 0 i C 1. Dobivamo minijaturno veću grešku nego prije, zbog zamjene funkcije baze 2 n 1 2 n. OAA 2017, 5. predavanje p. 67/68
68 Završni komentar o modelu složenosti Završni komentar o modelu složenosti i parametrima. Za parametar c m zaista očekujemo da je isti u obje varijante, jer zovemo istu funkciju. Trajanje poziva parametar c 0, bi mogao, eventualno, biti različit, jer algoritmi ipak nisu sasvim isti. Tako bismo za dvije varijante dobili model s tri parametra, ali njih, opet, nije lako pouzdano odrediti! OAA 2017, 5. predavanje p. 68/68
Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr
Oblikovanje i analiza algoritama 4. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. predavanje p. 1/69 Sadržaj predavanja Složenost u praksi
ВишеProgramiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4
Programiranje 2 0. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/48 Sadržaj predavanja Ponavljanje onog dijela C-a koji
Више2015_k2_z12.dvi
OBLIKOVANJE I ANALIZA ALGORITAMA 2. kolokvij 27. 1. 2016. Skice rješenja prva dva zadatka 1. (20) Zadano je n poslova. Svaki posao je zadan kao vremenski interval realnih brojeva, P i = [p i,k i ],zai
ВишеUvod u računarstvo 2+2
Programiranje 2 doc.dr.sc. Goranka Nogo PMF Matematički odsjek, Zagreb Kontakt ured: 228, drugi kat e-mail: nogo@math.hr konzultacije: četvrtak, 12:00-14:00 petak, 11:00-12:00 neki drugi termin, uz prethodni
ВишеFunkcije predavač: Nadežda Jakšić
Funkcije predavač: Nadežda Jakšić funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno
ВишеMicrosoft PowerPoint - 03-Slozenost [Compatibility Mode]
Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба
ВишеProgramiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6
Programiranje 1 9. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/60 Sadržaj predavanja Osnovni algoritmi na cijelim brojevima:
ВишеProgramiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p
Programiranje IEEE prikaz brojeva sažetak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog 208, IEEE prikaz brojeva sažetak p. /4 Sadržaj predavanja IEEE standard
ВишеNumerička matematika 11. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb NumMat 2019, 11. p
Numerička matematika 11. predavanje dodatak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb NumMat 2019, 11. predavanje dodatak p. 1/46 Sadržaj predavanja dodatka
ВишеPASCAL UVOD 2 II razred gimnazije
PASCAL UVOD 2 II razred gimnazije Upis-ispis 1. Upis Read(a,b); --u jednom redu Readln(a,b); -- nakon upisa prelazi se u novi red 2. Ispis Write(a,b); -- u jednom redu Writeln(a,b); --nakon ispisa prelazi
ВишеPrimjena neodredenog integrala u inženjerstvu Matematika 2 Erna Begović Kovač, Literatura: I. Gusić, Lekcije iz Matematike 2
Primjena neodredenog integrala u inženjerstvu Matematika 2 Erna Begović Kovač, 2019. Literatura: I. Gusić, Lekcije iz Matematike 2 http://matematika.fkit.hr Uvod Ako su dvije veličine x i y povezane relacijom
ВишеFunkcije predavač: Nadežda Jakšić
Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa
ВишеProgramiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1
Programiranje 1 3. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/132 Sadržaj predavanja Osnovni tipovi podataka u računalu
ВишеProgramiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1
Programiranje 1 10. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1/95 Sadržaj predavanja Funkcije: Definicija funkcije.
ВишеMicrosoft Word - predavanje8
DERIVACIJA KOMPOZICIJE FUNKCIJA Ponekad je potrebno derivirati funkcije koje nisu jednostavne (složene su). Na primjer, funkcija sin2 je kompozicija funkcija sin (vanjska funkcija) i 2 (unutarnja funkcija).
ВишеProgramiranje 2 1. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 1. predavanje p. 1/7
Programiranje 2 1. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 1. predavanje p. 1/75 Dobar dan, dobro došli Prog2 2019, 1. predavanje
ВишеProgramiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni podsjetnik. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеUvod u računarstvo 2+2
Datoteke nastavak Funkcija fgets Funkcija koja učitava podatke iz datoteke, liniju po liniju, je char *fgets(char *str, int n, FILE *fp); gdje su str pokazivač na dio memorije (string) u koji će ulazna
ВишеProgramiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj
Programiranje 1 5. predavanje dodatak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanje dodatak p. 1/60 Sadržaj predavanja dodatka Primjeri
ВишеMicrosoft Word - 6ms001
Zadatak 001 (Anela, ekonomska škola) Riješi sustav jednadžbi: 5 z = 0 + + z = 14 4 + + z = 16 Rješenje 001 Sustav rješavamo Gaussovom metodom eliminacije (isključivanja). Gaussova metoda provodi se pomoću
ВишеPowerPoint Presentation
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Tok izvršavanja programa Tok izvršavanja programa Dosadašnji kod se izvršavao praktično linearno. Nije postojala nikakva uslovna ili brojačka
ВишеProgramiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava
Programiranje 1 3. predavanje prošireno Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predavanje prošireno p. 1/120 Sadržaj proširenog predavanja
ВишеPROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije
PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo
ВишеAlgoritmi SŠ P1
Županijsko natjecanje iz informatike Srednja škola 9. veljače 2018. RJEŠENJA ZADATAKA Napomena: kodovi za većinu opisanih algoritama dani su u Pythonu radi jednostavnosti i lakše čitljivosti. Zbog prirode
ВишеPRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste
PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)
Више(Microsoft Word - Rje\232enja zadataka)
1. D. Svedimo sve razlomke na jedinstveni zajednički nazivnik. Lako provjeravamo da vrijede rastavi: 85 = 17 5, 187 = 17 11, 170 = 17 10, pa je zajednički nazivnik svih razlomaka jednak Tako sada imamo:
ВишеProgramiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеRačunarski praktikum I - Vježbe 01 - Uvod
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 01 - Uvod v2018/2019. Sastavio: Zvonimir Bujanović Gradivo i način polaganja Gradivo: osnove jezika
Више(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)
. B. Zapišimo zadane brojeve u obliku beskonačno periodičnih decimalnih brojeva: 3 4 = 0.7, = 0.36. Prvi od navedenih četiriju brojeva je manji od 3 4, dok su treći i četvrti veći od. Jedini broj koji
Више23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi
3. siječnja 0. od 3:00 do 4:00 RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovitelji Sadržaj Zadaci. 4.... Zadaci 5. 0.... 3 od 8 Zadaci. 4. U sljedećim pitanjima na pitanja odgovaraš upisivanjem
ВишеRačunarski praktikum I - Vježbe 09 - this, static
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 09 - this, static v2018/2019. Sastavio: Zvonimir Bujanović Pokazivač this Kako funkcija članica
Више(Microsoft Word - Dr\236avna matura - svibanj osnovna razina - rje\232enja)
I. ZADATCI VIŠESTRUKOGA IZBORA 1. A. Svih pet zadanih razlomaka svedemo na najmanji zajednički nazivnik. Taj nazivnik je najmanji zajednički višekratnik brojeva i 3, tj. NZV(, 3) = 6. Dobijemo: 15 1, 6
ВишеUvod u računarstvo 2+2
Pokazivači Pointeri Definicija pokazivača Pokazivač na tip je varijabla koja sadrži adresu varijable tipa tip. Definicija pokazivača: mem_klasa tip * p_var; Primjer: static int * pi; double *px; char*
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]
Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija
ВишеUvod u obične diferencijalne jednadžbe Metoda separacije varijabli Obične diferencijalne jednadžbe Franka Miriam Brückler
Obične diferencijalne jednadžbe Franka Miriam Brückler Primjer Deriviranje po x je linearan operator d dx kojemu recimo kao domenu i kodomenu uzmemo (beskonačnodimenzionalni) vektorski prostor funkcija
ВишеAlgebarski izrazi (4. dio)
Dodatna nastava iz matematike 8. razred Algebarski izrazi (4. dio) Aleksandra-Maria Vuković OŠ Gornji Mihaljevec amvukovic@gmail.com 12/21/2010 SADRŽAJ 7. KVADRATNI TRINOM... 3 [ Primjer 18. Faktorizacija
ВишеMicrosoft Word - AIDA2kolokvijumRsmerResenja.doc
Konstrukcija i analiza algoritama 2 (prvi kolokvijum, smer R) 1. a) Konstruisati AVL stablo od brojeva 100, 132, 134, 170, 180, 112, 188, 184, 181, 165 (2 poena) b) Konkatenacija je operacija nad dva skupa
ВишеUvod u računarstvo 2+2
Ulaz i izlaz podataka Ulaz i izlaz podataka Nakon odslušanog bit ćete u stanju: navesti sintaksu naredbi za unos/ispis znakova znakovnih nizova cijelih brojeva realnih brojeva jednostruke i dvostruke preciznosti
ВишеKonstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra
Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar 2016 1 Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova strategija rekurzivno razbija problem na 2 ili više potproblema
ВишеRazvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić
Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić projektni zadatak projektovanje programa (algoritmi) pisanje programskog koda, izvorni kod,
ВишеLogicko projektovanje racunarskih sistema I
PRIMERI SA PREDAVANJA 17 Beta asembler Zadatak 1. Posmatrajmo sledeću funkciju napisanu u programskom jeziku C, za računanje najvećeg zajedničkog delioca dva pozitivna cela broja: int gcd(int a, int b)
Више(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)
1. C. Imamo redom: I. ZADATCI VIŠESTRUKOGA IZBORA 9 + 7 6 9 + 4 51 = = = 5.1 18 4 18 8 10. B. Pomoću kalkulatora nalazimo 10 1.5 = 63.45553. Četvrta decimala je očito jednaka 5, pa se zaokruživanje vrši
ВишеMicrosoft Word - 15ms261
Zadatak 6 (Mirko, elektrotehnička škola) Rješenje 6 Odredite sup S, inf S, ma S i min S u skupu R ako je S = { R } a b = a a b + b a b, c < 0 a c b c. ( ), : 5. Skratiti razlomak znači brojnik i nazivnik
ВишеRačunarski praktikum I - Vježbe 03 - Implementacija strukture string
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 03 - Implementacija strukture string v2018/2019. Sastavio: Zvonimir Bujanović Stringovi u C-u String
Више7. predavanje Vladimir Dananić 14. studenoga Vladimir Dananić () 7. predavanje 14. studenoga / 16
7. predavanje Vladimir Dananić 14. studenoga 2011. Vladimir Dananić () 7. predavanje 14. studenoga 2011. 1 / 16 Sadržaj 1 Operator kutne količine gibanja 2 3 Zadatci Vladimir Dananić () 7. predavanje 14.
ВишеRačunarski praktikum I - Vježbe 07 - Podstrukture, const, reference
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 07 - Podstrukture, const, reference v2018/2019. Sastavio: Zvonimir Bujanović Podstrukture Član
ВишеNastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit 1.2. Brojevi zapisan
Nastavna cjelina: 1. Osnove IKT-a Kataloška tema: 1.6. Paralelni i slijedni ulazno-izlazni pristupi računala 1.7. Svojstva računala Unutar računala podatci su prikazani električnim digitalnim signalima
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеMatematika 1 - izborna
3.3. NELINEARNE DIOFANTSKE JEDNADŽBE Navest ćemo sada neke metode rješavanja diofantskih jednadžbi koje su drugog i viših stupnjeva. Sve su te metode zapravo posebni oblici jedne opće metode, koja se naziva
ВишеProgramski jezik C
Pojam funkcije Deklaracija i definicija funcije Poziv funkcije Memorijske klase promjenljivih Primjeri. Za kompajliranje koda koristen DEV-C++ 4.9.9.2 Compiler!!!! Moze is koristiti I bilo koji drugi standardni
ВишеMicrosoft Word - IZVODI ZADACI _2.deo_
IZVODI ZADACI ( II deo U ovom del ćemo pokšati da vam objasnimo traženje izvoda složenih fnkcija. Prvo da razjasnimo koja je fnkcija složena? Pa, najprostije rečeno, to je svaka fnkcija koje nema tablici
ВишеNumeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs
Numeričke metode u fizici, Projektni zadataci 8./9.. Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrsta životinja koje se nadmeću za istu hranu, dx ( dt = x x ) xy
ВишеMaksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp
Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp PMF-MO Seminar iz kolegija Oblikovanje i analiza algoritama 22.1.2019. mrežu - Ford-Fulkerson, Edmonds-Karp 22.1.2019. 1 / 35 Uvod - definicije
ВишеMicrosoft Word - 12ms121
Zadatak (Goran, gimnazija) Odredi skup rješenja jednadžbe = Rješenje α = α c osα, a < b < c a + < b + < c +. na segmentu [ ], 6. / = = = supstitucija t = + k, k Z = t = = t t = + k, k Z t = + k. t = +
ВишеMicrosoft PowerPoint - Datoteke [Compatibility Mode]
Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније
Више1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p
1 Rezultati i uvidi u kolokvije: Rezultati u petak 3.5. navečer na webu a uvidi u ponedjeljak 6.5. u 16 sati. Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje te službeni podsjetnik.
ВишеSadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor
Sadržaj Diskretan slučajan vektor Definicija slučajnog vektora 2 Diskretan slučajan vektor Funkcija distribucije slučajnog vektora 2 4 Nezavisnost slučajnih vektora 2 5 Očekivanje slučajnog vektora 6 Kovarijanca
Више6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe
6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju
Више(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)
1. C. Imamo redom: I. ZADATCI VIŠESTRUKOGA IZBORA. B. Imamo redom: 0.3 0. 8 7 8 19 ( 3) 4 : = 9 4 = 9 4 = 9 = =. 0. 0.3 3 3 3 3 0 1 3 + 1 + 4 8 5 5 = = = = = = 0 1 3 0 1 3 0 1+ 3 ( : ) ( : ) 5 5 4 0 3.
Више070-ALIP2-udzbenik.indb
0. U uvodnom ćemo poglavlju ponoviti osnove programskog jezika C s kojima smo se susreli u. razredu. U kratkom pregledu navedeni su operatori (aritmetički, relacijski i logički), neke od funkcija iz biblioteka
ВишеSveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o
Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske optike (lom i refleksija svjetlosti). Određivanje žarišne daljine tanke leće Besselovom metodom. Teorijski dio Zrcala i leće su objekti
ВишеSveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Određivanje relativne permitivnosti sredstva Cilj vježbe Određivanje r
Sveučilište J.J. Strossmayera Fizika 2 Predložak za laboratorijske vježbe Cilj vježbe Određivanje relativne permitivnosti stakla, plastike, papira i zraka mjerenjem kapaciteta pločastog kondenzatora U-I
ВишеInterpretacija čuda pomoću teorije determinističkog kaosa (Jerko Kolovrat, KBF Split; Marija Todorić, PMF Zagreb) Postoje razne teme koje zaokupljaju
Interpretacija čuda pomoću teorije determinističkog kaosa (Jerko Kolovrat, KBF Split; Marija Todorić, PMF Zagreb) Postoje razne teme koje zaokupljaju ljudski um i tjeraju ga da prema njima zauzme stav
ВишеOD MONOKRISTALNIH ELEKTRODA DO MODELÂ POVRŠINSKIH REAKCIJA
UVOD U PRAKTIKUM FIZIKALNE KEMIJE TIN KLAČIĆ, mag. chem. Zavod za fizikalnu kemiju, 2. kat (soba 219) Kemijski odsjek Prirodoslovno-matematički fakultet Sveučilište u Zagrebu e-mail: tklacic@chem.pmf.hr
ВишеXIII. Hrvatski simpozij o nastavi fizike Istraživački usmjerena nastava fizike na Bungee jumping primjeru temeljena na analizi video snimke Berti Erja
Istraživački usmjerena nastava fizike na Bungee jumping primjeru temeljena na analizi video snimke Berti Erjavec Institut za fiziku, Zagreb Sažetak. Istraživački usmjerena nastava fizike ima veću učinkovitost
ВишеMicrosoft PowerPoint - Bitovi [Compatibility Mode]
Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)
ВишеStručno usavršavanje
TOPLINSKI MOSTOVI IZRAČUN PO HRN EN ISO 14683 U organizaciji: TEHNIČKI PROPIS O RACIONALNOJ UPORABI ENERGIJE I TOPLINSKOJ ZAŠTITI U ZGRADAMA (NN 128/15, 70/18, 73/18, 86/18) dalje skraćeno TP Čl. 4. 39.
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]
Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева
Више8 2 upiti_izvjesca.indd
1 2. Baze podataka Upiti i izvješća baze podataka Na početku cjeline o bazama podataka napravili ste plošnu bazu podataka o natjecanjima učenika. Sada ćete izraditi relacijsku bazu u Accessu o učenicima
ВишеSVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.
SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.dr.sc. Zvonko Iljazović Zagreb, rujan, 2015. Ovaj diplomski
ВишеPLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred)
PLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred) Učenik prvog razreda treba ostvarit sljedeće minimalne standarde 1. SKUP REALNIH BROJEVA -razlikovati brojevne skupove i njihove
ВишеMicrosoft Word - ASIMPTOTE FUNKCIJA.doc
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
ВишеSkalarne funkcije više varijabli Parcijalne derivacije Skalarne funkcije više varijabli i parcijalne derivacije Franka Miriam Brückler
i parcijalne derivacije Franka Miriam Brückler Jednadžba stanja idealnog plina uz p = nrt V f (x, y, z) = xy z x = n mol, y = T K, z = V L, f == p Pa. Pritom je kodomena od f skup R, a domena je Jednadžba
ВишеMicrosoft Word - V03-Prelijevanje.doc
Praktikum iz hidraulike Str. 3-1 III vježba Prelijevanje preko širokog praga i preljeva praktičnog profila Mali stakleni žlijeb je izrađen za potrebe mjerenja pojedinih hidrauličkih parametara tečenja
Више(Microsoft Word - Dr\236avna matura - rujan osnovna razina - rje\232enja)
I. ZADATCI VIŠESTRUKOGA IZBORA. B. Broj je cijeli broj, tj. pripada skupu cijelih brojeva Z. Skup cijelih brojeva Z je pravi podskup skupa racionalnih brojeva Q, pa je i racionalan broj. 9 4 je očito broj
ВишеKonstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun
Konstrukcija i analiza algoritama Nina Radojičić februar 2018. 1 Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne funkcije od argumenta n iz skupa N prirodnih brojeva.
ВишеMy_P_Trigo_Zbir_Free
Штa треба знати пре почетка решавања задатака? ТРИГОНОМЕТРИЈА Ниво - Основне формуле које произилазе из дефиниција тригонометријских функција Тригонометријске функције се дефинишу у правоуглом троуглу
Вишеatka 26 (2017./2018.) br. 102 NEKE VRSTE DOKAZA U ČAROBMATICI Jadranka Delač-Klepac, Zagreb jednoj smo priči spomenuli kako je važno znati postavljati
NEKE VRSTE DOKAZA U ČAROBMATICI Jadranka Delač-Klepac, Zagreb jednoj smo priči spomenuli kako je važno znati postavljati prava pitanja. U Jednako je važno znati pronaći odgovore na postavljena pitanja,
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
Више07_PJISP_II_Predavanja
Rekurzija i rekurzivne funkcije Informacioni inženjering 1 Rekurzija Rekurzija nastaje kada se pojam definiše pomoću sebe samog Javlja se u različitim oblastima, od lingvistike i logike, preko matematike
ВишеCelobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica
Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da
ВишеJMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.
MJERA I INTEGRAL završni ispit 6. srpnja 208. (Knjige bilježnice dodatni papiri i kalkulatori nisu dozvoljeni!). (8 bodova) Kao na predavanjima za d N sa P d : a b ] a d b d ] : a i b i R a i b i za i
ВишеMicrosoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 03 Zvonimir Bujanović Slaven Kožić Vinko Petričević Mrežno programiranje: SocketAPI Programiramo u aplikacijskom sloju, za ostale se brinu
ВишеRačunarski praktikum I - Vježbe 11 - Funktori
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 11 - Funktori v2018/2019. Sastavio: Zvonimir Bujanović Funkcijski objekti (funktori) Objekt klase
ВишеHej hej bojiš se matematike? Ma nema potrebe! Dobra priprema je pola obavljenog posla, a da bi bio izvrsno pripremljen tu uskačemo mi iz Štreberaja. D
Hej hej bojiš se matematike? Ma nema potrebe! Dobra priprema je pola obavljenog posla, a da bi bio izvrsno pripremljen tu uskačemo mi iz Štreberaja. Donosimo ti primjere ispita iz matematike, s rješenjima.
ВишеTest ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime
Test ispravio: () () Ukupan broj bodova:. veljače 04. od 3:00 do 4:00 Ime i prezime Razred Škola Županija Mentor Sadržaj Upute za natjecatelje... Zadaci... Upute za natjecatelje Vrijeme pisanja: 60 minuta
ВишеP1.1 Analiza efikasnosti algoritama 1
Analiza efikasnosti algoritama I Asimptotske notacije Master metoda (teorema) 1 Asimptotske notacije (1/2) Služe za opis vremena izvršenja algoritma T(n) gde je n N veličina ulaznih podataka npr. br. elemenata
ВишеMicrosoft Word - DIOFANTSKE JEDNADŽBE ZADACI docx
DIOFANTSKE JEDNADŽBE Jednadžba s dvjema ili više nepoznanica čiji su koeficijenti i rješenja cijeli brojevi naziva se DIOFANTSKA JEDNADŽBA. Linearne diofantske jednadžbe 3" + 7% 8 = 0 nehomogena (s dvjema
Више(Microsoft Word - Dr\236avna matura - kolovoz osnovna razina - rje\232enja)
I. ZADATCI VIŠESTRUKOGA IZBORA. C. Zadani broj očito nije niti prirodan broj niti cijeli broj. Budući da je 3 78 3. = =, 00 5 zadani broj možemo zapisati u obliku razlomka kojemu je brojnik cijeli broj
ВишеLogičke izjave i logičke funkcije
Logičke izjave i logičke funkcije Građa računala, prijenos podataka u računalu Što su logičke izjave? Logička izjava je tvrdnja koja može biti istinita (True) ili lažna (False). Ako je u logičkoj izjavi
ВишеProgramiranje 1
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina PROGRAMIRANJE 1 Studij: Preddiplomski studij informatike (jednopredmetni) Godina i semestar: 1. godina,
ВишеZadatak 1 U tablici se nalaze podaci dobiveni odredivanjem bilirubina u 24 uzoraka seruma (µmol/l):
Zadatak 1 U tablici se nalaze podaci dobiveni odredivanjem bilirubina u 4 uzoraka seruma (µmol/l): 1.8 13.8 15.9 14.7 13.7 14.7 13.5 1.4 13 14.4 15 13.1 13. 15.1 13.3 14.4 1.4 15.3 13.4 15.7 15.1 14.5
Више1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.
1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K. Elementi a k K su koeficijenti polinoma P (x). Ako
Више(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)
1. D. Prirodni brojevi su svi cijeli brojevi strogo veći od nule. je strogo negativan cijeli broj, pa nije prirodan broj. 14 je racionalan broj koji nije cijeli broj. Podijelimo li 14 s 5, dobit ćemo.8,
ВишеMicrosoft Word - Rjesenja zadataka
1. C. Svi elementi zadanoga intervala su realni brojevi strogo veći od 4 i strogo manji od. Brojevi i 5 nisu strogo veći od 4, a 1 nije strogo manji od. Jedino je broj 3 strogo veći od 4 i strogo manji
ВишеDržavna matura iz informatike
DRŽAVNA MATURA IZ INFORMATIKE U ŠK. GOD. 2013./14. 2016./17. SADRŽAJ Osnovne informacije o ispitu iz informatike Područja ispitivanja Pragovi prolaznosti u 2014./15. Primjeri zadataka po područjima ispitivanja
ВишеMicrosoft PowerPoint - OOPpredavanja05 [Compatibility Mode]
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni
Више(Microsoft Word - Dr\236avna matura - kolovoz osnovna razina - rje\232enja)
5 5: 5 5. B. Broj.5 možemo zapisati u obliku = =, a taj broj nije cijeli broj. 0 0 : 5 Broj 5 je iracionalan broj, pa taj broj nije cijeli broj. Broj 5 je racionalan broj koji nije cijeli broj jer broj
ВишеPripreme 2016 Indukcija Grgur Valentić lipanj Zadaci su skupljeni s dva predavanja na istu temu, za učenike od prvog do trećeg razreda i za MEMO
Pripreme 016 Indukcija Grgur Valentić lipanj 016. Zadaci su skupljeni s dva predavanja na istu temu, za učenike od prvog do trećeg razreda i za MEMO kandidate. Zato su zadaci podjeljeni u odlomka. U uvodu
Више