Anordnen von Objekten mit vorgegebener Mindestanzahl?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

3^12 würde auch nicht gehen, wenn Anzahlen 0 erlaubt wären - die Reihenfolge der Fleischsorten ist ja egal.

Um bei 0 anzufangen, kann man erst mal 3 Stück von jeder Fleischsorte kaufen und sich dann um die Variationen kümmern. Dann hätte man noch 12 - 3 * 3 Steaks frei wählbar.

Das Problem ist verwandt mit "Partitionen" (meine Recherche führt u. A. auf https://de.wikipedia.org/wiki/Stirling-Zahl#Stirling-Zahlen_zweiter_Art) und mit Multinomialkoeffizienten, aber beides passt nicht so richtig.

-----

Wir können die Anzahlfunktion rekursiv definieren:

f(k; n) sei die Anzahl der Möglichkeiten, n Elemente auf k Sorten/Kisten/... aufzuteilen (jeweilige Mindestanzahl 0).

(Hier hätten wir dann f(3; 12 - 3 * 3) = f(3; 3))

-----

Für die Rekursion:

Wenn wir für die erste Sorte/Kiste genau j Elemente nehmen (0 <= j <= n), bleibt für den Rest

f(k-1; n-j)

Insgesamt also

f(k; n) = Summe {j von 0 bis n} f(k-1; n-j)

-----

Damit die Rekursion nicht unendlich "tief" wird, brauchen wir ein Rekursionsende.

Ein Rekursionsende ist bei n = 0 erreicht - dann müssen alle Kisten leer bleiben und wir haben offensichtlich genau eine Möglichkeit:

f(k; 0) = 1 (für alle k > 0)

In diesem Fall gilt das auch für k = 0:

f(0; 0) = 1

Aber für n > 0 ist

f(0; n)

nicht definiert; damit haben wir für k = 1, n > 0 genau eine Möglichkeit: alle n Elemente in die erste/einzige Kiste / aus der ersten/einzigen Sorte, also

f(1; n) = 1 für n > 0

-----

Wenn man ein paar Dutzend Funktionswerte aufschreibt oder etwas herumrechnet, kommt man vielleicht auch auf eine Formel, die Multinomialkoeffizienten o. Ä. verwendet.

PWolff  01.05.2023, 21:38

Hab das mal gemacht - es kommt was überraschend Einfaches raus.

f(k; n) = Binomialkoeffizient(n+k-1; n)

(Anfänge - f(k; 0) und f(0; n) - wie oben)

0