# Are these two methods of handling Elven Accuracy “Double Advantage” mathematically equivalent?

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
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.

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.

• 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. – Bloodcinder Aug 20 '18 at 17:42

# 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.

• 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. – Bloodcinder Aug 21 '18 at 13:09
• 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. – Xirema Aug 21 '18 at 20:00
• 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. – Bloodcinder Aug 22 '18 at 2:00
• @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. – Bloodcinder Aug 22 '18 at 11:38

# 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.

• 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. – Draco18s Aug 21 '18 at 0:16
• @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%. – Peter Taylor Aug 21 '18 at 7:36
• +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. – Miniman Aug 21 '18 at 13:09
• @PeterTaylor Ah, I see. Yes, that would be a different scenario. I misunderstood. – Draco18s Aug 21 '18 at 14:23

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).

# 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.

I've read through the replies, but unless I'm missing something the two are not always the same. If I choose one of two die to re-roll, the outcome can be lower that it was before. The same does not happen when rolling three dice and choosing the maximum.

Example:

Rolling 3 - [1, 2, 3] - I choose [2, 3] for a sum of 5.

Rolling 2 - [2, 3] - I choose to reroll [2] and get [1] for a sum of 4.

• You don't add the numbers you roll on the dice. – V2Blast Aug 21 '18 at 19:33