Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Bonjour!
Voici un petit programme python d'analyse combinatoire. Il permet de calculer les arrangements et les combinaisons de k parmi n pour des valeurs dépassant les capacités d'une calculatrice.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
def A(k, n):
"""Nombre d'arrangements sans répétition de k objets pris parmi n"""
x = 1
i = n-k+1
while i <= n:
x = x*i
i += 1
return x
def fact(n):
"""Nombre de permutation de n objets"""
return A(n,n)
def C(k, n):
"""Nombre de combinaisons sans répétition de k objets pris parmi n"""
if k > n//2:
k = n-k
x = 1
y = 1
i = n-k+1
while i <= n:
x = (x*i)//y
y += 1
i += 1
return x
def gamma(k, n):
"""Nombre de combinaisons avec répétitions de k objets pris parmi n"""
return C(k, n+k-1)
def listA(k, S):
"""Liste les arrangements sans répétition de k lettres prises parmi les lettres de S"""
x = []
if k == 1:
for c in S:
x.append(c)
return x
l = len(S)
for i in range(l):
xi = S[i]
Si = S[:i]+S[i+1:]
#print(Si)
Ai = listA(k-1, Si)
#print(Ci)
for ai in Ai:
x.append(xi+ai)
return x
def listC(k, S):
"""Liste les combinaisons sans répétition de k lettres prises parmi les lettres de S"""
x = []
Enter to Rename, Shift+Enter to Preview
Exercice
Ajouter une instruction en fin de programme pour calculer le nombre de combinaisons de 19 parmi 67
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content