On Thursday, 10 November 2022 at 10:45:50 UTC, Timon Gehr wrote:
>[snip]
The distribution of the output is multinomial(n,k,[1/k,1/k,...,1/k]), i.e., n trials, k events, and the events follow an uniform distribution.
https://en.wikipedia.org/wiki/Multinomial_distribution
It is at least as hard to sample as binomial(n,1/k), because that is the marginal distribution of each component of the result.
I guess one approach is this (if you can find a way to sample from binomial distributions that is good enough for your use case):
[snip]
mir-random has the ability to sample from both the binomial [1] and multinomial [2] distributions (you would want the multinomial here, unless I'm missing something). I don't know how well mir-random handles large values of N or K, but there are also well-known normal and poisson approximations of the binomial distribution (I make some use of them here [3] for binomials) at least.
I wasn't exactly sure what you meant by the events follow a uniform distribution, but it's certainly possible to simulate from the multinomial to get the counts. You should also be able to calculate the PMF for it to compare the simulations against. The PMF shouldn't be uniform.
[1] http://mir-random.libmir.org/mir_random_variable.html#BinomialVariable
[2] http://mir-random.libmir.org/mir_random_ndvariable.html#MultinomialVariable
[3] https://github.com/libmir/mir-stat/blob/master/source/mir/stat/distribution/binomial.d