B j k, gde je j neki broj između 1 i n, a k prirodan broj. Ovom komandom se

Σχετικά έγγραφα
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

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

Zavrxni ispit iz Matematiqke analize 1

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

3.1 Granična vrednost funkcije u tački

Elementi spektralne teorije matrica

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

Ministarstvo prosvete i sporta Republike Srbije Druxtvo matematiqara Srbije Prvi razred A kategorija

Zadaci iz trigonometrije za seminar

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

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

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

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

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

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

Osnovne teoreme diferencijalnog računa

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

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

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

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Polinomske jednaqine

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

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

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

Operacije s matricama

ELEKTROTEHNIČKI ODJEL

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

18. listopada listopada / 13

Teorijske osnove informatike 1

Dvanaesti praktikum iz Analize 1

Riješeni zadaci: Nizovi realnih brojeva

41. Jednačine koje se svode na kvadratne

Računarska grafika. Rasterizacija linije

Ispitivanje toka i skiciranje grafika funkcija

SISTEMI NELINEARNIH JEDNAČINA

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

Ministarstvo prosvete i sporta Republike Srbije Druxtvo matematiqara Srbije OPXTINSKO TAKMIQENjE IZ MATEMATIKE Prvi razred A kategorija

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

7 Algebarske jednadžbe

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

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

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

TRIGONOMETRIJA TROKUTA

APROKSIMACIJA FUNKCIJA

1 Pojam funkcije. f(x)

numeričkih deskriptivnih mera.

Glava 1. Realne funkcije realne promen ive. 1.1 Elementarne funkcije

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

5. Karakteristične funkcije

POLINOMI I RACIONALNE FUNKCIJE Nastava u Matematiqkoj gimnaziji, Vladimir Balti

Testiranje statistiqkih hipoteza

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

Matematika 1 - vježbe. 11. prosinca 2015.

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

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

STATISTIKA. Miroslav M. Risti 2008/2009. Katedra za Matematiku Prirodno-matematiqki fakultet Univerzitet u Nixu

Dvostruko prebrojavanje prva-4 verzija:

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

Uvod u teoriju brojeva

Linearna algebra 2 prvi kolokvij,

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

Računarska grafika. Rasterizacija linije

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

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

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

I Pismeni ispit iz matematike 1 I

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

5 Ispitivanje funkcija

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

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

RIJEŠENI ZADACI I TEORIJA IZ

Druxtvo matematiqara Srbije OPXTINSKO TAKMIQENjE IZ MATEMATIKE Prvi razred A kategorija. f(x + 1) x f(x) + 1.

( , 2. kolokvij)

IZVODI ZADACI (I deo)

A Pismeni ispit iz DMS-a, A

Matematička analiza 1 dodatni zadaci

Poglavlje 7. Blok dijagrami diskretnih sistema

Obrada signala

Prvi pismeni zadatak iz Analize sa algebrom novembar Ispitati znak funkcije f(x) = tgx x x3. 2. Naći graničnu vrednost lim x a

Druxtvo matematiqara Srbije OPXTINSKO TAKMIQENjE IZ MATEMATIKE Prvi razred A kategorija. imaju istu vrednost.

Elektrotehnički fakultet univerziteta u Beogradu 17.maj Odsek za Softversko inžinjerstvo

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

Eliminacijski zadatak iz Matematike 1 za kemičare

Ministarstvo prosvete, nauke i tehnoloxkog razvoja Druxtvo matematiqara Srbije OPXTINSKO TAKMIQENjE IZ MATEMATIKE UQENIKA SREDNjIH XKOLA Rexenja zadataka

1 Promjena baze vektora

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

III VEŽBA: FURIJEOVI REDOVI

Linearna algebra 2 prvi kolokvij,

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Seminar Druxtva matematiqara Srbije, Beograd, Polinomi u nastavi matematike u osnovnoj i sredƭoj xkoli

Dijagonalizacija operatora

Ministarstvo prosvete, nauke i tehnoloxkog razvoja Druxtvo matematiqara Srbije OPXTINSKO TAKMIQENjE IZ MATEMATIKE UQENIKA SREDNjIH XKOLA Rexenja zadataka

Ovo nam govori da funkcija nije ni parna ni neparna, odnosno da nije simetrična ni u odnosu na y osu ni u odnosu na

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

VEROVATNO A I STATISTIKA A - TEST 1 9. NOVEMBAR 2013.

ALGEBRA 1. Grupe. Konaqno generisane Abelove grupe. Zoran Petrovi 11. i 18. decembar ρ = 0. nρ = 0

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

INTELIGENTNO UPRAVLJANJE

radni nerecenzirani materijal za predavanja

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

Transcript:

