-1

数値の階乗値を取得したい。5の結果が期待できるとwikiで読んだ!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

Guavaのを使用しBigIntegerMathます。

階乗を計算するにはn!

BigInteger factorial = BigIntegerMath.factorial(n);

二項分布を計算するには、すなわちn! / (k! (n - k)!)

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

(との同様の機能は、intおよびでそれぞれlong使用できます。)IntMathLongMath

于 2013-02-19T12:40:25.277 に答える
1

ところで、単純な古い式を使用しないのはなぜですか。

x=n*(n-1)/2

ここで、n は頂点の数です。

この単純なタスクでは、計算量の多い関数を階乗として使用する必要はありません...

于 2013-02-19T12:42:00.140 に答える