scipy.special.

factorial2#

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

Doppeltes Fakultät.

Dies ist die Fakultät, bei der jeder zweite Wert übersprungen wird. Z. B. 7!! = 7 * 5 * 3 * 1. Dies kann numerisch angenähert werden als

n!! = 2 ** (n / 2) * gamma(n / 2 + 1) * sqrt(2 / pi)  n odd
    = 2 ** (n / 2) * gamma(n / 2 + 1)                 n even
    = 2 ** (n / 2) * (n / 2)!                         n even

Die Formel für ungerade n ist die Grundlage für die komplexe Erweiterung.

Parameter:
nint oder float oder complex (oder array_like davon)

Eingabewerte für n!!. Nicht-ganzzahlige 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 ganzzahliger Arithmetik berechnet, andernfalls wird die obige Annäherung verwendet (schneller, liefert aber Gleitkommazahlen anstelle von ganzen 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 des doppelten Fakultäts zu nutzen. Dies ermöglicht auch die Übergabe komplexer Werte an n.

Warnung

Die Verwendung der 'complex'-Erweiterung ändert auch die Werte des doppelten Fakultäts für gerade ganze Zahlen und reduziert sie um einen Faktor von sqrt(2/pi) ~= 0.79, siehe [1].

Rückgabe:
nfint oder float oder complex oder ndarray

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

Referenzen

[1]

Komplexe Erweiterung des doppelten Fakultäts https://en.wikipedia.org/wiki/Double_factorial#Complex_arguments

Beispiele

>>> from scipy.special import factorial2
>>> factorial2(7, exact=False)
array(105.00000000000001)
>>> factorial2(7, exact=True)
105