The question asks about a hypergeometric distribution. In R, the chance of obtaining no white balls in an urn with $w$ white balls and $b$ black balls after $k$ draws is
phyper(0, w, b, k)
We need to find the smallest nonnegative integral $k$ for which this number is less than or equal to $\alpha = 1-x$. (E.g., if $x$ is 95%, $\alpha$ is $0.05$.) Most standard root-finding methods will work, but (unless the urn has a huge number of balls), a brute-force search will be reasonable:
g <- function(alpha,w,b) { # 0 < alpha < 1; 1 <= w + b; 0 <= w, b
p <- phyper(0,w,b,1:(w+b))
k <- min(which(p<=alpha))
list(count=k, probs=phyper(0,w,b,(k-1):k))
}
This incarnation of the solution returns two things: the answer $k$ (as "\$count") and a check of the answer (as "\$probs") in the form of the hypergeometric probability for $k-1$ (which should be strictly greater than $\alpha$) and the probability for $k$ (which should be less than or equal to $\alpha$).
Example:
> set.seed(17)
> table(replicate(10000, sum(sample(c(rep(1,3), rep(0,10)), 8))))
0 1 2 3
355 2815 4844 1986
In this simulation with 10,000 independent trials, 8 balls were drawn without replacement from an urn with 3 white and 10 black balls. In 355 (3.55%) of those trials no white balls were drawn. What does our previous calculation suggest?
> g(0.05, 3, 10)
$count
[1] 8
$probs
[1] 0.06993007 0.03496503
It says that indeed, we need to withdraw 8 balls in order to have at least $x = 1-\alpha = 95\%$ chance of obtaining a white ball, and that the chance is 100 - 3.4965% of doing so (which is at least $x$; whereas the chance when only 7 balls are withdrawn is just 100 - 6.993%, which is less than $x$). This is in close agreement with the simulated value.
R
function do the trick? $\endgroup$ – whuber♦ Mar 9 '12 at 17:19