30
\$\begingroup\$

For context, part of the Elven Accuracy feat (Xanathar's Guide to Everything, p. 74) states:

Whenever you have advantage on an attack roll using Dexterity, Intelligence, Wisdom, or Charisma, you can reroll one of the dice once.

So the obvious way to handle this, mechanically, is to roll two dice, pick the lowest, and roll it again. But as an effort to save time, I've proposed instead simply rolling three dice simultaneously, and picking the highest rolled value.

The problem is that I'm not certain that this is mathematically correct.

I created a code simulation that was intended to model the probability curve of both methods, and it suggests that the two methods are mathematically equivalent, but the simulation only performs direct sampling of random numbers and their results; it has unavoidable error in the results, and it doesn't attempt to solve the underlying mathematical principles involved.

//Roll 3, pick highest
ResultSet: Double Advantage 
    Average: 15.48246
    Variance: 14.94721234837884
    Std. Deviation: 3.8661624834425727
    95% range: [6, 20]
    Mode: 20 
    Median: 16

//Roll 2, reroll lowest, pick highest
ResultSet: Alternate Double Advantage
    Average: 15.488486
    Variance: 14.944649427739675
    Std. Deviation: 3.8658310138623073
    95% range: [6, 20]
    Mode: 20 
    Median: 16 

Is it correct to say that these two dice-rolling methods are equivalent, or should I stick to the RAW interpretation of how these dice should be rolled?


For full context, I'm planning out a build for a Shadow Sorcerer that fights only in melee combat, and if this character has the ability to nearly-permanently shroud themselves in Darkness (which is one of their class features), it'll give them nearly permanent Advantage against creatures that don't have Devil's Sight or Truesight (or a reliable, spammable Counterspell/Dispel Magic). So simplifying this roll can matter in terms of time saved.

\$\endgroup\$
  • 6
    \$\begingroup\$ @Deacon It sounds like you want to answer the question, but comments are not the right place for answers. I suggest you post a separate answer, since the comment will probably get deleted. You will also get reputation out of posting it as an answer if somebody votes for your answer, but that won't happen for comments. (See our policy on answers in comments.) \$\endgroup\$ – Bloodcinder Aug 20 '18 at 15:27
39
\$\begingroup\$

As other answers have stated, this method is equivalent for the higher/highest die but is ambiguous as to the value of the lower die.

That said, here is an intuitive way to think about this and convince yourself that the methods are equivalent for the higher/highest die: Instead of "rolling a die" by immediately tossing it onto a surface and waiting for it to settle, replace that with the two-step process of (1) rattling it under an opaque cup, and (2)removing the cup to reveal the die. The key here is that any amount of time can go between steps (1) and (2).

Now think about the roll two and reroll method, specifically as follows:

  • Rattle three dice under three cups
  • Reveal two dice (you have now "rolled" two dice)
  • Discard the lower of the two revealed
  • Reveal the third die (you have now "re-rolled" the second die-- nothing says it has to be the same physical die, and we assume all dice are fair)
  • Choose the highest of the two non-discarded dice

Vs the roll three method:

  • Rattle three dice under three cups
  • Reveal three dice (you have now "rolled" three dice)
  • Choose the highest of the three dice

Is anything fundamentally different happening here? No. Nothing is really changing except the order of the reveals. You will always end up selecting the same highest die. But again, there is ambiguity for the identity of the second die.

I find thinking about reroll situations in this way (i.e., separating the generation of the number from my knowledge of it) helpful to sharpen my intuition about how randomness actually works.

\$\endgroup\$
  • 8
    \$\begingroup\$ I really appreciate this example as a math teacher. However, can you clarify what the ambiguity is with regards to the non-highest dice? That might not be obvious to the reader. \$\endgroup\$ – Bloodcinder Aug 20 '18 at 17:42
  • 1
    \$\begingroup\$ Well presumably you wouldn't want to throw away the higher value in case when re-rolling you score less. Say you roll 2 dice; a 14 and a 9. You can choose to re-roll the 14 or the 9. Choosing to re-roll the 9 ensures that your minimum roll will be a 14. If instead you re-roll the 14, then you're throwing away a safety net with no benefit. Rolling 3 at once is fine since the lowest 2 results don't matter and in the case that it did (a few Unearthed Arcana feats do use this) the player can be assumed to have re-rolled the lower value so only the two higher values will be selected. \$\endgroup\$ – soxroxr Feb 8 '20 at 11:23
24
\$\begingroup\$

There is no difference... usually.

When you roll 2 dice and then re-roll 1 of them and take the highest, you're effectively reproducing the results of rolling 3 dice and taking the highest. Since you're generally interested in taking the highest (see FrazzleUK's answer for when you might not want to) and since the dice rolls are independent (you always get to roll a 3rd die regardless of the outcome on the first 2), there is effectively no difference in what you propose.

However, streamlining the number of dice allowed from both rolls and rerolls into initially rolled dice could cause problems when interacting with certain other features that allow or force either rerolling or rolling additional dice only when certain natural die results or roll outcomes are met. If the particular combination of features results in a conditional relationship among the dice (in other words, if the number of dice you roll when streamlining isn't always the same and might depend on the results rolled) then there may be a difference in outcomes when using what you propose.

The edge cases when interacting with such other features aren't complicated to analyze but aren't really worth the hassle of considering, because there are a lot of possible interactions and there could be more when new features are released in future products. Just to be safe, it's easiest to stick with the standard rules for Elven Accuracy if you have a character who will combine it with other rerolling features, but if there are no feature interactions to worry about then it should be fine.

And it might be a waste of time.

In addition, although it takes some brainpower to pick and reroll 1 of the 2 dice when using Elven Accuracy, the player won't always want to do so. If 1 of their dice is a critical or obvious success (such as a 20 on an attack roll, or a high roll against a known AC) then they would probably skip the reroll. If you always roll 3 dice and pick the highest, the total brainpower spent over time might be higher than if you only reroll 1 of the 2 when it seems necessary, depending on the person.

In other words, my experience at the table is that a player is unlikely to actually use the benefits of Elven Accuracy unless they have advantage (which is not often in general but sounds like it will be often in your use case) but it still looks like they failed the roll (which is unlikely with advantage). There might actually be more overhead in explaining (and clarifying subsequent player confusion about) how you're modifying Elven Accuracy and in waiting for less masterful players to find the extra dice than you would be saving in dice rolling time. Your mileage (and players) may vary.

\$\endgroup\$
  • 3
    \$\begingroup\$ If anybody has suggestions for improvement, please let me know. Otherwise, if you merely want to express the opinion that you agree or disagree with my experience-based answer, please use the voting system. I'm not going to suddenly decide that my experience in the past hasn't actually happened, so please leave comments about specific answer improvements, not merely dissent or approval. \$\endgroup\$ – Bloodcinder Aug 21 '18 at 13:09
  • \$\begingroup\$ The context for this question (which isn't relevant to answering it, but which has some relevance to your answer) is that I'm planning out a build for a Shadow Sorcerer that fights only in melee combat, and if this character has the ability to nearly-permanently shroud themselves in Darkness (which is one of their class features), it'll give them nearly permanent Advantage against creatures that don't have Devil's Sight or Truesight (or a reliable, spammable Counterspell/Dispel Magic). So there is at least one situation where simplifying this roll can matter in terms of time saved. \$\endgroup\$ – Xirema Aug 21 '18 at 20:00
  • 2
    \$\begingroup\$ Actually, that's quite relevant context for anybody answering. So I edited it into your original question at the bottom. If you disapprove of the edit, please rollback. It makes it clear that your motivating case will happen all the time, which is not obvious by default. \$\endgroup\$ – Bloodcinder Aug 22 '18 at 2:00
  • \$\begingroup\$ @Xirema Is it also an accurate assumption (from what you've added) that in this context you're the player, not the DM? That may also affect how people frame their answers. I approached it from the perspective that you're the DM. If you're the player, I'd revise slightly. \$\endgroup\$ – Bloodcinder Aug 22 '18 at 11:38
17
\$\begingroup\$

They are the same

You appear to be correct with the mechanical process. Rolling 2 dice and then re-rolling one of them is the same as rolling 3 dice initially.

The only caveat I can see would be if you for some reason wanted to fail the roll. If you roll 2 dice (for advantage) you have to take the highest die with RAW. With the feat you have the option to re-roll the highest die so you could potentially give yourself a better chance at failing. With 3 dice you wouldn't be able to tell which was the re-rolled die.

If you are aiming to succeed however then either option will return the same results.

\$\endgroup\$
  • 2
    \$\begingroup\$ Rolling three and wanting to fail just means that the third die is a rerolled "higher" and picking the lowest of the three is, once again, mathematically identical for the same reasons. \$\endgroup\$ – Draco18s no longer trusts SE Aug 21 '18 at 0:16
  • 2
    \$\begingroup\$ @Draco18s, you've misunderstood the scenario. The unoptimised scenario is that you roll two dice, reroll the higher, and then take the higher value of the two visible dice. The closest optimisation would be to take the middle of the three, but that's not equivalent. In the extreme that the dice are D2s the desired output is to get a 1 37.5% of the time and a 2 62.5%. \$\endgroup\$ – Peter Taylor Aug 21 '18 at 7:36
  • 1
    \$\begingroup\$ +1 - this could also come up if you wanted to avoid a crit, for example if you were trying to knock someone out without killing them. \$\endgroup\$ – Miniman Aug 21 '18 at 13:09
  • \$\begingroup\$ @PeterTaylor Ah, I see. Yes, that would be a different scenario. I misunderstood. \$\endgroup\$ – Draco18s no longer trusts SE Aug 21 '18 at 14:23
  • \$\begingroup\$ While not wrong, you can always choose to fail a roll, and don't forget, a nat 20 doesn't mean "you hit really hard" it means you succeed very well at achieving what you wanted. If you want to knock them out or do low damage, you don't need to hope for a low roll, you can tell your DM that you want to do non-lethal damage, such as hitting them with the pommel, the side of your axe, you give them a disabling shot in the throat, something like this. Trying to stab someone "not too bad" is a pretty poor way to achieve that result. \$\endgroup\$ – soxroxr Feb 8 '20 at 11:27
10
\$\begingroup\$

You can prove they are identical rather than simulate it.

There are 400 different results from rolling 2 dice. For each of those, if you reroll the lower value, there are 20 different reroll possibilities. Each of these 8000 possibilities is equally likely.

Similarly, if you roll 3d20, there are 8000 possibilities.

Simply record how many 20s, 19s, all the way down to 1s you get in each case.

// array containing all the sides of a d20.  Makes later code
// a bit cleaner:
int d20[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

using result = std::map<int, int>;

template<std::size_t N>
using roll = std::array<int, N>;

auto all_2die_rolls() {
    std::vector<roll<2>> result;
    for (int i:d20)
        for (int j:d20)
            result.push_back({{i,j}});
    return result;
}

auto all_3die_rolls() {
    std::vector<roll<3>> result;
    for (int i:d20)
        for (int j:d20)
            for (int k:d20)
                result.push_back({{i,j,k}});
    return result;
}

auto apply_elven( std::vector<roll<2>> two_die_rolls ) {
    std::vector<roll<2>> result;
    for (auto roll:two_die_rolls) {
        auto keep = *std::max_element( roll.begin(), roll.end() );
        for( int k:d20)
            result.push_back({{keep, k}});
    }
    return result;
}

template<std::size_t N>
auto generate_result( std::vector<roll<N>> rolls ) {
    result retval;
    for (auto roll:rolls) {
        retval[ *std::max_element( roll.begin(), roll.end() ) ]++;
    }
    return retval;
}

void print( result r ) {
    std::size_t total = 0;
    for (auto[ roll, count ]:r) {
        std::cout << "d20 = " << roll << " has " << count <<"\n";
        total += count;
    }
    std::cout << "Total is " << total << "\n";
}

bool test_hypothesis() {
    auto two_die = all_2die_rolls();
    auto three_die = all_3die_rolls();
    two_die = apply_elven(two_die);
    // for debugging: print(generate_result(two_die));
    // for debugging: print(generate_result(three_die));
    return generate_result(two_die) == generate_result(three_die);
}

This C++ code first generates the 8000 possible cases for 3d20 and 2d20+EA. Then it counts how many 1s, 2s, .., 20s, and compares if they are the same. It returns true, which means "rolling advantage then rerolling the lower roll with elven accuracy, then keeping the highest, generates the same results, exactly, as rolling 3 dice and taking the highest" (live example).

So long as you are aiming to hit and make optimal decisions (by rerolling the low die) your probabilities are the same. The only case where you wouldn't bother on an attack roll would be if you already got a 20, and doing a reroll there is harmless (and doesn't change the probabilities or results).

\$\endgroup\$
3
\$\begingroup\$

I like very much some of the answers already provided, both the intuitive ones and the ones with the code and numerical experiments. I would like to contribute giving a mathematical proof that states that the two procedures are the same. I will focus on considering the player wanting the highest roll, not the lowest one.

We have to deal with order statistics of discrete variables. Let me denote with \$f(x)\$ the probability of getting \$x\$ on a die and with \$F(x)\$ the cumulative distribution function. Assume that the n-faced die is fair.

Denote with \$X_{(2)}\$ and \$X_{(3)}\$ the maximum obtained over 2 and 3 rolls, respectively (I try to mimic the Wikipedia notation). The first strategy consists of rolling 3 dice and take the highest result: then the probability of getting \$x\$ is

\begin{align}P(X_{(3)}=x) &= F(x)^3 - [ F(x) - f(x) ]^3 \\&= 3 F(x)^2 f(x) -3 F(x) f(x)^2 + f(x)^3\end{align}

The second strategy, i.e. roll two dice, discard the lowest one, roll another die and take the highest result, can be mathematically described as

$$P(x) = P(d_3=x) P(X_{(2)}\leq x) + P(d_3<x) P(X_{(2)}=x)$$

where I denote with \$d_3\$ the roll of the 3rd die. The above formula take into account the two cases: we get a result less or equal to \$x\$ in the first two rolls and then we get \$x\$ in the 3rd one or we get \$x\$ in one (or both) of the first 2 rolls and the 3rd is less than \$x\$. Using the first formula in here we can rewrite the above one as

$$P(x) = f(x) F(x)^2 + [F(x) - f(x)][F(x)^2 - [ F(x) - f(x) ]^2]$$

then, after some algebra,

$$P(x) = 3 F(x)^2 f(x) -3 F(x) f(x)^2 + f(x)^3$$

which is the same formula for the probability of getting \$x\$ as the highest result over 3 rolls.

Then, the final answer is yes: the two methods are mathematically equivalent. The numerical experiments and all the code of the previous answers strongly suggested that the OP was right, but this mathematical proof is valid for any die, although I did not look for a generalization with \$n-1\$ and \$n\$ rolls.

\$\endgroup\$
  • \$\begingroup\$ Why did you put some subscripts in parentheses? \$\endgroup\$ – Thomas Markov Jul 31 '20 at 17:02
  • 2
    \$\begingroup\$ @ThomasMarkov Because I used the wikipedia notation: \$X_{(n)}\$ means the n--th order statistic of \$\{X_1, X_2, \dots, X_m \}\$. \$\endgroup\$ – Eddymage Jul 31 '20 at 17:29
2
\$\begingroup\$

Choices

They Are Equivalent for Achieving Highest Roll

Assuming you always re-roll the lowest, either method is equivalent.

Re-roll One Allows Avoiding Critical Hits

The choice of which die to roll allows the player to avoid undesired critical hits.

you can reroll one of the dice once

Knock Outs

Sometimes you need to subdue and capture a target. Since you can't subdue with ranged attacks, one of the melee characters will have to serve up the subduing blow. A character making ranged attacks might want to skillfully avoid hitting with a critical to lessen the chance of accidentally killing the quarry when it's looking worse for the wear.

\$\endgroup\$
-2
\$\begingroup\$

They don’t seem equivalent to me. I think everyone here is assuming is that the player gets to choose between three different roll results, but elven accuracy doesn’t read that way. Elven accuracy does not state: “roll a third advantage die and choose from three results” it says “re-roll one of the dice once”. Example: A player rolls a 10 and a 4, attempting to hit an AC 13. They then choose to re-roll the 10 but end up with a 7, leaving them with a 7 and a 4 to choose from. I’m not 100% convinced this is how it should work, but it should be considered. Thoughts?

\$\endgroup\$
  • 4
    \$\begingroup\$ This answer considers a player making a choice that no player would ever make, which is choosing to reroll the higher result. Could you explain why a player would ever make such a choice? \$\endgroup\$ – Thomas Markov Jul 20 '20 at 14:36
  • 2
    \$\begingroup\$ Also, the fact that you end with "Thoughts?", implies that you're treating this as a post in a forum. This is a Q&A site, so answer posts (which is what you've created here) are expected to answer the question only, not ask for further discussion. Take our tour to find out more about how things work here, and visit the help center for more information. \$\endgroup\$ – NathanS Jul 20 '20 at 14:51
  • \$\begingroup\$ @ThomasMarkov In the scenario proposed, attempting to hit AC13 and having both rolls miss [and in the absence of other abilities in play that could allow bonuses enough to make a difference], why would it matter which was re-rolled? If both rolls are, in fact, misses, a 10 is in no way better than a 4. Given that, your assertion that no player would ever make that choice doesn't follow. A player might simply reroll the die that was physically closer at hand given that both dice had equivalent results. \$\endgroup\$ – Kirt Sep 27 '20 at 20:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.