Podsećanje na gradivo iz prethodne godine - zadaci za vežbu

Princip matematičke indukcije -podsećanje

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<φ12-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-2n-1n-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.


Dakle, u ovom zadatku se radi nad stablom (ne mora da je binarno) i dokaz se izvodi indukcijom po n (broju čvorova)

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.

Rekurentne relacije

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


Dakle za t1=2 rešenje je oblika T(n)=C1 2n +C2 n 2n


Iz početnih uslova: za n=1: 6=T(1)=C1*2+C2*2


Za n=2: 20=T(2)=C1*4+C2*8 =>C1=1, C2=2


Zato, T(n)=2n + 2n *2n

 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

  1. 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

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.

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.

 

Podsećanje na konverzije zapisa brojeva (u različitim brojnim osnovama)


Jelena Hadži-Purić Algoritmi i strukture podataka

e-mail: Jelena Hadži-Purić