Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

problemčić sa složenošću
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Manny Callavera
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 02. 2004. (12:40:20)
Postovi: (2D)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: Zgb

PostPostano: 12:50 uto, 17. 2. 2004    Naslov: problemčić sa složenošću Citirajte i odgovorite

Pozdrav!

Problem slozenosti , ovako glasi algoritam:

scanf(n); <--1 upis
while(n>0){ <--logn+1
printf(n MOD 10); <--2op: ispis & mod
n=n DIV 10; <--2 op: pridruž. & div
}

broj operacija je 4k+1 <= 4(logn + 1)+1 = 4logn + 5 <---- ovo znam

nego imam jedan problem,vjezbao sam slozenosti algoritama i ne razumijem zakljucak ovaj:
f(n)=4logn + 5
uzmimo:
g(n)=log n
c=5,zelimo da vrijedi

f(n)<= 5g(n) za n>=No (n sa indexom nula)
**** 4logn + 5 <= 5g(n) <==> logn >= 5 <==> n>=10e5 = 100 000
Dakle treba uzeti No=100 000
zakljucak: slozenost algoritma je O(logn)
Zanima me sto je No (malo n index 0),pojasnjenje relacije ****
i zasto slozenost= logn. :?

Otpilike kuzim definiciju slozenosti. :oops:

hvala unaprijed
Pozdrav!

Problem slozenosti , ovako glasi algoritam:

scanf(n); <--1 upis
while(n>0){ <--logn+1
printf(n MOD 10); <--2op: ispis & mod
n=n DIV 10; <--2 op: pridruž. & div
}

broj operacija je 4k+1 <= 4(logn + 1)+1 = 4logn + 5 <---- ovo znam

nego imam jedan problem,vjezbao sam slozenosti algoritama i ne razumijem zakljucak ovaj:
f(n)=4logn + 5
uzmimo:
g(n)=log n
c=5,zelimo da vrijedi

f(n)<= 5g(n) za n>=No (n sa indexom nula)
**** 4logn + 5 <= 5g(n) <==> logn >= 5 <==> n>=10e5 = 100 000
Dakle treba uzeti No=100 000
zakljucak: slozenost algoritma je O(logn)
Zanima me sto je No (malo n index 0),pojasnjenje relacije ****
i zasto slozenost= logn. Confused

Otpilike kuzim definiciju slozenosti. Embarassed

hvala unaprijed



_________________
The King Of Kong documentary:

http://www.youtube.com/watch?v=xMJZ-_bJKdI
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
ahri
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07)
Postovi: (193)16
Sarma = la pohva - posuda
= 7 - 0

PostPostano: 13:48 uto, 17. 2. 2004    Naslov: Citirajte i odgovorite

trazis N0 nakon kojeg se tvoja funkcija moze ograniciti odozgo funkcijom g(n)*k, k je neki realni koeficijent, te je lim(n->inf) [f(n)/g(n)] E |R
tada ti je apriorna slozenost funkcije (tj. veliko O) upravo taj g(n).

najcesce ce ti ta funkcija biti upravo "najbrza" funkcija od onih u f(n).
npr.
f(n) = n*n + n*log(n) + n
pa ce biti
g(n)=n*n
etc..


upravo sam skuzio da ne znam to dobro objasniti. :)
nadam se da ti je barem malo pomoglo
trazis N0 nakon kojeg se tvoja funkcija moze ograniciti odozgo funkcijom g(n)*k, k je neki realni koeficijent, te je lim(n→inf) [f(n)/g(n)] E |R
tada ti je apriorna slozenost funkcije (tj. veliko O) upravo taj g(n).

najcesce ce ti ta funkcija biti upravo "najbrza" funkcija od onih u f(n).
npr.
f(n) = n*n + n*log(n) + n
pa ce biti
g(n)=n*n
etc..


upravo sam skuzio da ne znam to dobro objasniti. :)
nadam se da ti je barem malo pomoglo



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 16:10 čet, 19. 2. 2004    Naslov: Re: problemčić sa složenošću Citirajte i odgovorite

