Bonjour,
j'ai la version Python suivante d'une fonction :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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])
Toute info. est la bienvenue.
PS : pour la compilation, j'ai Code Block sous Linux et XCode sous MacO$
Partager