Je suis en train d'apprendre les bases d'AnyDice, et j'ai vu qu'il était utilisé pour réaliser des algorithmes plutôt complexes. Je me heurte à un problème très rudimentaire.
Supposons que je veuille lancer un pool de cinq dés à dix faces, trouver la valeur maximale obtenue sur un seul dé du pool, puis compter le nombre de fois où cette même valeur apparaît dans le pool (Cela semble être une chose étrange à rechercher, mais c'est important dans le cadre d'un programme plus vaste que je veux écrire).
Par exemple, si j'obtenais les valeurs {1,4,8,9,9} lors d'un lancer particulier, le résultat serait 2 (la valeur maximale, 9, apparaît deux fois).
J'essaie d'y parvenir avec le bout de code suivant :
XROLL : 5d10
XMAX : [1 le plus élevé de XROLL].
sortie [compter XMAX dans XROLL]
Avec ces résultats :
0,59.049
1,32.805
2,7.29
3,0.81
4,0.045
5,0.001
Maintenant, le simple fait qu'un compte de zéro apparaisse dans les résultats suggère que quelque chose ne va pas. Je soupçonne que ce qui se passe est que le code prend un lancer particulier de 5d10 quand il calcule XMAX, puis lance à nouveau avant de trouver le compte de XMAX, ce qui introduit la possibilité que le XMAX trouvé dans le premier lancer n'apparaisse même pas dans le second.
Ce dont j'ai besoin, c'est d'un moyen de "geler" le jet et de le convertir en une séquence statique afin de pouvoir disséquer les valeurs spécifiques qu'il contient, et de ne pas relancer le jet chaque fois que je fais référence à XROLL. Quelqu'un peut-il confirmer qu'AnyDice relance effectivement les dés à chaque fois que j'invoque XROLL, et suggérer un moyen de contourner ce problème ?
Je m'excuse si la formulation n'est pas claire ou si je n'utilise pas la bonne terminologie.