我想获得数字的阶乘值。我在维基中读到我可以期待5的结果!为5x4x3x2x1 = 120.现在我怎样才能在Java中获得它?
BigFraction g = new BigFraction(5);
System.out.println(g.getNumerator());
这只打印5。
最后我想计算网络中的组合:
具有以下公式:
答案 0 :(得分:1)
您似乎对 fractions 和 factorials 感到困惑。
如果您需要 factorial ,可以使用ArithmeticUtils.factorial:
long factorial = ArithmeticUtils.factorial(5);
System.out.println(factorial); // "120"
答案 1 :(得分:1)
使用Guava的BigIntegerMath
。
计算阶乘,即n!
:
BigInteger factorial = BigIntegerMath.factorial(n);
计算二项式,即n! / (k! (n - k)!)
:
BigInteger binomial = BigIntegerMath.binomial(n, k);
答案 2 :(得分:1)
顺便说一句,为什么不使用普通的旧公式:
x=n*(n-1)/2
其中n是顶点数。
对于这个简单的任务,您不必使用计算密集型函数作为因子...