Bienvenue visiteur, pour poster sur ce forum vous devez vous enregistrer.
Présentations Flux RSS Recherche
Pages : 1
programme pour calculer les probas d\'avoir les carte souhaités
demonCHADO
Membre
Messages : 26


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [11/01/2025] à 21:06

Bonjour je suis un étudiant en prépa fan de yu gi oh et depuis peu j'ai décidé d'appliquer mes cours pour calculer la probabilité d'avoir des cartes en particulier( ex avoir des handtraps, des starters, des bricks,…) voici le lien pour le télécharger , n'hésiter pas à jeter un coups d'œil et de me faire un retour .


https://drive.google.com/file/d/1cV6dMnlqVYG7FdwbyJ4hyOxyMyht5h00/view?usp=sharing


Crobe
Modérateur
Messages : 2994


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 00:34

Salut !


Intéressant ce que tu fais ! Quand j'étais en prépa (BCPST) et après en être sorti j'ai travaillé aussi sur des scripts python pour calculer des proba. Il existe des sites comme https://www.yugioh.party/ qui permettent de calculer des proba, mais parfois ils ne permettent pas de calculer des situations trop complexes, donc j'ai développé mes propres scripts. J'ai eu 2 étapes :


1) Comme toi, d'abord utiliser des probabilités exactes, en utilisant les formules de combinaisons. Normalement mon code fonctionne très bien pour des combo de 1 à 3 cartes, après pour 4 et + c'était trop compliqué je n'arrivais plus. Mon code est peut être pas ultra clean non plus, ce qui n'arrange pas ^^ J'ai fait une formation de biologie / agronomie, donc même si j'aime beaucoup les maths et l'informatique, je manque peut être de technique pour coder tout ça ! Et avec le temps l'envie de faire du code python a un peu disparu, je préfère jouer le soir quand je rentre du boulot plutôt que faire du code python… D'où la solution suivante.


Mon code actuel (j'y ai pas touché depuis assez longtemps donc même moi je ne comprends plus certaines parties, je sais juste que chaque chose a un sens bien précis et est nécessaire ^^) : https://drive.google.com/file/d/1v74kffiV0HBskJo0LL49hMkA_mq7O09w/view?usp=sharing


2) Vu que le code de probabilité exacte me prenait la tête et devenait trop compliqué sur plein de situations spécifiques (Prospe, Desire, n'importe quelle carte de pioche ou autres situations à laquelle je ne pense pas forcément là dues à des cartes / situations spécifiques), j'ai décidé de faire un algorithme empirique, c'est à dire que je simule un grand nombre de mains (je sais pas, 1 million ou plus, c'est paramétrable), je simule des mains et je compte le nombre de mains qui remplissent les conditions. Il faut donc que je recode les situations de succès à chaque fois que je veux calculer, ce qui prend certes un peu de temps mais c'est finalement assez simple à faire et ça fonctionnera toujours, peu importe la situation ! Donc un peu une technique "flemme" mais j'ai de bons résultats.


Un exemple de code (récemment j'ai utilisé pour des proba sur des mains de départ sur Duel Links pour pour Dragonmaid) : https://drive.google.com/file/d/1sbqVOuHBRpKdml9fxZ8vVBpA2XiTi6rC/view?usp=sharing


Pour le tien, est-ce que tu pourrais expliquer comment il fonctionne ? Par exemple la proba de 2 card combo dans ton exemple, avec une carte en 6 exemplaires et une en 9 exemplaires, je vois 2 problèmes :

1) On dirait que tu ne calcules que la proba d'avoir exactement 1 de chaque, et non au moins 1 de chaque (donc ça perd beaucoup en intérêt) -> tu obtiens seulement 18.8% et avec le mien j'ai le détails de tous les succès possibles avec la somme finale :



2) A priori ça ne prend pas non plus en compte des starter communs, autrement dit sur les 6 tu peux en avoir 3 qui sont également inclus dans les 9… C'est quelque chose que les simulateurs classiques sur internet ne prennent pas en compte non plus généralement, et c'est aussi pour ça au départ que j'ai développé mes script, car au final ça arrive très souvent, donc les calculateurs deviennent vite inutiles.


