Construire puis utiliser la version C d'une fonction faite en Python
Bonjour,
j'ai la version Python suivante d'une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #!/usr/bin/env python
def combinaisonNonRecursif(k,n):
"""Calcul de C(k;n) = n! / k!(n-k)! en utilisant
C(k;n) = C(k-1;n-1) + C(k;n-1)
Voir le document trianglePascalParColone.pdf ou trianglePascalParColone.ods (via Open Office Calc).
Il montre comment calculer de colonnes en colonnes."""
if k==0 or k==n:
return 1
if k==1 or k==n-1:
return n
# Ici on utilise : C(n-k;n).
test = n-k
if k > test:
k = test
colonneInter = [0]*(n+1)
colonne = [x for x in range(n+1)]
for i in range(2, k+1):
colonneInter[i] = 1
for j in range(i+1, n+1):
colonneInter[j] = colonneInter[j-1] + colonne[j-1]
colonne = colonneInter[:] # Attention avec la copie des tableaux...
return(colonne[n]) |
Je voudrais en faire une version en langage C ou C++ pour ensuite l'appeler à partir de Python afin d'améliorer les performances de calcul.
Toute info. est la bienvenue.
PS : pour la compilation, j'ai Code Block sous Linux et XCode sous MacO$