6 votes

Comment puis-je calculer la distribution de "jeter 4d6, relancer sans cesse les 1 et les 2, et laisser tomber le dé le plus bas" dans AnyDice ?

Je rejoins un groupe de D&D. Pour générer chaque score de capacité, le DM nous demande de lancer 4d6, de relancer un 1 ou un 2, puis de laisser tomber le dé le plus bas. Si le résultat est un 1 ou un 2, on relance encore et encore jusqu'à ce que le résultat soit un 3 ou plus.

Je suis curieux de connaître la distribution, et je me demande si AnyDice pourrait le faire. Comment puis-je calculer la distribution de cette méthode de génération de score d'aptitude dans AnyDice ?

0 votes

Ai-je raison de supposer que votre DM utilisait cette méthode pour générer des scores d'aptitudes ?

23voto

Alex P Points 28189

En supposant que vous relanciez chaque d6 jusqu'à ce qu'il n'affiche plus de 1 ou de 2, la façon la plus simple de modéliser cette contrainte est d'utiliser un dé personnalisé, d{3..6} . Cela représente un dé uniforme qui ne peut obtenir que les valeurs 3, 4, 5 et 6 (remarque : à la table, vous pouvez remplacer d4+2 et obtenir le même résultat, si vous voulez faire un seul jet sans relance).

Pour ne conserver qu'un sous-ensemble de dés, utilisez les fonctions highest o lowest .

Ainsi, nous pouvons indiquer "4d6, relancer les 1 et les 2, puis laisser tomber le dé le plus bas" :

output [highest 3 of 4d{3..6}]

6 votes

Si vous ne tenez pas compte des jets de 1 ou 2, le fait de lancer le dé {3, 4, 5, 6} une fois est fonctionnellement identique.

2 votes

Pourquoi d{3..6} "la façon la plus simple de modéliser cette contrainte" alors que d4+2 existe ?

1 votes

@Zachiel : Parce que pour lancer plus d'un de vos dés d4+2, vous devez utiliser une syntaxe maladroite comme 4d(d4+2) . De plus, cela ne se généralise pas à des choses comme "lancez 4d6 et relancez tous les jets et trois "alors qu'il est facile de l'exprimer sous la forme 4d{2,4..6} .

15voto

Dale M Points 183702

Si vous continuez à rouler jusqu'à ce qu'il n'y ait plus de 1 ou de 2

Cela revient à lancer 4 dés à 4 faces marqués de 3 à 6. Donc :

output [highest 3 of 4d{3..6}]

Si vous ne relancez qu'une fois

Pensez au deuxième dé que vous lancez sur un 1-2, qui vous donnera un résultat de 1-6. Imaginez maintenant que vous faites une relance si vous obtenez un résultat de 3 à 6, mais que toutes les faces de ce dé sont identiques et correspondent au nombre que vous avez obtenu. Combinez maintenant tous ces "rerolls" en un seul grand dé de 36 faces, qui aura 8 faces marquées 3-6 et 2 faces marquées 1-2. Nous pouvons diviser le nombre de faces par 2 pour obtenir un dé équivalent à 18 faces. C'est ainsi que l'on obtient un dé à 18 faces :

output [highest 3 of 4d{{3..6}:4, {1..2}}]

0 votes

Je pense que cette formule est un peu erronée. Elle utilise le 3..6 4 fois ( :4 ), créant ainsi 16 faces marquées 3-6 au lieu de 8 faces. Ce n'est pas tout à fait le même exemple, mais voici quelques statistiques avec différentes relances anydice.com/programme/18106 L'équation "relancer une fois" devrait donc être l'une des suivantes output [highest 3 of 4d{{3..6}:2, {1..2}}] OU output [highest 3 of 4d{{3..6}, {1..6}}]

9voto

Zachiel Points 33633

Lancer un d6 puis relancer tous les 1 et 2 à chaque fois qu'ils apparaissent est fonctionnellement identique à lancer un d4, puis ajouter 2.

De la même manière, lancer quatre fois 1d4+2 et prendre le meilleur 3 revient à lancer quatre fois 1d4 et prendre le meilleur 3, puis à ajouter 6 (le +2 des trois meilleurs dés).

La formule suivante est un peu plus courte que celle proposée par AlexP, et, comme elle évite d'utiliser des d{3..6} Il est donc plus facile à lire, même pour quelqu'un qui n'est pas familier avec la syntaxe d'AnyDice.

output [highest 3 of 4d4]+6

6voto

trjh Points 11

En solution générale pour relancer une fois est d'utiliser une fonction d'aide comme celle-ci :

function: ROLL:n reroll BAD:s as REROLL:d {
  if ROLL = BAD { result: REROLL }
  result: ROLL
}

Vous pouvez assigner le résultat de cette fonction à un dé personnalisé, puis en lancer autant que vous le souhaitez :

X: [d6 reroll {1,2} as d6]
output [highest 3 of 4dX]

Pour relancer un nombre illimité de fois, nous pouvons utiliser une astuce de cette réponse de Carcer et faire passer le "dé vide" d{} en tant que REROLL paramètre, así :

Y: [d6 reroll {1,2} as d{}]
output [highest 3 of 4dY]

Lors de l'addition des résultats de la fonction, AnyDice ignorera simplement ces dés vides, comme si les jets qui les ont produits n'avaient jamais eu lieu.

Cependant, pour des dés simples comme un simple d6, il est également possible de définir directement un dé personnalisé qui exclut les faces à relancer, comme décrit dans la section Alex P's y Dale M's réponses :

output [highest 3 of 4d{3..6}]

L'astuce générale de relance est plus utile dans les cas où le "dé" à relancer est déjà le résultat d'une procédure de relance complexe, de sorte que les probabilités des différents lancers ne sont pas toutes les mêmes (comme c'est le cas avec un simple d6).

Par exemple, si vous voulez calculer la distribution des scores d'aptitude obtenus en lançant 4d6, en laissant tomber le dé le plus bas et en puis de relancer l'ensemble du score jusqu'à ce qu'il soit d'au moins 10 vous pouvez utiliser ce code :

output [[highest 3 of 4d6] reroll {3..9} as d{}]

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X