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