[Besoin aide Excel] Afficher toutes les combinaisons possibles [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017
-
 Khalu -
Bonjour,

Je voudrais savoir si il est possible de demander à Excel (ou un autre programme) de créer la totalité des combinaisons possibles sachant qu'une combinaison comporte un élément A, un élément B, un élément C, un élément D, et un élément E, et un élément quelconque.
Chaque élément appartient à une catégorie (A, B, C, D ou E). 10 éléments par catégories, 50 éléments au total. Un élément ne peut-être utilisé qu'une seule fois. A chaque élément est associé un score x et un prix y (une combinaison aura donc le total x et le total y de touts ses éléments).

Merci d'avance à toute personne que s'intéressera à mon problème.

3 réponses

Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
817
Bonjour,

Tu as simplifié ta demande précédente mais je ne suis pas sur que ce soit une bonne idée.

Pour modéliser ta liste de combinaisons, tu peux imaginer que tes éléments sont numérotés de 0 à 49, les unités représentent un élément et les dizaines représentent l'équipe.
Tu as bien tes 5 équipes (de 0 à 4) et tes 10 éléments par équipe (de 0 à 9).

Tu n'as plus qu'à prendre une feuille de calcul excel pour tirer une séquence de 0 à 99999 pour avoir le combinaisons de 5 joueurs.
Si tu veux un tableau de 5 colonnes, tu peux, à partir de cette série, extraire les unités, les dizaines, les centaines etc ...

Ensuite, tu as un élément supplémentaire qui, pour une combinaison donnée, doit appartenir aux 45 éléments qui n'ont pas été choisis.

Il reste alors à dupliquer 45 fois ta série et ajouter l'élément supplémentaire à chaque combinaison.
Pour cette partie, je préconiserais une macro.

A la limite, pourquoi pas...

Mais le coût et les points rapportés par un élément ne me semblent pas uniques.
Je me trompe?
D'après ton message précédent, chaque joueur rapporte : Kills +3, Assists +2, Deaths -1, CS +.01.
En français, ça veut dire quoi? Un joueur rapporte la somme de ces points? ou faut-il envisager des combinaisons de Kills, Assists, Deaths ou CS?

Il semblerait que les équipes rapportent quelque chose :
La team choisit rapporte :
Turrets +1
Dragons +2
Barons +3

Tu n'en parles plus. Ça n'est pas utile?

Autrement dit, chaque élément rapporte-t-il une combinaison KDA unique?

Une fois que tu auras complété ta demande, on pourra peut-être s'intéresser à une optimisation par solver.
Pour l'instant je n'ai pas assez d'infos pour le paramétrer.

Cordialement
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017

Merci à toi pour l'aide.

Pour détailler :

Le jeu :
Il y a un tournoi sur lequel on peut parier. Le tournoi se joue entre 10 équipes. Chaque équipe est composé de 5 joueurs : un Top, un Mid, un Jungle, un AD Carry et un Support. Un joueur a, à la fin d'une partie, un score :(x Kills, x Deaths, x Assists et x CS).
Kills = nombre de joueurs ennemis tués
Deaths = nombre de morts (du joueur en question)
Assists = nombre de joueurs ennemis qu'il a aidé à tuer
CS = nombre de monstres (=ennemies non-contrôlés par un joueur) tués

Le pari :
Pour faire un pari, il faut choisir une combinaison de joueurs pour la semaine, en l'occurrence un Top, un Mid, un Jungle, un AD Carry et un Support et un joueur dit Flex (un joueur de n'importe quel rôle) et une équipe. Chaque joueur / équipe coûte un salaire et l'ensemble des joueurs + l'équipe ne doit pas dépasser les 50 000 $ (dollars fictifs bien-sûr).
Un joueur rapporte des points selon ses résultats durant la semaine : 3*Kills - 1*Deaths + 2*Assists + 0.01*CS).