NASTAVA RAQUNARSTVA Dr Dragan Uroxevi PRIMENA KUMULATIVNIH SUMA 1. Motivacije Pretpostavimo da treba da rexite slede i problem. Neka se na poljima numerisanim brojevima od 1 do n (5 n 10 6 ) mogu nalaziti neki predmeti. Na polja koja su u poqetnom trenutku prazna, mogu se dodavati, ali i sa njih uklanjati (ako su neprazna) predmeti. Vax program treba da proqita i izvrxi niz komandi slede eg oblika: D j k, gde je j neki broj između 1 i n, a k prirodan broj. Ovom komandom se na polje sa rednim brojem j dodaje k predmeta. B j k, gde je j neki broj između 1 i n, a k prirodan broj. Ovom komandom se sa polja sa rednim brojem j uklanja k predmeta. Pretpostavka je da na tom polju ima bar k predmeta. P j 1 j 2, gde je 1 j 1 j 2 n. Ovom komandom se od vas zahteva da odgovorite koliko ukupno ima predmeta na poljima j 1, j 1 + 1, j 1 + 2,..., j 2. K. Ovom komandom se prekida izvrxavanje vaxeg programa. Na prvi pogled radi se o jednostavnom zadatku. Potrebno je definisati niz sa odgovaraju im brojem elemenata, tj. ukupan broj elemenata niza je jednak broju polja. Elementi niza sadrжe informacije o broju predmeta na odgovaraju im poljima. Komande za dodavanje i uklanjanje predmeta se realizuju tako xto se odgovaraju i element niza (tj. element niza koji odgovara tom zadatom polju) uve a ili umanji za odgovaraju u vrednost. Komanda za određivanje ukupnog broja predmeta na zadatom skupu polja se realizuje tako xto se saberu vrednosti elemenata niza koji odgovaraju tim poljima. Prema tome, komande za dodavanje i izbacivanje predmeta su realizovane vrlo efikasno (jedno sabiranje ili jedno oduzimanje), ali komanda za prebrajanje i nije efikasna (potrebno je izvrxiti sabiranje nekih elemenata niza). Zakljuqujemo da su nam komande za prebrajanje kritiqne za izvrxavanje programa i da e broj tih komandi odrediti karakteristike programa. Za oqekivati je da e tih komandi biti dosta i da e zahtevati sabiranje velikog broja elemenata. Jedan od naqina da ubrzamo određivanje zbira uzastopnih elemenata je korix enje slede e qinjenice: a i + a i+1 + + a j 1 + a j = (a 1 + a 2 + + a j 1 + a j ) (a 1 + a 2 + + a i 1 ).

Primena kumulativnih suma 43 Ako sa s i oznaqimo zbir prvih i elemenata niza a, tj. s i = a 1 + a 2 + + a i, onda e vaжiti a i + a i+1 + + a j 1 + a j = s j s i 1. Znaqi, zbir raqunamo u konstantnom vremenu jednim oduzimanjem. Zbirovi s i se obiqno nazivaju parcijalne sume elemenata niza a. Međutim, problem je samo prividno rexen. Nije texko primetiti da imamo vixe izraqunavanja pri dodavanju novih premeta na pojedina mesta (tj. pri uve avanju pojedinih elemenata niza). Element a i uqestvuje u parcijalnim sumama s i, s i+1,..., s n. Prema tome, svaka promena elementa a i dovodi do odgovaraju ih promena u navedenim parcijalnim sumama, tako da moraju biti aжurirane. Sliqno se dexava i pri uklanjanju predmeta sa pojedinih polja. 2. Kumulativne sume Ako je n prirodni broj, oznaqimo sa r(n) najve i stepen broja 2 koji je delilac broja n: r(n) = max{2 k : 2 k n}. Lako se zakljuquje da je r(n r(n)) > r(n). Ako je r(n) = 2 k, onda je n = q 2 k, gde je q neparan broj. U suprotnom bi bilo n = q 2 k = 2q 1 2 k = q 1 2 k+1, tj. bilo bi n deljivo sa 2 k+1. Zbog toga je n r(n) = q 2 k 2 k = (q 1) 2 k, i poxto je q 1 paran to je n r(n) deljivo bar sa 2 k+1, te je r(n r(n)) 2 k+1. Ako formiramo niz x na slede i naqin: onda e vaжiti: x 0 = n, x i+1 = x i r(x i ), svaki element niza x je nenegativan (jer je r(x i ) x i, pa je x i r(x i ) 0), niz x i je monotono opadaju i, zbog toga postoji element x k qija je vrednost nula. Lako se proverava da je a ako se stavi da je i = k, onda x i = x 0 r(x 0 ) r(x 1 ) r(x i 1 ), x 0 = n = r(x 0 ) + r(x 1 ) + + r(x k 1 ). Ako bismo formirali niz t tako da je t n jednako zbiru r(n) uzastopnih elemenata niza a, gde je poslednji a n, onda bi parcijalnu sumu s n mogli relativno lako odrediti. Ako definixemo niz x, kao u prethodnom izlaganju, onda e: element t x0 biti zbir r(x 0 ) uzastopnih elemenata niza a, gde je indeks poslednjeg x 0, pa je indeks prvog x 0 r(x 0 ) + 1 = x 1 + 1: t x0 = a x1+1 + a x1+2 + a x0

