2012-04-07 8 views
7

Mi chiedo se esiste un modo rapido, pitonico, per calcolare i fattoriali dei numeri non interi (ad es. 3.4)? Naturalmente, la funzione bult-in factorial() nel modulo Math è disponibile, ma funziona solo per gli integrali (non mi interessano i numeri negativi qui).Python: Calcola fattoriale di un numero non integrale

risposta

11

Che ci si vuole utilizzare math.gamma(x).

Il gamma function è un'estensione della funzione fattoriale di numeri reali.

Si noti che la funzione è spostata di 1 rispetto alla funzione fattoriale. Quindi math.factorial(n) è math.gamma(n + 1).

3

In Python 2.7 o 3.2, è possibile utilizzare math.gamma(x + 1). Nelle versioni precedenti, avresti bisogno di una libreria esterna come SciPy.

+0

Bello, grazie! – Julie