Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Calculate factorial of a non-integral number

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

like image 578
Julie Avatar asked Apr 07 '12 17:04

Julie


2 Answers

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

like image 104
Kris Harper Avatar answered Oct 14 '22 17:10

Kris Harper


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.

like image 43
Sven Marnach Avatar answered Oct 14 '22 16:10

Sven Marnach