44 D. Uroxevi element t x1 biti zbir r(x 1 ) uzastopnih elemenata niza a, gde je indeks poslednjeg x 1, pa je indeks prvog x 1 r(x 1 ) + 1 = x 2 + 1: t x1 = a x2 +1 + a x2 +2 + a x1 element t xk 1 biti zbir r(x k 1 ) uzastopnih elemenata niza a, gde je indeks poslednjeg x k 1, pa je indeks prvog x k 1 r(x k 1 ) + 1 = x k + 1 = 1: Lako se proverava da je t xk 1 = a 1 + a 2 + a xk 1. t xk 1 + t xk 2 + + t x1 = a 1 + a 2 + + a n = s n. Pod pretpostavkom da su elementi niza t izraqunati, funkciju za određivanje parcijalne sume prvih n elemenata niza a moжemo zapisati na slede i naqin (napomenimo da indeksiranje elemenata nizova ide od 1): ParcSuma(n, t) 1 k 1 2 rs 0; 3 while n 0 do 4 if odd(n div k) then 5 rs rs + t[n]; 6 n n k; 7 k 2 k; 8 return s Primetimo da broj izvrxavanja while petlje nije ve i od log 2 n. Naime, u svakom prolazu kroz petlju broj k se udvostruqava, a njegova vrednost ne moжe postati ve a od n. Ovakvi zbirovi nose naziv kumulativne sume i oqigledno omogu avaju jednostavnije izraqunavanje kako parcijalnih suma tako i suma proizvoljnog broja uzastopnih elemenata niza. No da bismo mogli izraqunati parcijalne sume, moraju i elementi niza t biti uvek aжurni. Xta se dexava kada se promeni element a n za broj? Oqigledno se za menjaju neki elementi niza t. Da vidimo koji su to elementi. Za poqetak, ako je 2 k n, onda se a n nalazi među prvih 2 k elemenata niza a pa uqestvuje u zbiru t 2 k i zato taj zbir treba aжurirati. Ako je 2 k < n, onda moжemo odrediti koliqnik q = n 1 i tada je q 2 k + 1 n (q + 1) 2 k. 2 k Element t (q+1) 2 k sadrжi zbir 2 k poslednjih elemenata niza a, a među njima je i a n, ali samo ako je q + 1 neparan broj (jer je tada r((q + 1) 2 k ) = 2 k ). Ovakav postupak izraqunavanja se moжe primeniti i onda kada je 2 k n. Naime, tada je n 1 < 2 k pa je onda q = n 1 = 0 te je q + 1 = 1 tako da e biti aжuriran 2 k element t 2 k. Pseudokod za aжuriranje elemenata niza t (sa n elemenata), nakon promene elementa a m za vrednost se moжe zapisati na slede i naqin:

