Rules
I have four different types of dice: six-, eight-, ten- and twelve-sided (d6, d8, d10 & d12, respectively).
The number of successes vary by the value rolled (and thus indirectly by dice type).
- One success is gained by rolling 6 or 7.
- Two successes are gained by rolling 8 or 9.
- Three successes are gained by rolling 10 or 11.
- Four successes are gained by rolling 12.
This means that a 1d6 can result in at most 1 success, 1d8 1-2 successes, 1d10 1-3, and 1d12 1-4.
Successes are added together after the roll, so rolling 6 dice and getting [12, 3, 8, 7, 10, 1] will result in 4 + 2 + 1 + 3 = 10 successes.
Input is the number of dice and how many sides they have, and the minimum amount of successes I want to achieve.
Question
My main question is this:
Given that I roll a known combination of d6s, d8s, d10s and d12s, how do I calculate the probability of rolling N or more successes? Q1
(though feel free to answer any other questions in this post as well, indexed Q$n$ for your convenience)
Context
I know how to calculate the probability of rolling at least $N$ successes for an arbitrary number of d6's, since they can only yield one success at most.
I am stuck, however, when it comes to calculating at least $N$ successes when rolling a mix of differently sided dice, where some of them can yield more than one success.
For example, with $5$d6, $1$d8, $1$d12, how likely am I to roll $\geq$ 4 successes? Q2
EDIT: It's been brought to my attention that there is no closed form solution to this question.
That is fine; any solution or clever approximation that's more efficient than running 100k simulated rolls is a sufficient answer.
Can the problem be split into separate probabilities that can later be combined? E.g., given 5d6 & 1d12 and that I'm looking for the probability of at least $k$ successes, can I calculate the probabilities for each die type separately and later combine them somehow? Q3
Also, how would I go about calculating $\geq k$ successes for 1d12? For 2d12? For $n$d12? Q4
Currently, I can 'solve' the problem by running a simulation, but it irks me that I am not able come up with anything better.
A simple and crude approximation can be obtained by the CLT. Denoting by ($k_6, k_8...$) the amount of (six-,eitght-...) dice, we are interested in
$$ X = \sum_{i=1}^{k_6} X^{(6)}_i +\sum_{i=1}^{k_8} X^{(8)}_i +\sum_{i=1}^{k_{10}} X^{(10)}_i +\sum_{i=1}^{k_{12}} X^{(12)}_i \tag 1 $$
where $X_i^{(j)}$ is the result for a $j-$die. $X_i^{(j)}$ are assumed independent, and the pmf (probability mass function), mean and variance of each one is:
\begin{array}{|c c c|} \hline j & 6 & 8 & 10 & 12 \\ \hline P(X_i=0) & 5/6 & 5/8 & 5/10 & 5/12 \\ \hline P(X_i=1) & 1/6 & 2/8 & 2/10 & 2/10 \\ \hline P(X_i=2) & 0 & 1/8 & 2/10 & 2/10 \\ \hline P(X_i=3) & 0 & 0 & 1/10 & 2/10 \\ \hline P(X_i=4) & 0 & 0 & 0 & 1/10 \\ \hline \text{mean} & 1/6 & 4/8 & 9/10 & 16/12 \\ \hline \text{variance} & 5/36 & 64/64 & 109/100 & 272/144 \\ \hline \end{array}
Then, from the properties of mean and variance of a sum, we can compute the mean and variance:
$$E[X]=k_6 \frac{1}{6} + k_8 \frac{1}{2} + k_{10} \frac{9}{10} + k_{12} \frac{4}{3}$$
$$\sigma_X^2=k_6 \frac{5}{36} + k_8 + k_{10} \frac{109}{100} + k_{12} \frac{17}{9}$$
All the above is exact. But this is not enough to compute $P(X\ge 30)$.
The approximation consists in assuming $X$ follows a normal distribution with that mean and variance, and compute the desired probability with the gaussian integral.
This approximation can be expected to be good for large number of dice, and $n$ not too low or too high (that is, not too far from the mean), because of the CLT.
Then, we assume that $Z = \frac{X-E[X]}{\sqrt{\sigma_X^2}}$ can be approximated by a standard normal distribution. Denoting by $\Phi(z)=\int_{-\infty}^z \phi(u) \, du $ the cumulative distribution function, our desired probability can be approximated thus:
$$P(X \ge x) \approx 1-\Phi\left(\frac{x-E[X]}{\sqrt{\sigma_X^2}}\right)$$
Actually, because we are approximating a discrete random variable, it makes much sense to add a continuity correction, so
$$P(X \ge x) \approx 1- \Phi\left(\frac{x-\frac12 - E[X]}{\sqrt{\sigma_X^2}}\right)$$
Taking the example in Tom Chen's answer, $(k_6, k_8, k_{10}, k_{12}) = (5, 7, 11, 13)$ we get $E[X]=31.566,$ $\sigma_X^2=40.74$, hence the approximation gives
$$ P(X \ge 30) \approx 1-\Phi\left(\frac{29.5-31.566}{\sqrt{40.74}}\right)=0.62695\cdots $$
... not far from the true value ($0.6195187559065025$).
Added: since you asked for something better than run a simulation, here's a simple Python program to compute the probability numerically (exactly), by doing the convolutions.
https://ideone.com/Fw2yPg
This computation is not very different to what one would need to extract the $n$ coefficient in the generating function, as in Tom Chen's nice answer.
Here's a comparison of the exact pmf vs the CLT approximation