Say there's a group of p monkeys.
Some of the monkeys, a total of yp (where 0<y<1), each has an amount x of banana-cake to give away, which they will distribute generously to the whole rest of the group. Each one does this by dividing the x banana-cake into n slices, and chucking each slice at random into the group of all other monkeys. Each does this n times, until all their x banana-cake has been distributed. (Some lucky monkeys might receive several slices of cake.) Once all the banana-cake has been distributed, the monkeys all sit around happily until, tragically, a total dp of the monkeys (where 0<d<1) is brutally slaughtered by a horde of marauding hippopotamuses.
I'd be interested to know what the expected distribution of monkeys with different amounts of banana-cake is after all this has taken place. How many monkeys have, say, x bits of banana-cake, how many have x/2, etc.
I believe I'd need to use the binomial distribution, but am not quite sure how. Could anyone enlighten me?
Not an answer, but a comment can't be properly made to display block code, so here's a little MATLAB script to murder thousands of innocent (virtual) monkeys and look at the distribution, you monster:
Where $\text{monkeys} = p$, $\text{cakes} = yp$, $\text{kills} = dp$ and $\text{slices} = n$. $N$ is the number of times to conduct the experiment. Bigger is better but slower.