1. Dokazati da je za svaki prirodan broj n:
1 - 1/2 + 1/3 - ... + 1/(2n-1) - 1/(2n) = 1/(n+1) + 1/(n+2) + ... + 1/(2n)
Rešenje
Baza indukcije
za n=1: 1 - 1/2 = 1/2
Induktivna hipoteza (IH):
Pretpostavimo da je tvrđenje tačno za neki
prirodan broj n i dokažimo da važi za n+1:
1 - 1/2 + 1/3 - ... + 1/(2n-1) - 1/(2n) + 1/ (2n+1) - 1/(2n+2)
= 1/(n+1) + 1/(n+2) + ... + 1/(2n) + 1/ (2n+1) - 1/(2n+2)
= 1/(n+2) + ... + 1/(2n) + 1/ (2n+1) + 1/(2n+2)
Šta znate o Fibonačijevim brojevima? Kakva je njihova uloga u računarstvu?
2. Dokazati da članovi Fibonačijevog niza (F1=F2=1, Fn=Fn-1 +Fn-2 za n >= 3) zadovoljavaju nejednakost
Fn <= φn-1
gde φ je broj (1+√5)/2
Rešenje
Za n=1:
F1=1=φ0 =φn-1, pa je baza indukcije dokazana (tj. da tvrdnja važi za n=1)
Za n=2:
F2= 1<1.6<φ1 =φ2-1
Sada pretpostavimo (tj.postavimo IH) da je tvrđenje tačno za 1,2,...n i važi n>1.
To znači da tvrđenje važi i za n-1 tj. (i) Fn-1<=φ n-2
i važi za n, tj. (ii) Fn<=φn-1.
Dalje, za članove Fibonačijevog niza važi (iii) Fn+1=Fn-1 +Fn <=φ n-2 +φ n-1=φ n-2(1+φ ) .
Sada interveniše sledece svojstvo broja φ. Naime, neposredno se proveri da je φ2=φ +1
Stavljajući to u (iii) , dobija se: Fn+1<=φn , pa je dokazano da je tvrđenje tačno za n+1. QED
Komentar primenjenje indukcije: Verovatno se secate da ako zelimo da dokazemo da je
tvrdjenje P(n) tačno za sve prirodne brojeve n, onda postoje dva ključna
poddokaza:
1) dokazati da je tacno P(1)
2) Ako je tacno P(1),P(2),...P(n) dokazati da je tacno
P(n+1)
U našem zadatku obavljen je korak 1).
Ali pre koraka 2), pokazali smo direktnom proverom da
je tvrđenje tačno za n=2. Da li je to bilo suvišno?
Odgovor: Ne, jer u
koraku 2) od značaja nam je pretpostavka da tvrdjenje važi za
n-1.
No, ako bi izostavili proveru za n=2 i pokušali da
dokažemo da važi tvrđenje za n+1=2, onda bi morali da se
oslanjamo na to da tvrđenje važi za
Fn-1=F1-1=F0,
a ne
možemo referisati na član F0, jer taj član ne
figuriše u formulaciji zadatka.
Za razmišljanje: Koji je odnos Fn i φn-2.
3. (strukture podataka) Dati su za n >=2 prirodni brojevi d1, d2,..., dn takvi da im je zbir 2n-2. Da li postoji stablo sa n čvorova čiji su stepeni brojevi d1, d2,..., dn ?
Rešenje
Odgovor je postoji. Dokažimo to.
Stepen čvora je broj grana koje su mu susedne. U mnogim zadacima se koristi cinjenica da sabiranje stepena cvorova d1+...+dn je isto sto i brojanje grana, pri cemu se svaka grana broji tacno dva puta.
Baza indukcije:
Ako n=2, onda d1+d2=2 =>d1=d2=1
i postoji ovakvo stablo, jer dva čvora povezana granom jesu upravo
stablo koje ima 2 čvora i to oba stepena 1
Induktivna hipoteza:
Pretpostavimo da je tvrđenje tačno za n-1
brojeva.
Induktivni korak: Neka je dato n>=3 prirodnih brojeva d1,d2,...,dn
čiji je zbir d1+...+dn=2n-2.
Tada postoje bar jedno i (1<=i<=n),
bar jedno j(1<=j<=n) tako da di=1, dj>1.
/* Obrazloženje:
Pretpostavimo suprotno: Za svako i<=n da su di≠1.
Tada su prirodni brojevi di>=2, tj. d1+...+dn >=2n, tj. ne može biti d1+...+dn=2n-2 (induktivni korak) QED
Slično za dj se
pretpostavi suprotno: za svako j <=n je dj <=1 .
Tada je d1+..+dn <=n, a znamo da za n>=3 je n<2n-2
Tada ne može biti d1+...+dn=2n-2 (induktivni korak) QED */
Izbacimo iz skupa di i
umanjimo dj za jedan i dobice se skup stepena cvorova
za koji po induktivnoj hipotezi postoji stablo sa tim stepenima.
Zatim na to stablo dodamo novi cvor,
zapravo list stepena di=1 prikacenog za cvor stepena
dj-1>=1 i dobija se stablo iz formuacije zadtaka, tj.
stablo sa n čvorova stepena d1,d2,....dn .
Jasno je da rešenje problema u opštem slučaju nije
jedinstveno.
4.(Oprez sa indukcijom) Šta je pogrešno u sledećem "dokazu"
kojim se želi dokazati tvrđenje:
Za svako pozitivno realno a
i za svaki prirodan broj n je an-1 =1.
"Dokaz" : n=1 =>an-1 =a1-1=1
Induktivna hipoteza: Pretpostavimo da je to tačno za 1,2,...,n
Tada: a(n+1)-1=an= (an-1 * an-1)
/ an-2 = (1 * 1) / 1 =1, pa je
takodje tvrđenje ispunjeno za n+1.
Rešenje
Problem je što nismo smeli pretpostaviti da je
tvrđenje tačno za n=2.
Naime, u drugom delu dokaza, ako
je 2=n+1 koristi se da imenilac an-2=1, ali ako je
2=n+1, onda n-2 =-1 i nije korektno pretpostaviti da a-1=1.
Ovo bi bio kraj sažetog podsećanja na indukciju.
5. Problem Pn sa
parametrom n (n je prirodan broj) algoritam A rešava za T(n
) vremenskih jedinica.
Ako se zna da za svaki
prirodan broj n vazi T(n+2)=3T(n+1)-2T(n), gde je T(1)=3, T(2)=5
odredi koliko vremenskih jedinica utrosi algoritam A za ulaznu
vrednost n
Rešenje
Karakteristična j-na ove rek.j-ne je: t2-3t+2=0
<=> (t-1)(t-2)=0 =>t1=1, t2=2.
Tada je
rešenje oblika T(n)=C1*t1n +C2*t2n
Iz početnih uslova: za n=1: 3=T(1)=C1*1+C2*2
Za n=2: 5=T(2)=C1*1+C2*22 =>C1=1, C2=1
Stoga, T(n)=2n +1
6.
Problem Pn sa parametrom n (n je prirodan broj) algoritam A rešava za T(n) vremenskih jedinica. Ako se zna da za svaki prirodan broj n vazi T(n+2)=4T(n+1)-4T(n), gde je T(1)=6, T(2)=20 odredi koliko vremenskih jedinica utrosi algoritam A za ulaznu vrednost
Zbog dvostrukog korena se ovaj zadatak razlikuje od prethodnog.
Karakteristična j-na ove rek.j-ne je: t2-4t+4=0
<=>(t-2)2=0
Tada se rešenje traži u obliku T(n)=C1*t1n
+C2*n*t1n
7. Algoritam quicksort koristi strategiju "podeli pa vladaj" tj. izabere se element zvani pivot tako da pola elementa niza je manje ili jednako, a pola elemenata niza veće od pivota. Nakon razdvajanja niza rekurzivno se sortiraju dva podniza: levi i desni
Složenost algoritma je
O(n log n). Zašto?
Označimo sa T(n) broj
potrebnih vremenskih jedinica za rešavanje problema
sortiranja quicksort-om niza dimenzije n.
Tada je
T(2)=1
T(n)= 2 T(n/2) + O(n) ( 2 rekurzije, plus const*N operacija za objedinavanje resenja)
Ova difrencna jednačina može da se reši tehnikom teleskopskih suma, ali i pozivom na Teoremu 2.1 iz knjige profesora Živkovića.
Teorema 2.1. Asimpototsko ponašanje niza T(n), rešenja difrencne jednačine
T(n) = a T(n/b) + c n k, a, b, c, k >=0, b !=0 i zadato je T(1)
dato je sa:
T(n)= O (n log b a ) za a > b k
T(n)= O (n k log n ) za a = b k
T(n)= O (n k ) za a < b k
Kako je u algoritmu 3:
a=2, b=2, a=b (tj. k=1), onda je T(n) = O (n log n)
8. Često prilikom analize vremenske složenosti mora se rešiti jednačina tipa full history T(n)=n+T(1)+T(2)+...+T(n-1), sa početnim uslovom T(1)=1
9. Sledeća rekurentna veza
pojavljuje se u algoritmu tipa "zavadi pa vladaj"
(algoritmi zasnovani na dekompoziciji ulaza na nejednake sastavne
delove):
T(n)=∑ i=1..k
ai
T(n/bi) +cn, gde za konstante ai , bi važi ∑i=1..k
ai/bi <1
Pronaći asimptotsko ponašanje
ove rekurentne veze.
Jelena Hadži-Purić | Algoritmi i strukture podataka |