scipy.special.

factorial#

scipy.special.factorial(n, exact=False, extend='zero')[Quelle]#

Die Fakultät einer Zahl oder eines Arrays von Zahlen.

Die Fakultät einer nicht-negativen ganzen Zahl n ist das Produkt aller positiven ganzen Zahlen kleiner oder gleich n

n! = n * (n - 1) * (n - 2) * ... * 1
Parameter:
nint oder float oder complex (oder array_like davon)

Eingabewerte für n!. Komplexe Werte erfordern extend='complex'. Standardmäßig ist der Rückgabewert für n < 0 0.

exactbool, optional

Wenn exact auf True gesetzt ist, wird die Antwort exakt mit Ganzzahlarithmetik berechnet, andernfalls wird sie mittels der Gamma-Funktion approximiert (schneller, liefert aber Floats statt ganzer Zahlen). Standard ist False.

extendstring, optional

Einer von 'zero' oder 'complex'; dies bestimmt, wie Werte n<0 behandelt werden – standardmäßig sind sie 0, aber es ist möglich, die komplexe Erweiterung der Fakultät zu nutzen (siehe unten).

Rückgabe:
nfint oder float oder complex oder ndarray

Fakultät von n, als ganze Zahl, Gleitkommazahl oder komplex (abhängig von exact und extend). Array-Eingaben werden als Arrays zurückgegeben.

Hinweise

Für Arrays mit exact=True wird die Fakultät nur einmal für die größte Eingabe berechnet, wobei jedes andere Ergebnis im Prozess berechnet wird. Der Ausgabetyp wird bei Bedarf auf int64 oder object erhöht.

Mit exact=False wird die Fakultät mittels der Gamma-Funktion approximiert (was auch die Definition der komplexen Erweiterung ist)

\[n! = \Gamma(n+1)\]

Beispiele

>>> import numpy as np
>>> from scipy.special import factorial
>>> arr = np.array([3, 4, 5])
>>> factorial(arr, exact=False)
array([   6.,   24.,  120.])
>>> factorial(arr, exact=True)
array([  6,  24, 120])
>>> factorial(5, exact=True)
120