Schreiben Sie eine Funktion oder ein Programm, das die Nummer jedes Elementtyps (Scheitelpunkt, Kante, Fläche usw.) eines N-dimensionalen Hyperwürfels ausgibt.
Beispielsweise hat der dreidimensionale Würfel 1 Zelle (dh 1 dreidimensionaler Würfel), 6 Flächen (dh 6 zweidimensionale Würfel), 12 Kanten (dh 12 zweidimensionale Würfel) und 8 Eckpunkte (dh 8 0-dimensional) Würfel).
Weitere Details zu Hypercube-Elementen finden Sie hier
Sie können sich auch die folgende OEIS-Sequenz ansehen .
Eingang
Ihr Code nimmt als Eingabe (über STDIN oder einen Funktionsparameter oder ähnliche Dinge) eine ganze Zahl größer oder gleich 0 an, die die Dimension des Hyperwürfels darstellt.
Ihr Code muss theoretisch für jede Eingabe> = 0 funktionieren, wobei Speicher- und Zeitprobleme unberücksichtigt bleiben (dh Geschwindigkeit und potenzielle Stapelüberläufe sind für Ihre Antwort kein Problem, wenn die Eingabe groß ist). Als Testfälle angegebene Eingaben werden nicht höher als 12 sein.
Ausgabe
Sie geben eine Liste aller Elemente des Hypercubes aus, beginnend mit dem Element "höchste Dimension". Für einen Würfel (Eingabe = 3) geben Sie beispielsweise die Liste aus [1,6,12,8]
(1 Zelle, 6 Flächen, 12 Kanten, 8 Eckpunkte).
Das Format der Liste in der Ausgabe ist relativ frei, solange es wie eine Liste aussieht.
Sie können das Ergebnis an STDOUT ausgeben oder von einer Funktion zurückgeben.
Testfälle
Input = 0
Output = [1]
Input = 1
Output = [1,2]
Input = 3
Output = [1,6,12,8]
Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]
Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]
Wertung
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.