我想得到一个数字的阶乘值。我在 wiki 中读到我可以期待 5 的结果!为 5x4x3x2x1 = 120。现在我怎样才能在 Java 中得到它?
BigFraction g = new BigFraction(5);
System.out.println(g.getNumerator());
这仅打印 5 个。
最后我想计算网络中的组合:
其中有以下公式:
我想得到一个数字的阶乘值。我在 wiki 中读到我可以期待 5 的结果!为 5x4x3x2x1 = 120。现在我怎样才能在 Java 中得到它?
BigFraction g = new BigFraction(5);
System.out.println(g.getNumerator());
这仅打印 5 个。
最后我想计算网络中的组合:
其中有以下公式:
如果你想要阶乘,你可以使用ArithmeticUtils.factorial:
long factorial = ArithmeticUtils.factorial(5);
System.out.println(factorial); // "120"
使用番石榴的BigIntegerMath
.
计算阶乘,即n!
:
BigInteger factorial = BigIntegerMath.factorial(n);
计算二项式即n! / (k! (n - k)!)
:
BigInteger binomial = BigIntegerMath.binomial(n, k);
顺便说一句,为什么不使用简单的旧公式:
x=n*(n-1)/2
其中n是顶点数。
对于这个简单的任务,您不必使用计算密集型函数作为阶乘...