demonCHADO
Membre
Messages : 26


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 08:39

Oui pour la partie combo deux cartes ça prend en compte que le fait d avoir exactement les deux cartes en mains car je n arrivé pas pour plus . Personnellement je suis en TSI et si j ai fais se programme c est pour m améliorer en proba car j ai du mal. Je vais jeter un œil a ton script et voir se que je peut améliorer dans le miens.

Merci pour ton retour


demonCHADO
Membre
Messages : 26


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 09:43

Citation de Crobe Le [12/01/2025] à 00:34

Salut !


Intéressant ce que tu fais ! Quand j'étais en prépa (BCPST) et après en être sorti j'ai travaillé aussi sur des scripts python pour calculer des proba. Il existe des sites comme https://www.yugioh.party/ qui permettent de calculer des proba, mais parfois ils ne permettent pas de calculer des situations trop complexes, donc j'ai développé mes propres scripts. J'ai eu 2 étapes :


1) Comme toi, d'abord utiliser des probabilités exactes, en utilisant les formules de combinaisons. Normalement mon code fonctionne très bien pour des combo de 1 à 3 cartes, après pour 4 et + c'était trop compliqué je n'arrivais plus. Mon code est peut être pas ultra clean non plus, ce qui n'arrange pas ^^ J'ai fait une formation de biologie / agronomie, donc même si j'aime beaucoup les maths et l'informatique, je manque peut être de technique pour coder tout ça ! Et avec le temps l'envie de faire du code python a un peu disparu, je préfère jouer le soir quand je rentre du boulot plutôt que faire du code python… D'où la solution suivante.


Mon code actuel (j'y ai pas touché depuis assez longtemps donc même moi je ne comprends plus certaines parties, je sais juste que chaque chose a un sens bien précis et est nécessaire ^^) : https://drive.google.com/file/d/1v74kffiV0HBskJo0LL49hMkA_mq7O09w/view?usp=sharing


2) Vu que le code de probabilité exacte me prenait la tête et devenait trop compliqué sur plein de situations spécifiques (Prospe, Desire, n'importe quelle carte de pioche ou autres situations à laquelle je ne pense pas forcément là dues à des cartes / situations spécifiques), j'ai décidé de faire un algorithme empirique, c'est à dire que je simule un grand nombre de mains (je sais pas, 1 million ou plus, c'est paramétrable), je simule des mains et je compte le nombre de mains qui remplissent les conditions. Il faut donc que je recode les situations de succès à chaque fois que je veux calculer, ce qui prend certes un peu de temps mais c'est finalement assez simple à faire et ça fonctionnera toujours, peu importe la situation ! Donc un peu une technique "flemme" mais j'ai de bons résultats.


Un exemple de code (récemment j'ai utilisé pour des proba sur des mains de départ sur Duel Links pour pour Dragonmaid) : https://drive.google.com/file/d/1sbqVOuHBRpKdml9fxZ8vVBpA2XiTi6rC/view?usp=sharing


Pour le tien, est-ce que tu pourrais expliquer comment il fonctionne ? Par exemple la proba de 2 card combo dans ton exemple, avec une carte en 6 exemplaires et une en 9 exemplaires, je vois 2 problèmes :

1) On dirait que tu ne calcules que la proba d'avoir exactement 1 de chaque, et non au moins 1 de chaque (donc ça perd beaucoup en intérêt) -> tu obtiens seulement 18.8% et avec le mien j'ai le détails de tous les succès possibles avec la somme finale :



2) A priori ça ne prend pas non plus en compte des starter communs, autrement dit sur les 6 tu peux en avoir 3 qui sont également inclus dans les 9… C'est quelque chose que les simulateurs classiques sur internet ne prennent pas en compte non plus généralement, et c'est aussi pour ça au départ que j'ai développé mes script, car au final ça arrive très souvent, donc les calculateurs deviennent vite inutiles.


