Algorithmes autour des coefficients binomiauxFactorielle d'un entier naturelÀ l'aide d'une boucle
def facto(n):
f = 1
for i in range(2,n+1):
f = f*i
return f
print "1! = ",facto(1)
print "2! = ",facto(2)
print "3! = ",facto(3)
print "4! = ",facto(4)
print "10! = ",facto(10)
Par récursivité
def facto(n):
if n == 1:
f = 1
else:
f = n*facto(n-1)
return f
print "1! = ",facto(1)
print "2! = ",facto(2)
print "3! = ",facto(3)
print "4! = ",facto(4)
print "10! = ",facto(10)
Coefficients binomiauxÀ l'aide des factorielles
On utilise ici la définition : pour tout entier naturel $n$ et $k\leq n$, $\displaystyle{ {n \choose k} }=\dfrac{n!}{k!(n-k)!}$.
def facto(n):
f = 1
for i in range(2,n+1):
f = f*i
return f
def coefBinom(n,k):
return facto(n)/(facto(k)*facto(n-k))
print "3 parmi 5 : ",coefBinom(5,3)
print "4 parmi 9 : ",coefBinom(9,4)
À l'aide de la formule de Pascal
Pour tout entier $b\geq1$ et pour tout $k\leq n$ on a : ${n-1 \choose k-1}+{n-1 \choose k}={n \choose k}$.
def coefBinom(n,k):
if n == 1 and (k ==0 or k ==1):
f = 1
else:
f = 0
if n > 1:
f = coefBinom(n-1,k-1)+coefBinom(n-1,k)
return f
print "3 parmi 5 : ",coefBinom(5,3)
print "4 parmi 9 : ",coefBinom(9,4)