scipy.special.

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>50 verwendet. Der maximale Fehler der DP hat einen maximalen relativen Fehler von 4.5*10^-16 für n<=50 und der maximale Fehler der Temme-Approximation hat einen maximalen relativen Fehler von 5*10^-5 für 51 <= n < 70 und 9*10^-6 für 70 <= 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

comb

Die 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])