Voici la tresse de Pascal:
1 4 15 56 209 780 2911 10864 40545 151316 564719
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719
J'ai totalement inventé ça. Autant que je sache, Blaise Pascal n'avait pas de tresse, et s'il l'a fait, c'était probablement en cheveux plutôt qu'en chiffres.
Il est défini comme ceci:
- La première colonne a un seul
1
au milieu. - La deuxième colonne a un
1
en haut et en bas. - Maintenant, nous alternons entre mettre un nombre au milieu ou deux copies d'un nombre en haut et en bas.
- Si le nombre va en haut ou en bas, ce sera la somme des deux nombres adjacents (par exemple
56 = 15 + 41
). Si vous inclinez un peu la tête, c'est comme une étape dans le triangle de Pascal. - Si le nombre va au milieu, ce sera la somme des trois nombres adjacents (par exemple
41 = 15 + 11 + 15
).
Votre tâche sera d'imprimer (une partie de) cette tresse.
Contribution
Vous devez écrire un programme ou une fonction, qui reçoit un seul entier n
, donnant l'index de la dernière colonne à sortir.
Vous pouvez choisir si la première colonne (en n'imprimant qu'une seule 1
sur la ligne médiane) correspond à n = 0
ou n = 1
. Cela doit être un choix cohérent parmi toutes les entrées possibles.
Sortie
Sortez la tresse de Pascal jusqu'à la n
e colonne. L'espace doit correspondre exactement à la disposition d'exemple ci-dessus, sauf que vous pouvez remplir la ou les lignes plus courtes avec la longueur de la ou des lignes plus longues avec des espaces et vous pouvez éventuellement générer un seul saut de ligne de fin.
En d'autres termes, chaque colonne doit être exactement aussi large que le nombre (ou une paire de nombres égaux) dans cette colonne, les nombres dans les colonnes successives ne doivent pas se chevaucher et il ne doit pas y avoir d'espaces entre les colonnes.
Vous pouvez soit imprimer le résultat dans STDOUT (ou l'alternative la plus proche), ou si vous écrivez une fonction, vous pouvez renvoyer soit une chaîne avec le même contenu soit une liste de trois chaînes (une pour chaque ligne).
Plus de détails
Vous pouvez supposer que n
ce ne sera pas inférieur à l'index de la première colonne (donc pas inférieur 0
ou 1
dépendant de votre indexation). Vous pouvez également supposer que le dernier nombre de la tresse est inférieur à 256 ou le plus grand nombre représentable par le type entier natif de votre langue, selon le plus élevé des deux . Donc, si votre type d'entier natif ne peut stocker que des octets, vous pouvez supposer que le plus grand n
est 9
ou 10
(selon que vous utilisez 0 ou 1 n
) et s'il peut stocker des entiers 32 bits signés, n
sera au plus 33
ou 34
.
Les règles de code-golf standard s'appliquent. Le code le plus court gagne.
OEIS
Voici quelques liens pertinents de l'OEIS. Bien sûr, ceux-ci contiennent des spoilers pour différentes façons de générer les nombres dans la tresse:
Cas de test
Ces cas de test utilisent l'indexation 1 base. Chaque cas de test est de quatre lignes, la première étant l'entrée et les trois autres étant la sortie.
1
1
---
2
1
1
1
---
3
1
1 3
1
---
5
1 4
1 3 11
1 4
---
10
1 4 15 56 209
1 3 11 41 153
1 4 15 56 209
---
15
1 4 15 56 209 780 2911
1 3 11 41 153 571 2131 7953
1 4 15 56 209 780 2911
---
24
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560