Bonjour,
j'ai la version Python suivante d'une fonction :
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])
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$