我想獲得一個數字的階乘值。我在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.
在我想在網絡中,以計算組合末尾:
其具有以下通式:
順便說一句,爲什麼不是t使用普通的舊公式:
x=n*(n-1)/2
其中n是頂點的數量。
對於這個簡單的任務,您不必使用計算密集型函數作爲因子...
謝謝,正是我需要的 – clankill3r 2013-02-19 22:16:41
你好像不是Ø是混亂fractions和factorials。
如果你想階乘,您可以使用ArithmeticUtils.factorial爲:
long factorial = ArithmeticUtils.factorial(5);
System.out.println(factorial); // "120"
我怎樣才能處理大數? 'long factorial = ArithmeticUtils.factorial(89);'給出MathArithmeticException – clankill3r 2013-02-19 13:04:00
@ clankill3r:這是一個*不同的問題。 – 2013-02-19 13:04:47
利用番石榴的BigIntegerMath
。
爲了計算階乘即n!
:
BigInteger factorial = BigIntegerMath.factorial(n);
爲了計算二項式即n!/(k! (n - k)!)
:(爲int
和long
類似的功能分別是在IntMath
和LongMath
提供)
BigInteger binomial = BigIntegerMath.binomial(n, k);
您的意思是'因子'值? – 2013-02-19 12:37:24
你似乎很困惑* [分數](http://en.wikipedia.org/wiki/Fraction_(數學))*和* [分解因子](http://en.wikipedia.org/wiki/Factorial)* 。 – 2013-02-19 12:37:38
我想你可以開始機智http://stackoverflow.com/questions/891031/is-there-a-method-that-calculates-a-factorial-in-java – Raman 2013-02-19 12:39:02