Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jel' moze neko da mi objasni ovaj primer?

[es] :: Python :: Jel' moze neko da mi objasni ovaj primer?

[ Pregleda: 2292 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mi105

Član broj: 283074
Poruke: 19



+1 Profil

icon Jel' moze neko da mi objasni ovaj primer?25.04.2011. u 09:02 - pre 157 meseci
Jel' moze neko da mi objasni ovaj primer? Funkcije donekle razumem ali ovde vec pocinjem da se gubim. Zasto je 4!=24 i 5!=120? Hvala.
Code:
#defines a function that calculates the factorial
def factorial(n):
  if n <= 1:
    return 1
  return n*factorial(n-1)

print "2! = ",factorial(2)
print "3! = ",factorial(3)
print "4! = ",factorial(4)
print "5! = ",factorial(5)

Output:
2! = 2
3! = 6
4! = 24
5! = 120
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Jel' moze neko da mi objasni ovaj primer?25.04.2011. u 10:19 - pre 157 meseci
Ne razumeš zašto je 5! = 120 ili ne razumeš kako radi funkcija?

Ako je ovo prvo onda pogledaj ovo: http://sr.wikipedia.org/wiki/%...%D1%80%D0%B8%D1%98%D0%B5%D0%BB .

A ako ne razumeš rekurziju onda probaj samo da ispratiš korake. Konkretno ova funkcija se zasniva na činjenici da je 5! = 1*2*3*4*5, a složićeš se da to možeš napisati i 5! = 4! * 5 jer se svodi na isto. Isto tako je 4! = 1*2*3*4 odnosno 4! = 3! * 4. Prateći ovaj obrazac možeš da izračunaš faktorijel od bilo kog broja. Upravo to ova funkcija radi.

Za svaki broj koji joj proslediš pokušaće da izračuna taj_broj * factorial(taj_broj -1), dok god je taj broj veći od 1. Faktorijel od 1 je 1, tako da ako joj proslediš 1 samo će to vratiti.

Pokušaj da zapišeš svaki korak izvršavanja, često pomogne :)
 
Odgovor na temu

[es] :: Python :: Jel' moze neko da mi objasni ovaj primer?

[ Pregleda: 2292 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.