Primena kumulativnih suma 45 AzurirajKS(n, m, Delta, t) 1 m1 m 1; 2 k 1 3 while k n do 4 q m1 div k 5 if odd(q + 1) then 6 t[(q + 1) k] t[(q + 1) k] + Delta 7 k 2 k Sloжenost aжuriranja kumulativnih suma je određena brojem izvrxavanja while-petlje. Petlja se izvrxava za vrednosti k = 1, 2, 4,..., k max = 2 l max, gde je k max stepen broja dva koji nije ve i od n. Odavde je k max n i 2 k max > n. Budu i da je k max = 2 l max, to je l max = log 2 n, te je sloжenost aжuriranja Θ(log 2 n). Prema tome sloжenost svih operacija je Θ(log 2 n). 3. Dvodimenzionalni sluqaj Na Međunarodnoj olimpijadi 2001. godine bio je za nijansu teжi problem. Deo ravni koji predstavlja podruqje koje,,pokriva jedan operator mobilne telefonije ima oblik pravougaonika i izdeljen je na kvadrate (predstavljaju osnovnu jedinicu u organizaciji). Ukupno ima m vrsta i n kolona kvadrata (m, n 1000) i na svakom od njih ima određen broj pretplatnika. Kolone su numerisane brojevima od 1 do n sleva nadesno, a vrste brojevima od 1 do m odozdo nagore (za nijansu drugaqije od numeracije vrsta i kolona u matricama, ali to ne bi trebalo da stvara probleme). Tokom vremena se pojavljuju novi pretplatnici i odjavljuju neki od postoje ih. Operatora interesuje da s vremena na vreme odredi broj pretplatnika u nekoj podoblasti (koja ima oblik pravougaonika i određena je koordinatam kvadrata koji se nalaze kod naspramnih temena (recimo (v 1, k 1 ) i (v 2, k 2 ), 1 v 1 v 2 m i 1 k 1 k 2 n). Takmiqarski program treba da,,isprocesira niz komandi oblika: dodaj određen broj pretplatnika na određeno polje, odjavi određen broj pretplatnika, prebroj ukupan broj pretplatnika na pravougaonoj podoblasti. Po analogiji sa jednodimenzionim sluqajem, zbir na poljima u okviru pravougaone oblasti qija naspramna temena su (v 1, k 1 ) i (v 2, k 2 ) se moжe odrediti kombinovanjem zbirova u pravougaonim oblastima qije je jedno teme (1, 1) (to bi bili analogoni parcijalnih suma). Ako je s[v, k] suma sadrжaja polja u pravougaonoj oblasti qije je jedno teme (1, 1), a drugo (v, k), onda je zbir polja pravougaone oblati qija su temena (v 1, k 1 ) i (v 2, k 2 ) jednaka s[v 2, k 2 ] s[v 1 1, k 2 ] s[v 2, k 1 1] + s[v 1 1, k 1 1]. Ove parcijalne sume se mogu izraqunati primenom kumulativnih suma, analognih kumulativnim sumama za jednodimenzionu oblast. Tako e t[v, k] biti suma polja pravougaone oblasti qije je gornje levo teme (v, k), qija je visina r(v) (tj. sadrжi

46 D. Uroxevi r(v) vrsta), a xirina r(k). Ako su te sume aжurne, onda emo s[v, k] odrediti slede im postupkom ParcSuma2D(v, k, t) 1 s 0 2 kv 1 3 while v > 0 do 4 if odd(v div kv) then 5 kk 1 6 k 1 k 7 while k 1 > 0 do 8 if odd(k 1 div kk) then 9 s s + t[v, k 1 ] 10 k 1 k 1 kk 11 kk 2 kk 12 kv 2 kv 13 return s Aжuriranje izvodimo kao i aжuriranje u jednodimenzionom sluqaju. To znaqi da emo za svaki par vrednosti kv i kk eksponenata određivati pravougaonu oblast qije gornje desno teme ima koordinate (v, k) gde je v umnoжak od 2 kv, k umnoжak od 2 kk i ako su pritom v/2 kv i k/2 kk neparni, onda kumulativnu sumu za to polje treba aжurirati. AzurirajKS2D(m, n, v, k, Delta, t) 1 v1 v 1; 2 vk 1 3 while vk m do 4 vq v1 div vk 5 if not odd(vq) then 6 k1 k 1 7 kk 1 8 while kk n do 9 kq k1 div kk 10 if not odd(kq) then 11 t[(vq + 1) vk][(kq + 1) kk] t[(vq + 1) vk][(kq + 1) kk] + Delta 12 kk 2 kk 13 vk 2 vk 4. Primena na izraqunavanje minimuma/maksimuma Drugi problem koji se moжe rexiti primenom opisane strategije je i problem određivanja minimuma (ili maksimuma) za podniz koga qine svi elementi niza od prvog (poqetnog) do nekog konkretnog. Po analogiji sa kumulativnim sumama u nizu kumulativnih minimuma (ili maksimuma) quvamo minimume (maksimume) za deo niza: tmin[k] e biti minimum r(k) uzastopnih elemenata niza

Primena kumulativnih suma 47 gde je poslednji element na k-tom mestu. Primenom takvih kumulativnih minimuma lako raqunamo minimum podniza od prvog do proizvoljnog elementa (ako smo kod parcijalnih suma raqunali to kao zbir kumulativnih suma, u ovom sluqaju raqunamo minimum kumulativnih minimuma). Međutim, ako bismo жeleli da izraqunamo minimum od uzastopnih elemenata gde poqetni ne bi bio prvi element niza, nego neki kasniji, to ne bismo mogli da izvedemo kao za zbir (raqunaju i razliku parcijalnih suma). Poznavanje minimuma za prvih n elemenata i minimuma za prvih m 1 elemenata (n m) ne omogu ava direktno izraqunavanje minimalnog elementa u podnizu poqev od m-tog do n-tog. O strukturi podataka koja bi obezbedila efikasno određivanje takvih minimuma i maksimuma u nekom budu em tekstu. LITERATURA 1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, Introduction to Algorithms, MIT Press and McGraw-Hill, 2001. 2. Robert Sedgewick, Algorithms in C++, Addison-Wesley Professional. Matematiqki institut SANU, Beograd, Kneza Mihaila 36 E-mail: draganu@mi.sanu.ac.yu