C'est 66,49%. Voici la formule que j'ai utilisée :
function: any doubles of N:n or above in ROLL:s {
loop X over ROLL {
if X >= N & (ROLL = X) > 1 {
result: 1
}
}
result: 0
}
D: d{0,0,0,4,5,6}
output [any doubles of 4 or above in 6dD]
La fonction est assez simple : nous parcourons chaque nombre X dans le jet, et vérifions si :
- X est au moins de 4, et
- X apparaît plus d'une fois dans le jet.
Si les deux conditions sont vraies pour un X, nous retournons le nombre 1 ; s'ils ne sont vrais pour aucune valeur de X, nous retournons 0 à la fin de la boucle.
La partie la plus importante de ce code est le :s
après le nom du paramètre ROLL
dans la déclaration de la fonction, qui dit à AnyDice que nous voulons que cette valeur de paramètre soit une séquence de nombres. Lorsque nous passons plutôt un pool de dés, AnyDice appelle automatiquement la fonction avec chaque résultat possible de lancer les dés et collecte les résultats renvoyés par la fonction dans un nouveau dé personnalisé pondéré par leurs probabilités.
Ps. Le dé personnalisé D
n'est pas strictement nécessaire : vous obtiendrez exactement les mêmes résultats si vous remplacez 6dD
par 6d6
dans le code ci-dessus. Mais renommer tous les côtés en dessous de 4 avec le même numéro rend le code un peu plus rapide, car AnyDice n'a pas à parcourir autant de jets possibles distincts mais équivalents.