Razlaganje programa na manje dijelove - funkcije
Funkcije
Primjeri rekurzivnih funkcija
- Izračunavanje vrijednosti funkcije n! pomoću rekurzije.
Po definiciji je:
0! = 1
1! = 1
2! = 1*2 = 1!*2
3! = 1*2*3 = 2!*3
...
n! = 1*2*3*...*n = (n-1)!*n
Dakle n! se može izračunati ako je poznat (n-1)!, a (n-1)! može se izračunati ako je poznat (n-2)!, itd.
Iz prethodnog razmatranja možemo zaključiti slijedeće: ako računamo umnožak prvih n prirodnih brojeva:
uvjet zaustavljanja je 1!=1,
a opći oblik će biti n!=n*(n-1)! .
Rekurzivna funkcija glasi:
Za nenegativan cijeli broj e slijedeće rekurzivna funkcija računa potenciju be
(uvjet zaustavljanja je za e=0 potencija =1, jer je b0=1, za svaki b>0)
def faktorijel (n):
if n==1:
return 1
else:
return faktorijel(n-1)*n
n = int(input())
print (faktorijel (n)) -
def potencija(b, e):
if e==0:
return 1
else:
return b * potencija(b, e-1)
baza = int(input('Baza: '))
eksponent = int(input('Eksponent: '))
print (potencija (baza, eksponent)) - Fibonaccijev niz je niz brojeva definiran sa:
f(1) = 1
f(2) = 2
f(3) = f(1) + f(2) = 1 + 2 = 3
f(4) = f(2) + f(3) = 2 + 3 = 5
...
f(m) = f(m-2) + f(m-1)
Funkcija:
def fibonacci (n):
if n == 1 or n==2:
return 1
else:
return fibonacci(n-1)+fibonacci(n-2)
n = int(input())
print (fibonacci(n))