这一题是二项分布,下面贴出计算递归次数的代码。
我这段代码的设计是每递归一次就打印一次。
新手上路,我也没有等它计算完成(递归惹的祸)。
至于给出一个更好的实现的话,数据溢出了,mdzz。
import edu.princeton.cs.algs4.*;
public class Main {
static int count = 0;
public static void main(String[] args) {
double a = binomical(100, 50, 0.25);
}//close main
public static double binomical(int N, int k, double p) {
System.out.println(count++);
if (N == 0 && k == 0) return 1.0;
if (N < 0 || k < 0) return 0.0;
return (1.0 - p) * binomical(N - 1, k, p) + binomical(N - 1, k - 1, p);
}
}