Python: Calculate factorial of a non-integral number

factorial, floating-point, python

Solution

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)`.

Problem

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).

Original source