Écrivez une fonction ou un programme qui génère le nombre de chaque type d'élément (sommet, arête, face, etc.) d'un hypercube à N dimensions.
Par exemple, le cube en 3 dimensions a 1 cellule (soit 1 cube en 3 dimensions), 6 faces (soit 6 cubes en 2 dimensions), 12 arêtes (soit 12 cubes en 2 dimensions) et 8 sommets (soit 8 0 dimensions) cubes).
Plus de détails sur les éléments Hypercube peuvent être trouvés ici
Vous pouvez également consulter la séquence OEIS suivante .
Contribution
Votre code prendra en entrée (via STDIN ou un paramètre de fonction ou des choses similaires) un entier supérieur ou égal à 0, qui est la dimension de l'hypercube.
Votre code doit théoriquement fonctionner pour toute entrée> = 0, sans tenir compte des problèmes de mémoire et de temps (c'est-à-dire que la vitesse et les débordements de pile potentiels ne sont pas un problème pour votre réponse si l'entrée est grande). Les entrées données comme cas de test ne seront pas supérieures à 12.
Production
Vous sortirez une liste de tous les éléments de l'hypercube, en commençant par l'élément "dimension la plus élevée". Par exemple, pour un cube (entrée = 3), vous afficherez la liste [1,6,12,8]
(1 cellule, 6 faces, 12 arêtes, 8 sommets).
Le format de la liste dans la sortie est relativement libre, tant qu'il ressemble à une liste.
Vous pouvez exporter le résultat vers STDOUT ou le renvoyer à partir d'une fonction.
Cas de test
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]
Notation
Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte.