In the double-opposed scenario, your opponent needs to not roll badly multiple times, versus only once against advantage.
To help visualize this intuitively, lets simplify the scenario slightly to a d2 (essentially a 50-50 coin flip), and you win if your result strictly beats your opponent's result. When expanded out to a d20, the visualization is effectively the same, just with many more values and a more complicated calculation of the actual probabilities.
Single-Opposed - 1d2 versus 1d2
In your single-opposed scenario, only 2d2 is rolled with 4 possible combinations, and you win 25% (1 in 4) of the time based on the following results:
You |
Opponent |
Winner |
1 |
1 |
Opponent |
1 |
2 |
Opponent |
2 |
1 |
You |
2 |
2 |
Opponent |
If your opponent rolls their max, you always lose. Otherwise, it's a 50-50.
With Advantage - [highest of 2d2] versus 2d2
When rolling with advantage, you roll 2d2 against your opponent's 1d2. As before, you still lose if your opponent rolls a 2 (in 50% of the scenarios), but when they don't, you now have a much better chance of rolling a 2 to beat them. The final probabilities in this scenario has you winning 37.5% (3 in 8) of the time.
Your First |
Your Second |
Opponent |
Winner |
1 |
1 |
1 |
Opponent |
1 |
1 |
2 |
Opponent |
1 |
2 |
1 |
You |
1 |
2 |
2 |
Opponent |
2 |
1 |
1 |
You |
2 |
1 |
2 |
Opponent |
2 |
2 |
1 |
You |
2 |
2 |
2 |
Opponent |
Double-Opposed - 1d2 versus 1d2, twice
However, now let's consider your double-opposed scenario. Here, you're essentially taking two copies of the single-opposed table above. You consider the final outcome "successful" by winning just one of the two attempts, but your opponent only considers the final outcome successful if neither of your individual attempts are successful. As a result, in the first attempt's table, any case where your opponent would win is instead replaced by a second attempt.
This causes the probabilities to break down as such:
- On the first attempt, you win 25% of the time and make a second attempt 75% of the time.
- On the second attempt, you win 25% of the time and lose 75% of the time, but only if this attempt needed to be made (if you won on the first result, this doesn't matter)
In this scenario, because the outcomes are conditional on each other (that is, the results of the second attempt are conditional on the outcome of the first attempt - you only make the second attempt if the first attempt fails), you can find the odds of each possible outcome happening by multiplying together the probabilities of all the individual events leading up to that result. Here, a win on the first attempt and a win on the second attempt are treated as two separate outcomes, statistically speaking.
- 25%: You win on the first attempt
- 75% x 25% = 18.75%: You lose on the first attempt (75%), but you win on the second attempt (25%)
- 75% x 75% = 56.25%: You lose on the first attempt (75%), and you lose on the second attempt (75%)
(where 25% + 18.75% + 56.25% = 100% of all possible outcomes)
Resummarized, in double-opposed, you win 25% (attempt 1) + 18.75% (attempt 2) = 43.75% of the time, and your opponent wins 0% (attempt 1) + 56.25% (attempt 2) == 56.25% of the times.
A tweak of your AnyDice program confirms these numbers in the d2 scenario, and also validates that your original program was written correctly. All changing the size of the dice does is change the specific probabilities of who wins because it changes the probabilities that the rolls tie.
On d2s, a tie will happen 50% of the time, but only 5% of the time on a d20. This 45% difference gets split between the "you win outright" (rolled higher) and "you lose outright" (rolled lower) outcomes evenly 22.5% each. Since a tie otherwise meant your opponent wins, that difference improves your odds of success by 22.5%, which is where the 47.5% win chance comes from in your original AnyDice program.
Side Note - "Winning twice" in Double-Opposed
What this analysis has overlooked until now is the difference, gameplay wise, that a double-opposed scenario could result in - that you actually win twice by making the second attempt regardless and get to take benefits from both of them. Whether you want that possibility is something you should consider at a gameplay level.
However, for the sake of completeness, you can find the odds of that happening in the same way we can find the odds of each outcome for double-opposed. In the d2 scenario:
- You win both attempts 25% x 25% == 6.25% of the time
- You win the first attempt but lose the second 25% x 75% == 18.75% of the time
- You lose the first attempt but win the second 75% x 25% == 18.75% of the time
- You lose both attempts 75% x 75% == 56.25% of the time
Where both "win once" outcomes are equivalent to you and can be considered one combined 37.5% outcome.
In the d20 scenario, instead of using 25% and 75% as the outcomes, you can substitute your 47.5% and 52.5% numbers from your original AnyDice program for the equivalent exact results (win twice ~22.5% of the time, win once ~49.9% of the time, and lose both ~27.6% of the time, rounding away several decimal places for each of reading).