[quote="mandark"]f(n)<= 5g(n) za n>=No (n sa indexom nula)
**** 4logn + 5 <= 5g(n) <==> logn >= 5 <==> n>=10e5 = 100 000
Dakle treba uzeti No=100 000
zakljucak: slozenost algoritma je O(logn)
Zanima me sto je No (malo n index 0),pojasnjenje relacije ****[/quote]

n_0 je, ajmo tako reci, prvi n od kojeg vrijedi relacija. Slicno kao kod konvergencija nizova. 8)

Relacija **** ti kaze da g(n) ne raste sporije od f(n). :)

[quote="mandark"]i zasto slozenost= logn. :?[/quote]

Vidi, nas zanima "[i]koliko brzo[/i]" raste neka funkcija. :? Znaci, ako ja znam da ce mi algoritam na nekoj odredjenoj masini raditi 10 sekundi za n=17000, mene onda zanima koliko ce raditi za n=34000. Da li duplo dulje, 4 puta dulje i sl. Tu mi je sada totalno svejedno kolika je ona konstanta, jer ona ne utjece na taj podatak, nego samo na konkretno vrijeme izvrsavanja. :)

Eh, sada ostaje vjecni problem za studente: zasto nije bitno tocno vrijeme izvrsavanja? :-k

Zato jer ako ja kupim "duplo brzu" masinu (stogod to znacilo), onda ce se moj program izvrsavati duplo brze. :) Takodjer, ako uzmem drugi compiler (ili cak drugi programski jezik!) vrijeme izvrsavanja ce se promijeniti. :crazyeyes: Ali, [b]ono sto se nece promijeniti[/b] je upravo omjer: duplo veci problem -> koliko [b]puta[/b] dulje izvrsavanje? :) Takodjer, mi ovdje ocjenjujemo [b]algoritme[/b], a ne njihove implementacije izvodjene na odredjenim racunalima :!:

Realno bi bilo racunati broj operacija nekog algoritma, ali to je u praxi gotovo uvijek neizracunljivo, pa uzimamo ovakvu definiciju slozenosti kao nesto sto dovoljno dobro aproximira ono sto zelimo... 8)

Nadam se da je sada donekle jasnije... :)
mandark (napisa):
f(n)⇐ 5g(n) za n>=No (n sa indexom nula)
**** 4logn + 5 ⇐ 5g(n) ⇔ logn >= 5 ⇔ n>=10e5 = 100 000
Dakle treba uzeti No=100 000
zakljucak: slozenost algoritma je O(logn)
Zanima me sto je No (malo n index 0),pojasnjenje relacije ****


n_0 je, ajmo tako reci, prvi n od kojeg vrijedi relacija. Slicno kao kod konvergencija nizova. Cool

Relacija **** ti kaze da g(n) ne raste sporije od f(n). Smile

mandark (napisa):
i zasto slozenost= logn. Confused


Vidi, nas zanima "koliko brzo" raste neka funkcija. Confused Znaci, ako ja znam da ce mi algoritam na nekoj odredjenoj masini raditi 10 sekundi za n=17000, mene onda zanima koliko ce raditi za n=34000. Da li duplo dulje, 4 puta dulje i sl. Tu mi je sada totalno svejedno kolika je ona konstanta, jer ona ne utjece na taj podatak, nego samo na konkretno vrijeme izvrsavanja. Smile

Eh, sada ostaje vjecni problem za studente: zasto nije bitno tocno vrijeme izvrsavanja? Think

Zato jer ako ja kupim "duplo brzu" masinu (stogod to znacilo), onda ce se moj program izvrsavati duplo brze. Smile Takodjer, ako uzmem drugi compiler (ili cak drugi programski jezik!) vrijeme izvrsavanja ce se promijeniti. #Crazy Ali, ono sto se nece promijeniti je upravo omjer: duplo veci problem → koliko puta dulje izvrsavanje? Smile Takodjer, mi ovdje ocjenjujemo algoritme, a ne njihove implementacije izvodjene na odredjenim racunalima Exclamation

Realno bi bilo racunati broj operacija nekog algoritma, ali to je u praxi gotovo uvijek neizracunljivo, pa uzimamo ovakvu definiciju slozenosti kao nesto sto dovoljno dobro aproximira ono sto zelimo... Cool

Nadam se da je sada donekle jasnije... Smile



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan