Probability that 30 people in a room have birthdays in all the months of the year (12) I'm having a hard time concluding an answer to this question. The problem is that we have 30 people, and we want to calculate the probability that all 12 months will be present on a birthday list of all the 30 people. what is the probability that this list exists. This is what i got so far: We assume that we have 12^30 possible lists of all the birthdays of all people.  we assume they are all equally likely. I'm missing out on the next step, partially cause I'm new to probability questions and still haven't wrapped my mind over this simple questions. Thank you for any help
 A: The problem can be seen as distributing distingquishable 30 balls ($k$) on distingquishable 12 urns ($n$).
You are right that the number of possible ways to put 30 distingquishable balls into 12 distingishable urns is $12^{30}$
Now we have the condition that at least one ball is in every urn. This number of possible ways to do that is 
$$n!\cdot S_{n,k}=n!\cdot \frac{1}{n!}\cdot\sum_{j=0}^n (-1)^{n-j} {n \choose j}\cdot j^k$$
with $k=30$ and $n=12$
$S_{n,k}$ is the Stirling number of the second kind.
The required probability is the fraction. Using a calculator we obtain the probability about $35.91\%\approx 36\%$
A: Let's note by $A(n,m),n\geq m$ the number of ways to arrange $n$ balls into $m$ urns, each urn having at least $1$ ball.
It is easy to build the recurrence in the following way 
$$A(n+1,m)=mA(n,m)+mA(n,m-1)=m\cdot\left(A(n,m)+A(n,m-1)\right)$$
which says "arranging $n+1$ balls into $m$ urns" is the same as "arranging $n$ balls into $m$ urns (each urn having at least $1$ ball) and the remaining $1$ ball in any of the $m$ urns, of which there are $m$ such cases" plus "arranging $n$ balls into $m-1$ urns (each urn having at least $1$ ball) and the remaining $1$ ball in the remaining empty urn, with a total of $m$ such cases".
Obviously $A(n,n)=n!$
As a result:
$$A(30,12)=12(A(29,12)+A(29,11))$$
$$P=\frac{A(30,12)}{12^{30}}=\frac{A(29,12)+A(29,11)}{12^{29}}=...$$
with a bit of an unoptimised Python code:
 import math

 def func(n,m):
     if (n <= 0) or (m <= 0) or (n < m):
         return 0
     elif (n == m):
         return math.factorial(n)
     else:
         return m * (func(n - 1, m) + func(n - 1, m - 1))

 print func(30, 12)

$$...=\frac{85252564449786382411735260288000}{12^{30}}=0.3591...$$
