问题
I'm wondering if there's a speedy, Pythonic way to calculate factorials of non-integral numbers (e.g., 3.4)? Of course, the bult-in factorial()
function in the Math
module is available, but it only works for integrals (I don't care about negative numbers here).
回答1:
You'd want to use math.gamma(x).
The gamma function is an extension of the factorial function to real numbers.
Note that the function is shifted by 1 when compared to the factorial function. So math.factorial(n)
is math.gamma(n + 1)
.
回答2:
In Python 2.7 or 3.2, you can use math.gamma(x + 1)
. In older versions, you'd need some external library like SciPy.
来源:https://stackoverflow.com/questions/10056797/python-calculate-factorial-of-a-non-integral-number