Escriba una función o programa que genere el número de cada tipo de elemento (vértice, arista, cara, etc.) de un hipercubo N-dimensional.
Como ejemplo, el cubo tridimensional tiene 1 celda (es decir, 1 cubo tridimensional), 6 caras (es decir, 6 cubos bidimensionales), 12 aristas (es decir, 12 cubos bidimensionales) y 8 vértices (es decir, 8 dimensiones). cubitos).
Puede encontrar más detalles sobre los elementos de Hypercube aquí
También puede echar un vistazo a la siguiente secuencia OEIS .
Entrada
Su código tomará como entrada (a través de STDIN o un parámetro de función o cosas similares) un número entero mayor o igual a 0, que es la dimensión del hipercubo.
Su código tiene que funcionar teóricamente para cualquier entrada> = 0, sin tener en cuenta los problemas de memoria y tiempo (es decir, la velocidad y los desbordamientos potenciales de la pila no son un problema para su respuesta si la entrada es grande). Las entradas dadas como casos de prueba no serán superiores a 12.
Salida
Superará una lista de todos los elementos del hipercubo, comenzando con el elemento de "dimensión más alta". Por ejemplo, para un cubo (input = 3), generará la lista [1,6,12,8]
(1 celda, 6 caras, 12 aristas, 8 vértices).
El formato de la lista en la salida es relativamente libre, siempre que parezca una lista.
Puede enviar el resultado a STDOUT o devolverlo desde una función.
Casos de prueba
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]
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en bytes.