ProbabilityMass(int x) { return(Math.Exp( Fn.BinomialCoefficientLn(_M, x) + Fn.BinomialCoefficientLn(_N - _M, _n - x) - Fn.BinomialCoefficientLn(_N, _n))); }
CumulativeDistribution(double x) { double pdf = Math.Exp(Fn.BinomialCoefficientLn(_N - _M, _n) - Fn.BinomialCoefficientLn(_N, _n)); double cdf = pdf; for (int xx = 0; xx <= x - 1; xx++) { pdf *= (_M - xx) * (_n - xx) / (double)((xx + 1) * (_N - _M - _n + xx + 1)); cdf += pdf; } return(cdf); }