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.
|