The question was posed:

I believe I have a grasp of the basic math, and I can compute results for smaller values using integer partitions and multinomial coefficients, but I cannot give an answer that accommodates values as large as requested. My method also uses a bignum library, and I don't think that is necessary for the accuracy required.You have N buckets. Each bucket can hold H balls. None of the buckets is full. You have D balls already in the buckets, but you don't know where the balls are (you forgot!) You choose a bucket at random to add 1 ball. What is the probability that that bucket will then be full.

I need a general purpose equation in the form of P = f(N, H, D)

N could be in the (tens)thousands [although most cases 95% it will be 10-100s), H will likely be 5 or less (10 would be most. A note, that the higher H is, its much less likely N will be big, ie, N is inversely proportional to H), and D would then be at most N * (H - 1)

I don't think people will be able to tell if its 1-2% off. That is the limit of human observation. It does need to be 100% accurate in cases where if I have D = N * (H - 1) In that 100% of that case will result in a bucket filling. It also needs to be 100% accurate in the cases of D <= H - 2 In that 0% of that case will result in a bucket filling.

I will relay any help that is given, or if you wish to reply directly, the original is here.