Combinaisons de 10 éléments avec condition à résoudre sur Excel

Bonjour à tous,

Je suis nouveau sur ce forum et j'ai besoin d'aide pour résoudre un problème assez complexe, impossible (ou presque) à faire à la main sur excel.

Je cherche à avoir toutes les combinaisons possibles de 10 éléments afin qu'à chaque fois, la somme de ces 10 éléments soit égale à 100.

Les valeurs que peuvent prendre chaque élément sont de 0 à 100 par pas de 5 (0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100). Soit 21 valeurs différentes.

Je laisse ci-dessous un aperçu des premières lignes afin d'être plus clair sur ma demande. (ici seul l'élément 10 est traité pour les valeurs 100, et 95. Concernant la valeur 90, elle était en cours de traitement et n'est pas finie...)

Element 1Element 2Element 3Element 4Element 5Element 6Element 7Element 8Element 9Element 10Somme
000000000100100
00000000595100
00000005095100
00000050095100
00000500095100
00005000095100
00050000095100
00500000095100
05000000095100
50000000095100
000000001090100
000000010090100
000000100090100
000001000090100
000010000090100
000100000090100
001000000090100
010000000090100
100000000090100
00000005590100
00000050590100
00000500590100
00005000590100
00050000590100
00500000590100
05000000590100
50000000590100
00000055090100
00000505090100
00005005090100
00050005090100
00500005090100
05000005090100
50000005090100
00000550090100
00005050090100
00050050090100
00500050090100
05000050090100
50000050090100

Pour information, j'ai pu faire ce type de tableau pour 2 et 3 éléments mais le nombre élevé d'élément ici rend la chose complexe.

Je vous remercie par avance de votre aide.

Bien à vous,

Bonjour,

ça n'était pas prévu pour ça mais ça le fait.
Je craignais que ça dépasse les 250 solutions possibles (fait sur 2010 avec 256 colonnes)

22somme-100.zip (76.99 Ko)

mais à priori tu en as 128
Il te faudra transposer le résultat par un copier-coller Transposer
eric

Bonjour Eriiic,

Merci pour ta réponse.

J'avoue avoir du mal à lire ton excel vis à vis de ma demande. Je vois bien les 128 solutions en colonne mais il y a 21 lignes correspondant aux 21 valeurs possibles (de 0 à 100 par pas de 5).

Je pense qu'il y a forcément beaucoup plus de possibilité. => dans le tableau mis en exemple nous en sommes à plus de 40 solutions alors que nous n'avons pas encore terminé la distribution du deuxième résultat pour l'élément 10, il reste 18 valeurs à traiter pour l'élément 10 sans prendre en compte les autres éléments qui eux aussi doivent contenir les 21 valeurs.

Dans le tableau illustré que j'ai pu renseigner dans mon premier message, on peut bien s'apercevoir de la distribution des valeurs dans les 10 différents éléments notamment avec l'élément 10 à 90.

Pour ces raisons, je laisse ma demande d'aide active.

bonjour,

génial idée d'utiliser cet outil !

Avec ces 128 solutions, il y a déjà +23.000 combinaisons possible.

Donc si on a toutes les solutions possible, le nombre de combinaisons sera 100.000-1.000.000 (?), vous ferez quoi avec cela ? Les solutions sans les combinaisons suffisent, non ?

PS. Eriiic, pour augmenter ce nombre de 250, on fait ca où ?

Bonjour BsAlv,

Il est important dans ce problème d'avoir l'exhaustivité des combinaisons possibles car chaque élément à des caractéristiques différentes.

Les valeurs attribuées à chaque élément permettront d'effectuer un calcul final. Ceci permettra d'avoir l'exhaustivité des résultats possibles.

S'il y a trop de valeurs possibles, le pas peut être de 10 au lieu de 5 : 0,10,20,30,40,50,60,80,90,100.

Exemple de l'application finale :

Caractéristiques de l'Element 1: Coef 1 = 2*sigma1

Caractéristiques de l'Element 2: Coef 2 = 2*sigma2

..

..

