I have a question about probabilities with custom 6-sided dice (not the regular 1,2,3,4,5,6 dice we all know and love, but a dice like 0,0,1,1,2,3). Now imagine having 3 different custom dice (blue, red and green, all with different sides) and that 2 players roll 3 of those dice (Player A is rolling R+G+B, player B is rolling 2R+G).
Now, I can calculate the probability of each result separately. For example, I know that Player A has a 68% to roll at least "3" with his chosen dice, while Player B has only 52% to roll "3" with his dice. Same for any other result. What I don't know is if it is possible (an algorithm or formula) to calculate the probability that Player A will win the roll regardless of the number of successes.
So I am not looking for statements of the type
"68% vs 52% to roll "3", 53% vs 40% to roll "4", etc",
but instead I am looking for the X in the following statement:
"When you roll R+G+B and the opponent is rolling 2R+G, you have a X% to roll higher" (which equals winning the roll).
Any ideas about how/if I can come up with an answer to this question? I can code this in a small app so that it makes all the calculations by itself, but I have no idea where to start when it comes to this type of complex probability result. I assume it is a purely mathematical/probability question, so I hope I posted this in the correct forum.
Best Answer
The programmer's answer to this question is different from the mathematician's answer. The mathematician's answer is:
I think this is why nobody has responded to your question.
But you said you want to write an app that knows what the dice are and does the calculation, and this is easy. Let's suppose, just for concreteness, that $R$ and $G$ are six-sided, and that $G$ has the numbers 0 through 5 while $R$ has the standard numbers 1 through 6. Then imagine a table like this:
$$\begin{array}{c|cccccc} & 0 & 1 & 2 & 3 & 4 & 5 \\ \hline 1 & R & - & G & G & G & G \\ 2 & R & R & - & G & G & G \\ 3 & R & R & R & - & G & G \\ 4 & R & R & R & R & - & G \\ 5 & R & R & R & R & R & - \\ 6 & R & R & R & R & R & R \\ \end{array} $$
The row shows the number rolled on the red die, the column shows the number rolled on the green die, and the table shows the winner: $R$ for red, $G$ for green, and $-$ for a tie. We count up $21 R$ and $10 G$, so that $R$ has a $\frac{21}{10+21} \approx 67.7\%$ chance to win, assuming that on a tie you throw it away and start over. (Or, if ties aren't do-overs, $R$ has a $\frac{21}{36} \approx 58.3\%$ chance to win and a $\frac5{36}\approx13.9\%$ chance to tie.)
It is quite easy for the computer to do the counting, without even constructing the table. I am going to write some pseudocode here. Let's say $R$ and $G$ are as above, and represent them in the program as follows:
Here
R[3]
is the number of faces of the $R$ die that show the number 3.R[0]
is 0 because $R$ has no faces that show zero, butG[0]
is 1 because $G$ does have a zero. If we had a die with the faces $1,2,2,2,7,7$, we would represent it as[0, 1, 3, 0, 0, 0, 0, 2]
. If one player is rolling two standard dice, which is $R+R$, we can instead pretend they are rolling one 36-sided die that we represent asI hope this is clear. The computer can easily calculate the list for $R+R$ from the list for $R$ itself.
Now we can compare two dice $d_1$ and $d_2$ like this:
Or, if ties are do-overs, just change
total = total + prob
toand leave everything else the same. If you want to convert the probabilities to percentages, you simply multiply by 100%.
I hope this is helpful and answers your question.