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).
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)
.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With