For 2d6 you could easily draw a table with the results of the roll to gain insight:
first dice→ second dice↓ |
1 | 2 | 3 | 4 | 5 | 6 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
This then would show you the odds of each result:
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
If you add more dice, or additional rules, or both (e.g. 4d6, drop lowest for creating characters in DnD5e) this model quickly becomes unwieldy. An additional detriment was that my calculator, a TI-36x Pro, could not calculate such tables, so I had to find another solution.
One could naively try to calculate all the possibilities the dice could roll, but even with 3 dice you can’t use a table directly, and with nested loops in a program you can see the runtime rising exponentially
Dice(d6) | Size of event space |
---|---|
1 | 6 |
2 | 36 |
3 | 216 |
+1 | *6 |