Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Combinaison de chiffres

Y

yoyo

Guest
Bonjour,

Je cherche à obtenir, à partir d'une liste de chiffre un résultat précis en VBA.

C'est à dire j'ai une liste de 5 chiffres:

1
2
3
4
5

Et je veux obtenir le résultat 10 en faisant la combinaison des 5 chiffres précédents sans répétition.

exemple : 2 + 3 + 5 =10

Merci d'avance de votre Réponse.
 
J

JyM

Guest
Salut yoyo,
...tentons...

et 5+5, t'en penses quoi?

tu poses un problème de combinatoire :

le nombre de mots possibles -AU SECOURS les matheux-
qq chose qui fonctionne avec les factorielles -niveau 1ère, XVII siècle.

avec le zéro pour marquer l'absence , 6 chiffres, pour 5 cases,
ça ressemble à toutes les possibilités d'écrire
"00 001", "00 010", "00 012" .... "10 002"
par exemple 3 parmi 5=10 : 5! / (5-3)! / 3!
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

C(0,5)=1 +C(1,5)=5 +C(2,5)=10 +C(3,5)=10 +C(4,5)=5 +Cc(5,5)=1 = 32 = 2^5

pour n chiffres, 2^n chiffres

Au plus simple, épuiser les "combinaisons",

plus malin chercher le complément à 10 après chaque "tirage"
1 5 => 10-5 = 5 restent (zéro compris) 6 chiffres possibles sur 4 cases
2 3 => 10-5-3 = 2 restent 3 chiffres possibles sur 3 cases
bien sûr
1 1 => 10-1 =9 6 chiffres sur 4 cases
2 1 encore => 10-1-1 =8 6 chiffres toujours sur 3 cases
3 1 encore => 10-1-1-1 =7 6 chiffres toujours sur 2 cases mais 3+4 2+5 sont seuls possibles.
4 1 encore => 10-1-1-1-1=6 impossible sur 1 case.

une sorte d'abaque du maximum possibe en X cases pourrait servir.
si la batterie de chiffres est figée, l'épuisement des combinaisons préexisterait utilement à la macro.

en cinq chiffres 0>4 :

cases 0 1 2 2 3 3 3 4 4 5
combi 1 5 10 10 10 10 10 5 5 1

totaux 0 0 "01 1 "012 "34 3 "1234 10 10
1 "02 2 "013 "24 4 "0234 9
2 "03 3 "014 "23 5 "0134 8
3 "04 4 "0124 7
4 "023 "14 5 "0123 6
"12 3 "024 "13 6
"13 4
"14 5 "034 "12 7

"23 5 "123 "04 6
"24 6 "124 "03 7
"134 "02 8
"34 7
"234 "01 9

Pour construire le chemin le plus court, je sèche.
Peut-être voir du côté de la programmation des arbres ...

Bon courage

JyM
 
Y

yoyo

Guest
Salut JyM,

Je te remercie pour ta réponse.
Concernant les 5+5 il s'agit d'une répétition, ce n'est pas autorisé.
Par contre pour ta proposition d'arbre cela me parai plus convenable.

Voici une proposition
1
|
----------------------------------------------
| | | |
---------2------- 3------- 4 5
| | | | | |
3 4 5 4 5 5
| | |
4 5 5
|
5
Serais tu ou je pourrais trouver un algorithme pour ce type d’arbre avec un accès à un nœud? A condition que cela te paraisse correcte.

Merci d’avance pour ta réponse.
 
Y

yoyo

Guest
je recommence.

Salut JyM,


Je te remercie pour ta réponse.
Concernant les 5+5 il s'agit d'une répétition, ce n'est pas autorisé.
Par contre pour ta proposition d'arbre cela me parai plus convenable.

Voici une proposition

Voir fichier join merci.

Serais tu ou je pourrais trouver un algorithme pour ce type d’arbre avec un accès à un nœud. A condition que cela te paraisse correcte.

Merci d’avance pour ta réponse.
 

Pièces jointes

  • arbre.zip
    1.9 KB · Affichages: 178

Discussions similaires

Réponses
17
Affichages
766
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…