Une pyramide des différences est une pyramide où chaque nouvelle diagonale est la valeur absolue des différences entre les éléments de la dernière diagonale. Par exemple, si nous commençons par le tableau
2 5 4 9 3 4
Maintenant, nous les organisons dans une colonne diagonale:
2
5
4
9
3
4
Maintenant, nous remplissons la diagonale suivante. Les différences absolues entre les éléments consécutifs de ce tableau sont:
3 1 5 6 1
Voilà donc notre prochaine diagonale.
2
3 5
1 4
5 9
6 3
1 4
Répétez jusqu'à ce que la pyramide soit remplie:
2
3 5
2 1 4
2 4 5 9
1 3 1 6 3
0 1 4 5 1 4
Le défi
Étant donné une liste d'entiers positifs dans la plage [0, 9]
, générez cette représentation ASCII de la pyramide des différences pour ce tableau particulier. L'entrée est garantie pour contenir au moins deux éléments. Vous pouvez prendre ces numéros dans n'importe quel format raisonnable. (Tableau / liste / quel que soit votre nom, une chaîne, des arguments de ligne de commande, etc.) Les espaces de fin sur chaque ligne et jusqu'à une nouvelle ligne de fin sont autorisés.
Test IO
[1, 2, 3, 4, 5, 6, 7, 8, 9]
1
1 2
0 1 3
0 0 1 4
0 0 0 1 5
0 0 0 0 1 6
0 0 0 0 0 1 7
0 0 0 0 0 0 1 8
0 0 0 0 0 0 0 1 9
[4, 7]
4
3 7
[3, 3, 3]
3
0 3
0 0 3
[1, 3, 6, 3, 4, 9]
1
2 3
1 3 6
1 0 3 3
1 2 2 1 4
1 0 2 4 5 9
[8, 7, 3, 2, 4, 5, 9, 1, 6]
8
1 7
3 4 3
0 3 1 2
2 2 1 2 4
0 2 0 1 1 5
0 0 2 2 3 4 9
1 1 1 1 1 4 8 1
0 1 0 1 0 1 3 5 6
Comme d'habitude, il s'agit de code-golf, donc les lacunes standard s'appliquent, et la réponse la plus courte en octets gagne!
Inspiré par cet OEIS et cette conjecture .