In fine, à la droite du tableau initialement renseigné, il y aura une colonne avec la formule : Coef 1(élément1)*w1+Coef 2(élément2)*w2 ......Coef 10(élément 10)*w10. W1,W2, Wn étant les valeurs attribuées( par pas de 5 dans l'idéal ou par pas de 10)

A titre d'information, pour 3 éléments avec des valeurs par pas de 5, il y a plus de 225 lignes de combinaisons.

re,

le théorie des combinaisons est vague, je me rappèle que la moitié ... . Il y a 530 solutions possible et je pense(!!!) quand on crée toutes les combinaisons, il y en a +10.000.000. Il n'y a que 1.048.000 lignes dans une feuille.

l'élément "0" n'est pas traité comme un élément valable pour le moment

710-elements.xlsb (75.41 Ko)

Bonjour,

Je pense qu'il y a forcément beaucoup plus de possibilité
Il ne suffit pas de le penser, il faudrait le calculer pour pouvoir être affimatif.
N'oublie que tu as limité la somme à 100 se qui réduit drastiquement le nombre de possibilités.
Pour l'instant je n'ai pas de raison de mettre en doute le résultat trouvé.

@BsAlv
Déjà il faudrait le mettre dans un xlsm pour dépasser 256 colonnes.
Tu as une variable Dim nbMaxSol As Long 'nombre maxi de solutions.
Je ne l'ai pas fait car dans le but du programme ce n'est pas utile.
Il est conçu pour retrouver les factures payées lorsqu'on a un paiement unique sans détails.
Pour moi à partir de 2 possibilités il y a ambiguïté pour déterminer quelle facture est réglée si tu en as plusieurs au même montant.
(si tu t'amuses avec j'aimerai que tu laisses mon nom stp )
eric

@Eriiic,

C'est toujours difficile de lire/comprendre une macro d'une autre personne. Donc j'ai commencé de scratch. Les premiers 400 solutions, je le trouvais en 1 minute et puis pour le reste ca durait.

Maintenant, il trouve les 520 solutions en <0.2 sec

Peut-être l'algoritme est adaptable à votre problème de facturation ??? (là, vous n'utilisez pas des multiples, donc c'est peut-être encore ...)

1510-elements.xlsb (35.99 Ko)

Ah oui, c'est ça la différence.
Dans mon programme chaque valeur n'est utilisée qu'une fois.
Si elle est multiple il faut la lister autant de fois, ça ne convient pas ici

pour l'améliorer j'ai déjà une idée en tête depuis 2 ans.
Ca permettrai des centaines de valeurs sans que le temps de calcul soit exponentiel.
Là ça grimpe vite, qq dizaines et ça devient longuet...

@Eriiic,

Concernant le nombre de possibilités : étant donné qu'il y a plus de 225 possibilités avec 3 éléments, il y a à minima 3 fois plus de possibilités

Aussi, via un outil en ligne le nombre de combinaisons avec 10 éléments pour 21 valeurs de 0 à 100 par pas de 5 avec une limitation de la somme à 100 est de 352716 solutions.( https :// fr . planetcalc . com / 6786). N'ayant pas de détails je ne peux pas vérifier l'exhaustivité de la solution.

@BsAlv,

Merci pour ta réponse.

Je me suis peut-être mal exprimé mais ma demande concerne 10 éléments où, chacun peuvent prendre la forme de 21 valeurs. Le tableau de mon premier poste illustre à mon sens ma demande.

Le fichier que tu as partagé semble indiquer l'ensemble des combinaisons des 21 valeurs pour atteindre 100.

a titre d'exemple, la ligne 8 de ton fichier indique : 5*valeur 10 + 1*valeur 5 + 3*Valeur 15 ce qui est bien égal à 100 pour 9 éléments. Cependant ceci ne prend pas en compte quel élément correspond à quelle valeur :

Element 1Element 2Element 3Element 4Element 5Element 6Element 7Element 8Element 9Element 10Somme
510101010101515150100
051010101010151515100
150510101010101515100
151505101010101015100
151515051010101010100
101515150510101010100
101015151505101010100
101010151515051010100
10

10

10101515150510100
101010101015151505100

Aussi les valeurs 10 et 15 peuvent se décomposer également en 10(5,5), 15(5,5,5 /10,5).

re,

les colonnes à partir de Y étaient supprimé dans ma dernière contribution. Ma ligne 8, cellule AE8, me dit qu'il y a (si ma formule est correcte) 5.040 combinaisions possible avec cette solution. Ce n'est pas un défi pour moi pour les générer toutes. En total, il y a 10.015.005 combinaisons à générer

1110-elements.xlsb (47.30 Ko)
Rechercher des sujets similaires à "combinaisons elements condition resoudre"