📜  BigIntegerMath binomial()函数|番石榴 |Java

📅  最后修改于: 2022-05-13 01:55:14.441000             🧑  作者: Mango

BigIntegerMath binomial()函数|番石榴 |Java

Guava 的 BigIntegerMath 类的binomial(int n, int k)方法返回n 选择 k ,也称为 n 和 k 的二项式系数,即

n! / (k! (n - k)!)

句法:

public static BigInteger binomial(int n, int k)

参数:此方法采用以下参数:

  • n :二项式展开的基数。
  • k :二项式展开的幂。

返回值:此方法返回 n 和 k 的二项式系数。

异常:如果 n < 0、k < 0 或 k > n,此方法将引发IllegalArgumentException

注意:结果可能占用 O(k log n) 空间。

下面的示例说明了 BigIntegerMath.binomial() 方法:

示例 1:

// Java code to show implementation of
// binomial(int n, int k) method
// of Guava's BigIntegerMath class
  
import java.math.*;
import com.google.common.math.BigIntegerMath;
  
class GFG {
  
    // Driver code
    public static void main(String args[])
    {
        int n = 5;
        int k = 2;
  
        // Using binomial(int n, int k) method of
        // Guava's BigIntegerMath class
        BigInteger ans = BigIntegerMath.binomial(n, k);
  
        System.out.println("Binomial Coefficient of "
                           + n + " & " + k
                           + " is: " + ans);
  
        int n1 = 15;
        int k1 = 9;
  
        // Using binomial(int n, int k) method of
        // Guava's BigIntegerMath class
        BigInteger ans1 = BigIntegerMath.binomial(n1, k1);
  
        System.out.println("Binomial Coefficient of "
                           + n1 + " & " + k1
                           + " is: " + ans1);
    }
}
输出:
Binomial Coefficient of 5 & 2 is: 10
Binomial Coefficient of 15 & 9 is: 5005

示例 2:

// Java code to show implementation of
// binomial(int n, int k) method
// of Guava's BigIntegerMath class
  
import java.math.*;
import com.google.common.math.BigIntegerMath;
  
class GFG {
  
    // Driver code
    public static void main(String args[])
    {
  
        try {
            int n = 5;
            int k = 7;
  
            // Using binomial(int n, int k) method of
            // Guava's BigIntegerMath class
            // This should raise "IllegalArgumentException"
            // as k > n
            BigInteger ans = BigIntegerMath.binomial(n, k);
  
            System.out.println("Binomial Coefficient of"
                               + n + " & " + k
                               + " is: " + ans);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}
输出:
Exception: java.lang.IllegalArgumentException: k (7) > n (5)

参考: https://google.github.io/guava/releases/21.0/api/docs/com/google/common/math/BigIntegerMath.html#binomial-int-int-