Peut tu m'expliquer ton programme empirique car j'ai un peu de mal ?


Crobe
Modérateur
Messages : 2994


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 10:40

Pour le script empirique, tu crées un deck avec n cartes (par exemple 40, ici je faisais 30 car c'était sur Duel Links). Avec des nombres allant de 1 à 30. Je crée aussi un "Deck_shuffle" correspondant au deck après avoir mélangé, puis je crée une variable "Main" correspondant aux 5 premières cartes.


Ensuite, je fais une boucle selon le nombre de cartes que je veux vérifier en main :

– 1 card combo : si j'ai 6 starter dans mon deck (les 6 premières cartes de "Deck"), alors je regardes si chaque carte de la main est comprise dans dedans (avec 1 boucle, donc par exemple Main[i ] in Deck[0:6] si les 6 cartes sont les 6 premières du deck non mélangé). Donc après il faut visualiser un deck avec un ordre de cartes précis (j'utilise une vraie decklist à côté pour m'aider à avoir les bons emplacements dans le deck). Si j'ai un succès je le compte en retournant 1 (comme un comptage des succès)

– 2 card combo : je fais une deuxième boucle (donc 1 avec i et 1 avec j), et je vais donc vérifier pour chaque combinaison i et j s'ils sont compris dans starter correspondant. Par exemple j'ai besoin d'une carte en 6 exemplaires et d'une carte en 9 exemplaires, je vais vérifier "Main[i ] in Deck[0:6] and Main[j] in Deck[6:15], en supposant que tu as trié ton deck pour que les 6 premières cartes du deck non mélangé soient les 6 premiers starter et les 9 cartes suivantes les 9 autres starter. Ensuite c'est à toi de faire les vérifications adaptées selon la configuration/tri de ton deck non mélangé.

– tu peux faire pareil pour 3, 4 et 5 cartes en rajoutant une boucle et des vérifications en plus à chaque fois.

D'ailleurs je crois que je l'ai oublié dans mon exemple mais il faut aussi ajouter i=!j dans les vérifications entre la main et le deck (si i=j tu es en train de regarder la même cartes en main, ce qui n'est pas possible en 2 card combo, faut que ce soit 2 cartes différentes de ta main…). Puis une fois que tu as compté le nombre de succès, sur 1 million de tirages, ca estime de façon plutôt correcte la proba réelle. Donc je "triche" un peu en esquivant les proba réelles qui sont complexes, mais au final ça fonctionne bien ^^ Par contre ça fait plusieurs années donc à l'époque chatgpt n'existait pas (ou autres IA du genre), j'imagine que ça rend beaucoup plus simple l'écriture d'un script aujourd'hui.


Si t'as toujours des problèmes pour comprendre dis moi.


demonCHADO
Membre
Messages : 26


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 14:30

Merci beaucoup pour les explications, c est beaucoup plus limpide . Je pense que je vais l implémenter dans mon programme.


Crobe
Modérateur
Messages : 2994


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 14:45

Content de pouvoir aider ! Si jamais tu arrives à un script qui fonctionne bien, n'hésite pas à le partager pour continuer à en discuter ici, peut être qu'on peut continuer à améliorer tout ça, et moi même je pourrais récupérer des choses vu que ça m'intéresse ^^


demonCHADO
Membre
Messages : 26


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 16:22

Aucun problème, juste une dernière question, je joue sur edopro et je trouve le bot Feelin'Lucky null , et je pense qu'il est possible de l améliorer. Qu en penses tu ?


Crobe
Modérateur
Messages : 2994


haut haut de page
programme pour calculer les probas d'avoir les carte souhaités posté le [12/01/2025] à 17:02

Je ne m'y connais pas du tout en bot (edopro ou autre) malheureusement, je ne pourrais pas aider là-dessus. Peut être que d'autres gens lisant le topic pourront te répondre là-dessus.


Pages : 1