Il Triangolo di Seidel è una costruzione matematica simile al Triangolo di Pascal, ed è noto per la sua connessione con i numeri di Bernoulli.
Le prime poche righe sono:
1
1 1
2 2 1
2 4 5 5
16 16 14 10 5
16 32 46 56 61 61
Ogni riga viene generata come segue:
Se il numero di riga è pari (1 indicizzato):
Elimina il primo elemento della riga precedente
Ogni articolo successivo è la somma dell'articolo precedente e dell'articolo sopra di esso
Duplica l'ultimo elemento
Se il numero di riga è dispari:
Elimina l'ultimo elemento della riga precedente
Andando indietro , ogni articolo è la somma dell'articolo precedente e dell'articolo sopra di esso
Duplica quello che ora è il primo oggetto.
Fondamentalmente, costruiamo il triangolo in uno schema a zig-zag:
1
v
1 > 1
v
2 < 2 < 1
v
2 > 4 > 5 > 5
Per ulteriori informazioni, consultare la pagina Wikipedia sui numeri di Bernoulli.
La sfida:
Dato n
, come argomento di funzione o da STDIN, stampa o restituisce la n
riga del triangolo di Seidel o le prime n
righe. È possibile utilizzare l'indicizzazione 0 o 1.
Non è necessario gestire input negativi o non interi (né 0, se 1-indicizzato). Non è necessario gestire output più grandi di2147483647 = 2^31 - 1
Dato che si tratta di code-golf, fallo nel minor numero di byte possibile.
Esempi:
In questi esempi il valore restituito è la n
riga th, indicizzata 0.
Input -> Output
0 1
1 1 1
2 2 2 1
6 272 272 256 224 178 122 61
13 22368256 44736512 66750976 88057856 108311296 127181312 144361456 159575936 172585936 183194912 191252686 196658216 199360981 199360981