stirling2#
- scipy.special.stirling2(N, K, *, exact=False)[Quellcode]#
Erzeugt Stirling-Zahlen zweiter Art.
Stirling-Zahlen zweiter Art zählen die Anzahl der Möglichkeiten, eine Menge mit N Elementen in K nicht-leere Teilmengen zu partitionieren.
Die von dieser Funktion zurückgegebenen Werte werden mit einem dynamischen Programm berechnet, das redundante Berechnungen über die Teilprobleme der Lösung vermeidet. Für array-ähnliche Eingaben vermeidet diese Implementierung auch redundante Berechnungen über die verschiedenen Stirling-Zahl-Berechnungen.
Die Zahlen werden manchmal so bezeichnet
\[{N \brace{K}}\]siehe [1] für Details. Dies wird oft verbal als „N Teilmenge K“ ausgedrückt.
- Parameter:
- Nint, ndarray
Anzahl der Elemente.
- Kint, ndarray
Anzahl der genommenen nicht-leeren Teilmengen.
- exactbool, optional
Verwendet dynamische Programmierung (DP) mit Gleitkommazahlen für kleinere Arrays und eine Approximation zweiter Ordnung von Temme für größere Einträge von N und K, die einen Kompromiss zwischen Geschwindigkeit und Genauigkeit ermöglicht. Siehe [2] für eine Beschreibung. Die Temme-Approximation wird für Werte
n>50verwendet. Der maximale Fehler der DP hat einen maximalen relativen Fehler von4.5*10^-16fürn<=50und der maximale Fehler der Temme-Approximation hat einen maximalen relativen Fehler von5*10^-5für51 <= n < 70und9*10^-6für70 <= n < 101. Beachten Sie, dass diese maximalen relativen Fehler weiter abnehmen, wenn n zunimmt.
- Rückgabe:
- valint, float, ndarray
Die Anzahl der Partitionen.
Siehe auch
combDie Anzahl der Kombinationen von N Dingen, die auf einmal mit k genommen werden.
Hinweise
Wenn N < 0 oder K < 0, wird 0 zurückgegeben.
Wenn K > N, wird 0 zurückgegeben.
Der Ausgabetyp ist immer int oder ndarray von object. Die Eingabe muss entweder numpy- oder Python-Integer enthalten, andernfalls wird ein TypeError ausgelöst.
Referenzen
[1]R. L. Graham, D. E. Knuth und O. Patashnik, „Concrete Mathematics: A Foundation for Computer Science“, Addison-Wesley Publishing Company, Boston, 1989. Kapitel 6, Seite 258.
[2]Temme, Nico M. „Asymptotic estimates of Stirling numbers.“ Studies in Applied Mathematics 89.3 (1993): 233-243.
Beispiele
>>> import numpy as np >>> from scipy.special import stirling2 >>> k = np.array([3, -1, 3]) >>> n = np.array([10, 10, 9]) >>> stirling2(n, k) array([9330.0, 0.0, 3025.0])