Stim ca (
definitia generala a combinari de n luate cate p):
![](http://bocan.andrei.googlepages.com/comb.jpg)
Pornind de la aceasta definitie putem scrie urmatoarea functie:
def combinari1(n,p):
return factorial(n)/(factorial(p)*factorial(n-p))
care se va folosi de o functie
factorial(n) - consideram ca a fost declarata anterior.
Functia de mai sus mai poate fi scrisa intr-o versiune iterativa astfel:
def combinari2(n,p):
x=1
for i in range(n-p+1,n+1):
x*=i
y=1
for i in range(2,p+1):
y*=i
return x/y
Putem demonstra ca:
![](http://bocan.andrei.googlepages.com/comb1.jpg)
si ca
definitia generala se poate rescrie sub forma:
![](http://bocan.andrei.googlepages.com/comb2.jpg)
Pornind de la aceasta ultima forma a definitiei, trebuie sa scriu o
versiune recursiva a functiei combinari(n,p). Astept sugestii si propuneri. Multumesc