-1

我想得到一个数字的阶乘值。我在 wiki 中读到我可以期待 5 的结果!为 5x4x3x2x1 = 120。现在我怎样才能在 Java 中得到它?

BigFraction g = new BigFraction(5);
System.out.println(g.getNumerator());

这仅打印 5 个。

最后我想计算网络中的组合:

网络

其中有以下公式:

来自维基的例子

4

3 回答 3

1

您似乎混淆了分数阶乘

如果你想要阶乘,你可以使用ArithmeticUtils.factorial

long factorial = ArithmeticUtils.factorial(5);
System.out.println(factorial); // "120"
于 2013-02-19T12:39:46.440 回答
1

使用番石榴的BigIntegerMath.

计算阶乘,即n!

BigInteger factorial = BigIntegerMath.factorial(n);

计算二项式即n! / (k! (n - k)!)

BigInteger binomial = BigIntegerMath.binomial(n, k);

(和的类似功能分别在intlong中可用。)IntMathLongMath

于 2013-02-19T12:40:25.277 回答
1

顺便说一句,为什么不使用简单的旧公式:

x=n*(n-1)/2

其中n是顶点数。

对于这个简单的任务,您不必使用计算密集型函数作为阶乘...

于 2013-02-19T12:42:00.140 回答