La plupart des gens connaissent le triangle de Pascal.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Le triangle de Pascal est un automate où la valeur d'une cellule est la somme des cellules en haut à gauche et en haut à droite. Maintenant, nous allons définir un triangle similaire. Au lieu de simplement prendre les cellules en haut à gauche et en haut à droite, nous allons prendre toutes les cellules le long de deux lignes infinies s'étendant en haut à gauche et en haut à droite. Tout comme le triangle de Pascal, nous commençons par un simple 1
rembourré à l'infini par des zéros et nous construisons vers le bas à partir de là.
Par exemple, pour calculer la cellule indiquée par un x
1
1 1
2 2 2
4 5 5 4
x
Nous résumerions les cellules suivantes
.
. .
2 . 2
. 5 5 .
x
Faire notre nouvelle cellule 14
.
Tâche
Étant donné un numéro de ligne ( n ) et une distance à gauche ( r ), calculez et sortez la r e entrée non nulle à partir de la gauche sur la n e ligne. (l'équivalent sur le triangle de Pascal est nCr ). Vous pouvez supposer que r est inférieur à n .
Il s'agit de code-golf , l'objectif est de minimiser le nombre d'octets dans votre solution.
Cas de test
0,0 -> 1
1,0 -> 1
2,0 -> 2
4,2 -> 14
6,3 -> 106
Voici les deux premières lignes sous forme de triangle:
1
1 1
2 2 2
4 5 5 4
8 12 14 12 8
16 28 37 37 28 16
32 64 94 106 94 64 32
64 144 232 289 289 232 144 64
128 320 560 760 838 760 560 320 128
Réponses:
Gelée ,
1817 octetsUtilise l'indexation basée sur 0.
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 3 , 72 octets
1 octet grâce à Kritixi Lithos.
Essayez-le en ligne!
la source
n>=r>=0and
et enregistrer un octetn
vaut 0, alors il donne 1; sinon, il donne 0. C'est commen and ... or 1
, mais plus court.0^0
est1
dans la plupart des langages de programmation .ES6,
8078 octetsEn action!
Deux octets grâce à Arnauld.
la source
while(n&&r<n)
etwhile(o*r)
.PHP , 94 octets
manière récursive indexée 0
Essayez-le en ligne!
PHP , 125 octets
0 indexé
Essayez-le en ligne!
PHP> = 7.1, 159 octets
0 indexé pour les lignes de plus de 50
la source
Python 3 , 61 octets
Cela renvoie True pour le cas de base (0, 0) , ce qui est autorisé par défaut .
Essayez-le en ligne!
la source
~n<-r<1
est assez intelligent, j'ai passé 10 bonnes minutes à essayer le golfn>=r>=0
.Pascal , 145 octets
Essayez-le en ligne!
Utilise la
T(n, r) = T(n-1, r-1) + T(n-1, r)
récursivité.la source