Pourquoi utiliser Excel :
Avec les statistiques des dernières parties du joueur, je lui calcule un score (prévisualisation de ses futurs résultats en fait).
Chaque joueur a donc un prix, il faudrait donc qu'Excel me référence toutes les combinaisons puis que je les filtre pour qu'apparaisse uniquement celle ayant un coût inférieur à 50 000 $ moins le "prix d'une l'équipe" (que je préfère choisir sans l'aide de statistiques). Une équipe coûte entre 2000 $ et 4500 $.
Une fois toutes les combinaisons < 50 000 - "prix de l'équipe" référencées, il faudrait que je les trie par score décroissant, puis que je choisisse la première (celle ayant le plus gros score).
Pour que je puisse les filtrer, il faut qu'à chaque combinaison soit associé un score (total des scores de la combinaison) et un prix (total des prix de la combinaison) et que je sache de quoi (quels joueurs et quel équipe) est composé la combinaison.

Merci pour l'aide.
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
817 >
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017

Bonsoir,

Peux tu envoyer les stats salaire et points des joueurs et le prix des équipes?
Le modèle que j'ai créé est en train d'exploser mon portable.
Je vais passer sur une autre machine pour continuer.

Je pense quà la fin il ne sera pas nécessaire de calculer toutes les combinaisons

Cordialement
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017

Voici un lien où tu pourras télécharger le fichier :
https://www.transfernow.net/?utm_source=partagefichierscom&utm_medium=download
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
817
Bonsoir,

Les 2 meilleures équipes semblent être :

pour un coût d'équipe de 4.000$ sur un capital de 50.000$.

Le fichier excel pèse 149 Mo.
Mais ton idée n'était pas mauvaise. Tu obtiens bien les résultats.

Le problème :
Sur un portable quadricoeur et 6Mo de Ram, impossible de construire le modèle : plantage direct.
J'ai dû passer sur un PC 12Mo 16 coeurs pour n'attendre qu'une mn chaque fois que je bouge la souris.

Donc je t'envoie un fichier squelette d'une quarantaine de ko qu'il te faudra remplir par un "simple recopie sur 100.000 lignes".... si tu peux bien sûr.
https://www.cjoint.com/c/EEFckPpqpoH

Le principe est simple :
  • Le tableau des stats des joueurs est en haut à gauche.
  • En dessous, 100.000 lignes pour les combinaisons de 5 joueurs
  • 2 fois 45 colonnes pour le joueur complémentaire de l'équipe (salaire et points totaux de l'équipe à chaque intersection ligne/colonne).
  • Les max de points sous contraintes de capital sont calculés au dessus de la table monstrueuse.
  • Un tableau récapitulatif repère les emplacements des max trouvés.


Il reste à gérer manuellement ces solutions. Ça peut s'automatiser mais là, j'ai pas envie.

Cordialement
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017

Merci pour toute ton aide. Je pense que tu as répondu à mon problème.
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
817
Bonjour,

La solution exhaustive tourne depuis 9 heures sur mon PC.
J'ai dû mal organiser les formules et ça ne pardonne pas sur 9 millions de cellules.

Je t'ai fait une solution solver (simplex, variable 0-1) qui demande 1 seconde de traitement.
Tu trouves la même solution que par la méthode force brute.
Pour trouver la solution symétrique associée, tu échanges les 2 joueurs du même rôle.
Ça peut être une alternative intéressante pour économiser de l'électricité.
https://www.cjoint.com/c/EEFlLE7pPZY

cordialement
Bonjour JvDo,

Impressionant tout le travail que tu as fais !
J'ai essayé le 2eme fichier solver, mais je ne comprends pas comment on l'utilise.
Pourrais tu dire comment l'utiliser ?

merci
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
817
Bonjour,

D'abord, as-tu le solver dans le ruban zone données?
Si non, tu vas dans Développeur\Compléments et tu coches la macro complémentaire "complément solver".

Ensuite, tu le lances ce solver.
Si le modèle apparaît dans la fenêtre qui s'ouvre, tu n'as quà faire Résoudre


Si la fenêtre est vide, tu fais charger/enregistrer et tu choisis de charger la zone T9:T23

cordialement
Messages postés
14
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
28 juin 2017

J'ai réalisé quelques paris à l'aide des feuilles Excel et ça a marché parfaitement. La première est effectivement très lente à utiliser mais la deuxième est une très bonne solution alternative. Je tiens à te remercier pour tout le temps que tu y as passé.

Cordialement,
Merci! je connaissais pas le solver d'Excel
Effectivement ça trouve la solution en quelques secondes.
Bravo pour avoir réussi à bien définir le modèle.