Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个复杂的方程上构造递归函数?_Java_Algorithm_Recursion - Fatal编程技术网

Java 如何在一个复杂的方程上构造递归函数?

Java 如何在一个复杂的方程上构造递归函数?,java,algorithm,recursion,Java,Algorithm,Recursion,我需要做一个递归程序,可以找到以下等式的答案: P1(k)是一个简单的二项分布方程 方程Pn(k)将递归调用它自己,直到它不到达P1(k),其结果如下: 这个方程式用于计算某些航空公司的收入。我已经为二项分布建立了计算nCr的函数,并为二项分布建立了一个单独的函数。之所以这样做,是因为概率非常小,也就是说,它们可能相当于10的幂次幂-10或更小 class GFG { // function to calculate nCr i.e., number of // ways to

我需要做一个递归程序,可以找到以下等式的答案:

P1(k)是一个简单的二项分布方程

方程Pn(k)将递归调用它自己,直到它不到达P1(k),其结果如下:

这个方程式用于计算某些航空公司的收入。我已经为二项分布建立了计算nCr的函数,并为二项分布建立了一个单独的函数。之所以这样做,是因为概率非常小,也就是说,它们可能相当于10的幂次幂-10或更小

class GFG 
{ 
 // function to calculate nCr i.e., number of  
 // ways to choose r out of n objects 
 static int nCr(int n, int r) 
 { 
    // Since nCr is same as nC(n-r) 
    // To decrease number of iterations 
    if (r > n / 2) 
        r = n - r; 

    int answer = 1; 
    for (int i = 1; i <= r; i++) { 
        answer *= (n - r + i); 
        answer /= i; 
    } 

    return answer; 
} 

// function to calculate binomial r.v. probability 
static float binomialProbability(int n, int k, float p) 
{ 
    return nCr(n, k) * (float)Math.pow(p, k) *  
                    (float)Math.pow(1 - p, n - k); 
} 

public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in);
    int n,k = 1,nn; 
    float p; 

    System.out.println("Enter the number of total trials ");
    n=scan.nextInt();
    System.out.println("Enter the success probability ");
    p=scan.nextFloat();
    System.out.println("Enter the successive number of flights ");
    nn=scan.nextInt();

    float probability = binomialProbability(n, k, p);

    System.out.println( " probability is = " + probability ); 
    scan.close();
} 
}
GFG类
{ 
//用于计算nCr的函数,即
//从n个对象中选择r的方法
静态整数nCr(整数n,整数r)
{ 
//因为nCr与nC相同(n-r)
//减少迭代次数
如果(r>n/2)
r=n-r;
int-answer=1;
对于(int i=1;i