Ein Baum ist ein verbundener, ungerichteter Graph ohne Zyklen. Ihre Aufgabe ist es zu zählen, wie viele verschiedene Bäume es mit einer bestimmten Anzahl von Eckpunkten gibt.
Zwei Bäume gelten als verschieden, wenn sie nicht isomorph sind . Zwei Diagramme sind isomorph, wenn ihre jeweiligen Scheitelpunkte so gepaart werden können, dass genau dann eine Kante zwischen zwei Scheitelpunkten in einem Diagramm liegt, wenn zwischen den Scheitelpunkten, die mit diesen Scheitelpunkten im anderen Diagramm gepaart sind, eine Kante vorhanden ist. Eine ausführlichere Beschreibung finden Sie unter dem obigen Link.
Schauen Sie hier , um zu sehen, wie alle unterschiedlichen Bäume der Größen 1 bis 6 aussehen .
Die Serie, die Sie ausgeben möchten, ist A000055 bei der OEIS.
Einschränkung : Die Ausführung Ihrer Lösung muss maximal Minuten dauern 6
. Dies soll nicht exponentielle Zeitalgorithmen eliminieren, aber es soll doppelt exponentielle Zeitalgorithmen eliminieren, wie z. B. Brute Forcing über alle Kantenmengen.
Eingabe: Beliebige nicht negative Ganzzahl.
Die Eingabe kann mit jedem Standardmittel erfolgen, einschließlich STDIN, Befehlszeilenparameter, Funktionseingabe usw.
Ausgabe: Die Anzahl der unterschiedlichen Bäume mit so vielen Scheitelpunkten wie die Eingabe.
Die Ausgabe kann mit allen Standardmitteln erfolgen, einschließlich STDOUT, Funktionsrückgabe usw.
Beispiele: 0, 1, 2, 3, 4, 5, 6, 7
sollte zurückkehren 1, 1, 1, 1, 2, 3, 6, 11
.
Wertung: Code Golf, in Bytes. Möge der kürzeste Code gewinnen!
Standardlücken verboten.