Scrivi una funzione o un programma che emetta il numero di ciascun tipo di elemento (vertice, bordo, faccia, ecc.) Di un ipercubo N-dimensionale.
Ad esempio, il cubo tridimensionale ha 1 cella (ovvero 1 cubo tridimensionale), 6 facce (ovvero 6 cubi bidimensionali), 12 bordi (ovvero 12 cubi bidimensionali) e 8 vertici (ovvero 8 cubi 0 cubi).
Maggiori dettagli sugli elementi Hypercube sono disponibili qui
Puoi anche dare un'occhiata alla seguente sequenza OEIS .
Ingresso
Il tuo codice prenderà come input (tramite STDIN o un parametro di funzione o cose simili) un numero intero maggiore o uguale a 0, che è la dimensione dell'ipercubo.
Il codice deve teoricamente funzionare per qualsiasi input> = 0, ignorando i problemi di memoria e di tempo (ovvero, la velocità e i potenziali overflow dello stack non sono un problema per la tua risposta se l'input è grande). Gli input forniti come casi di test non saranno superiori a 12.
Produzione
Eseguirai un elenco di tutti gli elementi dell'ipercubo, iniziando con l'elemento "dimensione massima". Ad esempio, per un cubo (input = 3), verrà visualizzato l'elenco [1,6,12,8]
(1 cella, 6 facce, 12 bordi, 8 vertici).
Il formato dell'elenco nell'output è relativamente libero, purché assomigli a un elenco.
È possibile inviare il risultato a STDOUT o restituirlo da una funzione.
Casi 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]
punteggio
Questo è code-golf , quindi vince la risposta più breve in byte.