25 votes

Comment puis-je comparer le résultat de "1d20+x, avec avantage" à "1d20+y, sans avantage", en supposant que x < y ?

Je lance un d20.

Si j'ai le choix entre d20+x avec avantage et d20+y sans avantage, quel choix dois-je faire pour maximiser le résultat ? Quelles sont les valeurs de x et y pour lesquelles le choix change (s'il change tout court) ?

Supposons que x < y.

35voto

Gambrinus Points 1738

Théorie

La première chose que nous allons voir est un tableau qui représente les chances de lancer des cartes. au moins un DC donné, donné un d20 avec ou sans avantage (pas encore de modificateurs).

\begin {array}{r|llll} \text {Natural DC} & \text {Avantage} & \text {No Advantage} & \text {Différence} & \text {Modificateur d'égalité} \\ \hline \text {DC 1-} & \text {100.000%} & \text {100.000%} & \text {0.000%} & 0 \\ \text {DC 2} & \text {99.750%} & \text {95.000%} & \text {4.750%} & 0.95\ (1) \\ \text {DC 3} & \text {99.000%} & \text {90.000%} & \text {9.000%} & 1.8\ (2) \\ \text {DC 4} & \text {97.750%} & \text {85.000%} & \text {12.750%} & 2.55\ (3) \\ \text {DC 5} & \text {96.000%} & \text {80.000%} & \text {16.000%} & 3.2\ (4) \\ \text {DC 6} & \text {93.750%} & \text {75.000%} & \text {18.750%} & 3.75\ (4) \\ \text {DC 7} & \text {91.000%} & \text {70.000%} & \text {21.000%} & 4.2\ (5) \\ \text {DC 8} & \text {87.750%} & \text {65.000%} & \text {22.750%} & 4.55\ (5) \\ \text {DC 9} & \text {84.000%} & \text {60.000%} & \text {24.000%} & 4.8\ (5) \\ \text {DC 10} & \text {79.750%} & \text {55.000%} & \text {24.750%} & 4.95\ (5) \\ \text {DC 11} & \text {75.000%} & \text {50.000%} & \text {25.000%} & 5 \\ \text {DC 12} & \text {69.750%} & \text {45.000%} & \text {24.750%} & 4.95\ (5) \\ \text {DC 13} & \text {64.000%} & \text {40.000%} & \text {24.000%} & 4.8\ (5) \\ \text {DC 14} & \text {57.750%} & \text {35.000%} & \text {22.750%} & 4.55\ (5) \\ \text {DC 15} & \text {51.000%} & \text {30.000%} & \text {21.000%} & 4.2\ (5) \\ \text {DC 16} & \text {43.750%} & \text {25.000%} & \text {18.750%} & 3.75\ (4) \\ \text {DC 17} & \text {36.000%} & \text {20.000%} & \text {16.000%} & 3.2\ (4) \\ \text {DC 18} & \text {27.750%} & \text {15.000%} & \text {12.750%} & 2.55\ (3) \\ \text {DC 19} & \text {19.000%} & \text {10.000%} & \text {9.000%} & 1.8\ (2) \\ \text {DC 20} & \text {9.750%} & \text {5.000%} & \text {4.750%} & 0.95\ (1) \\ \text {DC 21+} & \text {0.000%} & \text {0.000%} & \text {0.000%} & 0 \\ \end {array}

Un +1 à un jet sans avantage améliorera toujours les chances d'obtenir un nombre donné d'exactement 5 points de pourcentage. Inversement, un +1 à un jet d'avantage augmentera vos chances d'un montant égal au fait de remonter d'une rangée sur cette table : un test DC7 effectué avec +1 est équivalent à un test DC6 effectué avec +0. Un test DC20 effectué avec avantage et un modificateur de +1 est équivalent à un test DC19 effectué avec +0, ce qui constitue une amélioration de 9,250 points de pourcentage.

Nous pouvons faire quelques observations occasionnelles :

  • Il n'est pas possible d'obtenir un d20 naturel inférieur à 1, donc si le test d'avantage nécessite un 1 naturel, alors il n'y a aucun avantage à obtenir un modificateur (ou un avantage, d'ailleurs) : c'est un test qu'il est impossible d'échouer.
  • A DC 2, gagner l'avantage augmente les chances de succès de 4,750% (à 99,750%) mais gagner un modificateur +1 augmente les chances de succès de 5% (à 100%). Donc intuitivement, si nous comparons 1d20+x/ADV contre 1d20+x+1/NoADV, et que le nombre naturel dont nous avons besoin pour réussir est un 2 (pour le test d'avantage), alors le modificateur +1 est meilleur.
  • C'est la même chose à DC20 : gagner un avantage passe de 5% à 9,750%, mais gagner +1 passe de 5% à 10%. Encore une fois, le modificateur +1 est meilleur.
  • Mais les différences sont de plus en plus marquées à mesure que l'on se rapproche de la moyenne du rouleau : A DC3, l'avantage améliore les chances de 9% (90%99%) mais un modificateur +1 n'améliore les chances que de 5% (90%95%), donc ici, l'avantage est meilleur qu'un modificateur +1 ; mais il n'est PAS meilleur qu'un modificateur +2 (90%100%).
  • Dans la table, j'ai ajouté la colonne "Eq. Flat Modifier" : elle décrit, pour chaque ligne, la quantité de modificateur dont vous auriez besoin pour que le bénéfice de ce modificateur soit équivalent au bénéfice fourni par Advantage. Comme 5e n'a pas de modificateurs "demi" ou de DC fractionnaires, j'ai inclus le modificateur approprié (arrondi) entre parenthèses à côté. Dans chaque ligne, si la différence de modificateur entre les jets Avantage et Non-Avantage est supérieure à ce nombre, alors le modificateur est meilleur ; si ce n'est pas le cas, alors le jet Avantage est meilleur.

Pratique

Revenons donc à la question initiale : Étant donné deux jets, 1d20+x/Adv, et 1d20+y/NoAdv, lequel est le meilleur ? Eh bien, comme établi, cela dépend du DC de la vérification, mais pour obtenir les résultats de cette table :

  • Calculez la différence entre y et x
  • Soustrayez x (le modificateur du jet d'Avantage) du DC pour obtenir le "DC naturel".
  • Regardez l'Eq. Flat Modifier pour cette ligne dans le tableau
  • Si la différence entre y et x est supérieure à cette valeur, alors vous devez préférer le jet 1d20+y/NoAdv. Dans le cas contraire, il faut préférer le jet 1d20+x/Adv.

Exemples

  • DC19, 1d20+5/Adv vs 1d20+7/NoAdv
    • La différence est de 7 - 5 == 2
    • DC19 - 5 est DC14
    • DC14 a un modificateur d'égalité de 4,55.
    • Par conséquent, le rouleau Avantage est meilleur que le rouleau Non-Avantage.
  • DC3, 1d20+1/Adv vs 1d20+2/NoAdv
    • La différence est 2 - 1 == 1
    • DC3 - 1 est DC2
    • DC2 a un modificateur d'égalité de 0,95.
    • Par conséquent, le rouleau sans avantage est meilleur que le rouleau avec avantage.
  • DC17, 1d20+9/Adv vs 1d20+14/NoAdv
    • Nous pourrait Sauter les étapes : aucune des lignes n'a un modificateur d'Eq. Flat supérieur à 5, ce qui signifie que le modificateur de +5 sera toujours meilleur que (ou équivalent à) l'amélioration de l'Avantage. Néanmoins...
    • La différence est de 14 - 9 == 5
    • DC17 - 9 est DC8
    • DC8 a un modificateur d'égalité de 4,55.
    • Par conséquent, le rouleau sans avantage est meilleur que le rouleau avec avantage.

Roulements d'attaque

Les jets d'attaque sont un peu bizarres, parce que vous ne vous souciez plus simplement de réussir le test ; vous vous souciez aussi de savoir quel était le nombre naturel à cause des coups critiques et des échecs.

La plupart des calculs sont toujours corrects : si tout ce qui vous intéresse est de toucher/manquer, alors la table ci-dessus peut être utilisée, puisque les scénarios où un Naturel 2 touche et un Naturel 19 manque sont plutôt rares en 5e. Si, par contre, vous vous préoccupez davantage des coups critiques/manques automatiques, alors vous devriez introduire un "facteur de subjectivité", que vous pouvez définir comme vous le souhaitez : est-il important pour vous d'obtenir un coup critique (ou d'éviter un manque critique) ? Dans ce cas, allez toujours en Avantage. Sinon, utilisez le tableau ci-dessus. Personnellement, je m'en tiens généralement à ce tableau, mais le "facteur d'embrayage" fait partie de ces choses floues qui ne peuvent pas être définies objectivement, donc vous devrez prendre cette décision vous-même.

20voto

Glorfindel Points 1676

Cela dépend de ce que vous essayez d'obtenir. Par exemple, si vous devez atteindre DC 25, et \$x = 4\$ y \$y = 5\$ l'avantage sur le rouleau avec \$x\$ n'a pas d'importance ; vous ne ferez jamais plus de 24. Avec le +5, vous aurez au moins 5% de chances.

Ici (faites défiler vers le bas jusqu'à "Avantage versus Bonus simples") est un tableau qui montre quel bonus (différence entre x et y) correspond au fait d'avoir un avantage ou non.

enter image description here

(source : Zero Hit Points)

18voto

Carcer Points 60981

Si vous ne vous souciez que de maximiser le résultat attendu, par opposition à vos chances d'atteindre un nombre cible spécifique (par exemple, vous pouvez effectuer un jet contesté contre quelqu'un d'autre, comme dans le cas d'un grappin ou qui ne connaissent pas le chiffre cible à l'avance), la comparaison est assez simple. Avoir l'avantage sur un jet de d20 augmente le résultat attendu d'une moyenne de 10,5 à 13,82 (illustré par ce programme anydice ) ; cela représente un avantage de +3,32.

Par conséquent, pour qu'un jet sans avantage ait un résultat attendu plus élevé qu'un jet avec avantage, le modificateur du jet normal doit être supérieur de quatre points ou plus au modificateur du jet avec avantage. Un résultat de +3 avec avantage est pire que +7 normalement, et ainsi de suite.

8voto

trjh Points 11

D'abord, soustrayez \$x\$ à la fois de \$y\$ et du nombre cible contre lequel vous lancez le dé. Regardez ensuite ce graphique :

Screenshot

Dans le graphique, trouvez la position sur l'axe horizontal qui correspond au nombre cible (moins \$x\$ ) que vous essayez d'atteindre ou de dépasser, et la ligne de couleur qui correspond à la prime supplémentaire \$y-x\$ au rouleau sans avantage. Si cette ligne colorée est plus haute que la ligne noire incurvée à cette position sur l'axe horizontal, vous devez choisir le bonus le plus élevé plutôt que l'avantage.

(Plus précisément, les différentes lignes du graphique montrent la probabilité d'atteindre ou de dépasser un nombre cible donné avec différents jets : la ligne courbe noire correspond à un d20 avec avantage mais sans bonus, tandis que les cinq lignes droites de couleurs différentes qui la surmontent correspondent à des jets de d20+1 à d20+5).


Ou, pour résumer, vous devriez choisir une simple \$+y\$ le bonus par rapport à l'avantage \$+x\$ quand...

  • \$y = x + 1\$ et le nombre cible est au plus \$x+2\$ ou au moins \$x+20\$ ;
  • \$y = x + 2\$ et le nombre cible est au plus \$x+3\$ ou au moins \$x+19\$ ;
  • \$y = x + 3\$ et le nombre cible est au plus \$x+4\$ ou au moins \$x+18\$ ;
  • \$y = x + 4\$ et le nombre cible est au plus \$x+6\$ ou au moins \$x+16\$ ; ou
  • \$y \ge x + 5\$ .

( Comme l'a noté Xirema Les choses peuvent changer un peu si vous faites par exemple un jet d'attaque et que vous vous souciez des crits. Un jet avec avantage a 9,75% de chances de vous donner un 20 naturel, et seulement 0,25% de chances d'obtenir un 1 naturel, alors qu'avec un jet de d20 normal, les 1 et les 20 apparaissent 5% du temps chacun. La question de savoir si ces différences dans les chances de crits valent la peine d'être échangées contre une chance un peu moins bonne de toucher dépend à la fois du DC de la cible et de la valeur que vous accordez aux crits).

1voto

pgraner Points 690

en résumé - En supposant qu'aucun rouleau n'est sûr, alors l'avantage a de meilleures chances si $$ \frac { \left ( \text {DC} - \text {bonus d'avantage} - 1 \right )^2}{ \text {DC} - \text {prime normale} - 1 { \phantom {{}^{2}}}} < 20 \tag {1} \,.$$ Voici un script C# en ligne pour jouer avec cela. Détails au bas de cette réponse.


Exemple

  1. Vous devez battre un \$ \text {DC} = 10 .\$

  2. Vous avez deux options :

    • Faites un jet normal avec un bonus de \$+5 .\$

    • Lancer avec avantage et un bonus de \$+1 .\$

  3. Branchez ceci sur \$ \operatorname {Eq.}{ \left (1 \right )}\$ à trouver : $$ \frac { \left ( \text {DC} - \text {bénéfice de l'avantage} - 1 \right )^2}{ \text {DC} - \text {prime normale} - 1 { \phantom {{}^{2}}}} ~=~ \frac { \left (10 - 1 - 1 \right )^2}{10 - 5 - 1} ~=~ \frac {8^2}{4} ~=~16 ~<~ 20 \,.$$

  4. Depuis \$16 < 20 ,\$ cette inégalité est \$ \texttt {TRUE} ,\$ et donc rouler avec avantage est mieux.

  5. En revanche, si le \$ \text {DC}\$ étaient \$17\$ au lieu de \$10 ,\$ alors l'inégalité se serait réduite à $$ \frac { \left ( \text {DC} - \text {bonus d'avantage} - 1 \right )^2}{ \text {DC} - \text {prime normale} - 1 { \phantom {{}^{2}}}} ~=~ \frac { \left (17 - 1 - 1 \right )^2}{17 - 5 - 1} ~=~ \frac {{15}^2}{11} ~=~ \sim 20.45 ~<~ 20 \,,$$

    et puisque \$ \sim 20.45 < 20\$ es \$ \texttt {FALSE} ,\$ cela signifie que les chances ne sont pas meilleures lorsque l'on roule avec un avantage. Donc, dans ce cas, il semble préférable de lancer le dé normalement avec \$+5\$ plutôt qu'avec \$+1\$ et avantage.


Explication

D'abord :

  1. Si l'une ou l'autre option est sûre, faites-le.

  2. Si aucune des deux options n'a de chance, vous ne pouvez rien faire de toute façon.

Il ne reste donc que le cas où les deux options ont une possibilité non certaine.

Ensuite, les chances d'échouer à battre un DC sur un seul jet sont de $$ P_{ \text {roulement}} ~=~ 5 \, \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ] - 1 \right ) \, \% \,, $$ et les chances de ne pas battre un DC avec un avantage sont de $$ P_{ \begin {array}{c} \text {roulez avec} \\ [-10px] \text {avantage} \end {array}} ~=~ P_{ \text {roll}}^2 ~=~ \left (5 \, \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ] - 1 \right ) \, \% \right )^2 ~=~ 0.25 \, \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ] - 1 \right )^2 \, \% \,.$$

Ainsi, vos chances d'échec avec avantage sont plus faibles lorsque $$ 0.25 \, \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ]_{ \text {avantage}} - 1 \right )^2 \, \% ~<~ 5 \, \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ]_{ \text {normal}} - 1 \right ) \, \% \,,$$ ou $$ \frac { \left ( \left [ \text {DC} \right ] - \left [ \text {bonus} \right ]_{ \text {avantage}} - 1 \right )^2 }{ \left [ \text {DC} \right ] - \left [ \text {bonus} \right ]_{ \text {normal}} - 1 } ~<~ 20 \,. $$

Pour rendre cela un peu plus intuitif, écrivons-le sous la forme suivante $$ \frac { \left ( \text {DC} - \text {bonus d'avantage} - 1 \right )^2 }{ \text {DC} - \text {prime normale} - 1 } ~<~ 20 \,. $$


Notes

  1. Le site en résumé Le conseil recommande de ne pas rouler avec l'avantage lorsque les chances sont les mêmes dans les deux sens. J'ai choisi cette convention car c'est moins de travail. Mais, si quelqu'un aime rouler, il pourrait rouler avec avantage si $$ \frac { \left ( \text {DC} - \text {bonus d'avantage} - 1 \right )^2}{ \text {DC} - \text {prime normale} - 1 { \phantom {{}^{2}}}} \le 20 \,.$$

  2. La logique ci-dessus suppose que le dé du d20 est juste. S'il ne l'est pas, alors je suppose que le fait de lancer un dé sans avantage est un peu mieux qu'il ne le serait normalement, car un dé injuste semblerait avoir moins de variabilité entre les jets. Puisque la plupart des dés ne sont probablement pas parfaitement équitables, un optimiseur acharné pourrait préférer lancer le dé sans avantage dans les cas suivants $$ \frac { \left ( \text {DC} - \text {bénéfice de l'avantage} - 1 \right )^2}{ \text {DC} - \text {prime normale} - 1 { \phantom {{}^{2}}}} \approx 20 \,.$$

  3. Le site \$`` 20 "\$ dans l'inégalité n'est pas une coïncidence ; elle correspond à la " 20 " dans " d20 ". De même, le \$`` 1 "\$ correspond à la valeur minimale de la filière. Ainsi, si l'on utilise un autre type de dé, cette inégalité peut être généralisée à $$ \frac { \left ( \text {DC} - \text {bande d'avantages} - \text {valeur minimale du dé} \right )^2}{ \text {DC} - \text { bonus normal} - \text {min die value} { \phantom {{}^{2}}}} ~<~ \text {valeur maximale du dé} - \text {valeur minimale du dé} + 1 \,.$$

  4. La dérivation ci-dessus s'est concentrée sur la probabilité d'échec, plutôt que sur la probabilité de succès, parce que le calcul aurait été un peu plus laid pour un jet avec avantage si nous nous étions concentrés sur la maximisation du succès (plutôt que sur la minimisation de l'erreur). Cependant, si quelqu'un fait le même calcul pour un jet avec un désavantage, le calcul devrait être plus propre si vous le faites en vous concentrant sur la maximisation du succès. La raison en est que l'avantage/désavantage nécessite un second jet de dé uniquement en cas d'échec/succès du premier jet.


Script C# pour jouer avec ceci

J'allais joindre un extrait de JavaScript ici, mais je suppose que cette fonction n'est pas disponible sur ce StackExchange. Donc, Voici un script C# qui peut être exécuté en ligne.

Notes :

  1. Pour l'utiliser, appelez Report(dc, bonus_normal, bonus_advantage); et il vous dira lequel est le meilleur.

    • Actuellement, il est préchargé pour appeler Report(10, 5, 1); y Report(17, 5, 1); pour démontrer l'exemple donné en haut de cette réponse. Cela devrait donner :

      For    DC = 10    Bonus (normal) = 5    Bonus (advantage) = 1:
      Your odds are better with the power of ADVANTAGE!
      
      For    DC = 17    Bonus (normal) = 5    Bonus (advantage) = 1:
      Advantage is for losers; roll normally!
  2. Par défaut, elle utilise un d20, avec une valeur minimale de 1 et une valeur maximale de 20 . Ces deux valeurs peuvent être modifiées dans le code.

  3. \$ \operatorname {Eq.}{ \left (1 \right )}\$ (et sa généralisation, telle qu'utilisée dans ce script) suppose que, si les chances ne peuvent pas être améliorées par un avantage, vous préférez lancer le dé normalement (puisque c'est moins de lancer).

  4. \$ \operatorname {Eq.}{ \left (1 \right )}\$ suppose que le succès et l'échec sont tous deux possibles avec un jet d'avantage et un jet normal. Ce script vérifie que c'est le cas avant d'utiliser la fonction \$ \operatorname {Eq.}{ \left (1 \right )} .\$

Code source (C#) :

using System;

public class Program
{
    //    A typical d20 has a minimum value of 1 and a maximum of 20:
    public const long MINIMUM_DIE_VALUE = 1;
    public const long MAXIMUM_DIE_VALUE = 20;

    public static void RunExample()
    {
        Report(
                    10
                ,   5
                ,   1
            );

        Report(
                    17
                ,   5
                ,   1
            );
    }

    public static void Report(
                long dc
            ,   long bonus_normal
            ,   long bonus_advantage
        )
    {
        var stringMessage = 
                    "For\tDC = "
                +   dc.ToString()
                +   "\tBonus (normal) = "
                +   bonus_normal.ToString()
                +   "\tBonus (advantage) = "
                +   bonus_advantage.ToString()
                +   ":"
                +   System.Environment.NewLine
            ;

        if (ShouldRollWithAdvantage(
                    dc
                ,   bonus_normal
                ,   bonus_advantage
            ))
        {
            stringMessage += "Your odds are better with the power of ADVANTAGE!";
            //Console.WriteLine("Your odds are better with the power of ADVANTAGE!");
        }
        else
        {
            stringMessage += "Advantage is for losers; roll normally!";
            //Console.WriteLine("Advantage is for losers; roll normally!");
        }

        Console.WriteLine(stringMessage);
        Console.WriteLine();
    }

    public static bool ShouldRollWithAdvantage(
                long dc
            ,   long bonus_normal
            ,   long bonus_advantage
        )
    {
        //    Case 1:
        //        If rolling with advantage can't succeed, then just roll normally.
        //        Doesn't matter if rolling normally can't succeed, either, because if
        //        you're going to fail either way, may as well only roll once.
        if (dc - bonus_advantage > MAXIMUM_DIE_VALUE)
        {
            return false;
        }

        //    Case 2:
        //        If rolling without advantage can't succeed, then roll with advantage.
        if (dc - bonus_normal > MAXIMUM_DIE_VALUE)
        {
            return true;
        }

        //    Case 3:
        //        If rolling without advantage always succeeds, then roll without advantage.
        if (dc - bonus_normal <= MINIMUM_DIE_VALUE)
        {
            return false;
        }

        //    Case 4:
        //        If rolling with advntage always succeeds, then roll with advantage.
        if (dc - bonus_advantage <= MINIMUM_DIE_VALUE)
        {
            return true;
        }

        //    Case 5:
        //        Since rolling with advantage and rolling without advantage are both
        //        possible-but-not-guaranteed, we compare their odds of success.
        //        
        //        This method checks if
        //            (DC - bonus_advantage - 1)^2
        //        is less than
        //            20 * (DC - bonus_normal - 1)
        //        instead of the fraction to avoid floating-point values.
        {
            var leftHandSide = (dc - bonus_advantage - MINIMUM_DIE_VALUE);
            leftHandSide *= leftHandSide;

            var rightHandSide = (MAXIMUM_DIE_VALUE - MINIMUM_DIE_VALUE + 1) * (dc - bonus_normal - MINIMUM_DIE_VALUE);

            var shouldRollWithAdvantage = leftHandSide < rightHandSide;

            return shouldRollWithAdvantage;
        }
    }

    private static bool TryValidateProgramConstants(
                out string errorMessage
        )
    {
        if (!(MINIMUM_DIE_VALUE < MAXIMUM_DIE_VALUE))
        {
            errorMessage = "Maximum die value must be greater than minimum die value.";
            return false;
        }

        if (MINIMUM_DIE_VALUE < -1000)
        {
            errorMessage = "Unreasonably low minimum die value.";
            return false;
        }

        if (MAXIMUM_DIE_VALUE > 1000)
        {
            errorMessage = "Unreasonably high maximum die value.";
            return false;
        }

        errorMessage = default(string);
        return true;
    }

    public static void Main()
    {
        string errorMessage;
        if (TryValidateProgramConstants(out errorMessage))
        {
            RunExample();
        }
        else
        {
            Console.WriteLine("Error in program validation; aborting run.");

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                Console.WriteLine(errorMessage);
            }
        }

    }
}

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