Eine Bellsche Zahl ( OEIS A000110 ) ist die Anzahl von Möglichkeiten, eine Menge von n markierten (unterschiedlichen) Elementen zu partitionieren. Die 0. Bellsche Zahl ist als 1 definiert.
Schauen wir uns einige Beispiele an (ich verwende Klammern, um die Teilmengen und Klammern für die Partitionen zu bezeichnen):
1: {1}
2: {[1,2]}, {[1],[2]}
3: {[1,2,3]}, {[1,2],[3]}, {[1,3],[2]}, {[2,3],[1]}, {[1],[2],[3]}
Es gibt viele Möglichkeiten , Bellsche Zahlen zu berechnen, und Sie können jede davon verwenden. Ein Weg wird hier beschrieben:
Der einfachste Weg, Bellsche Zahlen zu berechnen, besteht darin, ein Zahlendreieck zu verwenden, das Pascals Dreieck für die Binomialkoeffizienten ähnelt. Die Glockennummern erscheinen an den Rändern des Dreiecks. Beginnend mit 1 wird jede neue Zeile im Dreieck erstellt, indem der letzte Eintrag in der vorherigen Zeile als erster Eintrag verwendet und dann jeder neue Eintrag auf seinen linken Nachbarn plus seinen oberen linken Nachbarn gesetzt wird:
1
1 2
2 3 5
5 7 10 15
15 20 27 37 52
Sie können 0-Indizierung oder 1-Indizierung verwenden. Wenn Sie die Indizierung 0 verwenden, sollte eine Eingabe von 3ausgegeben werden 5, sollte aber ausgegeben werden, 2wenn Sie die Indizierung 1 verwenden.
Ihr Programm muss bis zur 15. Bell-Nummer funktionieren und ausgeben 1382958545. Theoretisch sollte Ihr Programm in der Lage sein, größere Zahlen zu verarbeiten (mit anderen Worten, codieren Sie die Lösungen nicht hart).
BEARBEITEN: Sie müssen keine Eingabe von 0 (für die 0-Indizierung) oder 1 (für die 1-Indizierung) verarbeiten, da diese nicht mit der Dreieck-Methode berechnet wird.
Testfälle (unter der Annahme einer 0-Indizierung):
0 -> 1 (OPTIONAL)
1 -> 1
2 -> 2
3 -> 5
4 -> 15
5 -> 52
6 -> 203
7 -> 877
8 -> 4140
9 -> 21147
10 -> 115975
11 -> 678570
12 -> 4213597
13 -> 27644437
14 -> 190899322
15 -> 1382958545
Antworten mit einer integrierten Methode (wie BellB [n] in der Wolfram-Sprache), die direkt Bell-Zahlen erzeugt, sind nicht wettbewerbsfähig.
Kürzester Code (in Bytes) gewinnt.
3ausgegeben werden sollte 2. Was würde dann eine Eingabe 1bei 1-Indizierung geben?



3ausgeben"5ausgegeben15werden. Und mit 1-Indexierung würde es ausgegeben5