2016-03-04 51 views
-2

我不確定這是否與math.factorial函數有關,或者它與某些類型轉換或其他相關。這是我知道的:Python因子結果的問題

>>> factorial(52)/ (factorial(52-48) - factorial(48)) 
-6497401L 

因此,與該代碼我想計算的一組中的48組採取52種不同的元素和我得到的結果可能的組合數爲負數字,這是毫無意義的。

任何想法爲什麼會發生這種情況?

+2

'factorial(52-48)'表示'階乘(4)'。如果你從這個減去'factorial(48)',你會得到一個負數。 – Selcuk

+2

由於'factorial(52-48)'與'factorial(4)'是相同的,因此當您從中減去'factorial(48)'時,它就是負數,所以得到一個負數。如果分子爲正,分母爲負,則肯定會得到負面結果。 – zondo

+0

啊,我明白了。我犯了一個錯字,並且放了一個 - 我應該放一個*的地方。 –

回答

3

你的數學是錯誤的。它應該是N!/(S! * (S - N)!) - 您在分母中減去而不是乘數:

>>> factorial(52)/(factorial(52-48) * factorial(48)) 
270725L 
+0

OP想刪除這個Q,因爲它只是一個錯字。 –