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
| def calcCombi(combi, elements, maxi, somme, cible):
# on regarde si on a atteint la cible
if somme == cible:
affichage(combi, elements)
return
# on a dépassé
if somme > cible:
return
for valeur in elements:
if valeur >= maxi:
# on copie la liste, puis on ajoute la valeur courante.
copie = combi[:]
copie.append(valeur)
# Recursivement on ajoute plus de combinaisons.
calcCombi(copie, elements, valeur, somme + valeur, cible)
def affichage(combi, elements):
global nb
# on affiche une solution ,
nb = nb + 1
for element in elements:
count = combi.count(element)
print(count," x ",element, " - ", end="")
print ("")
# liste de combinaison de pièces et de billets
combi = []
# billets ou pièces dont on dispose
elements = [2, 5, 10]
# variable globale du nombre de possibilités
nb = 0
# départ.
calcCombi(combi, elements, 0, 0, 100)
print ("nombre de possibilités : ",nb) |
Partager