java - 实数值的二项式系数

标签 java binomial-coefficients

我正在寻找为所有实数 n 和整数 k 定义的二项式系数 ( choice(n,k) ) 的高效 Java 实现,即定义为:

enter image description here

最佳答案

使用Apache Commons Math 3 :

import org.apache.commons.math3.special.Gamma;

/**
 * Binomial coefficient for real numbers - the number of ways of picking y
 * unordered outcomes from x possibilities
 *
 * @see http://mathworld.wolfram.com/BinomialCoefficient.html
 *
 * @param x
 * @param y
 * @return binomial coefficient to be generalized to noninteger arguments
 */
public double binomial(double x, double y) {
    double res = Gamma.gamma(x + 1) / (Gamma.gamma(y + 1) * Gamma.gamma(x - y + 1));
    if(Double.isNaN(res)){
        return 0.0;
    }
    return res;
}

因此,对于输入binomial(0.5, 1.0),您应该得到0.5,如Wolfram Alpha

binomial(2.5, 3) = 0.3125
binomial(2.0, 3) = 0.0
binomial(1.5, 3) = -0.0625

关于java - 实数值的二项式系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349808/

相关文章:

java - 二项式系数数组

java - 需要帮助理解为什么这个正则表达式不起作用

java - 尝试在 Java 中将 JSON 解析为 String

java - 在雅虎财经上使用 JSoup 提取表数据

Java Swing - 在 Java Web Start 中复制/粘贴不起作用

java - IntelliJ 无法导入 maven 项目

c - 如何将这个递归函数转换为迭代版本?

c - C程序解释中的二项式系数

c++ - nCk 模 p 当 n % p 或 k % p == 0

java - Java中的二项式检验