1.利用递归函数求取二项分布概率值,源码如下。
public static double binomial(int N, int k, double p) {
if (N == 0 && k == 0)
return 1.0;
if (N < 0 || k < 0)
return 0.0;
return (1 - p) * binomial(N - 1, k, p) + p * binomial(N - 1, k - 1, p);
}
2.利用记忆递归函数求取二项分布概率值,源码如下。
static double[][] array_save = new double[200 + 1][200 + 1];
for (int i = 0; i < 201; i++)
Arrays.fill(array_save[i], -1.0);
public static double binomial_save(int N, int k, double p) {
if (N < 0 || k < 0)
return 0.0;
if (array_save[N][k] != -1)
return array_save[N][k];
array_save[N][k] = (1 - p) * binomial_save(N - 1, k, p) + p
* binomial_save(N - 1, k - 1, p);
return array_save[N][k];
}
3.利用动态规划求取二项分布概率值,源码如下。
static double[][] array &#