La mayoría de las personas están familiarizadas con el triángulo de Pascal.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
El triángulo de Pascal es un autómata donde el valor de una celda es la suma de las celdas en la esquina superior izquierda y superior derecha. Ahora vamos a definir un triángulo similar. En lugar de simplemente llevar las celdas a la esquina superior izquierda y a la derecha superior, vamos a tomar todas las celdas a lo largo de dos líneas infinitas que se extienden a la esquina superior izquierda y superior derecha. Al igual que el triángulo de Pascal, comenzamos con un solo 1
relleno infinito de ceros y desde allí construimos hacia abajo.
Por ejemplo, para calcular la celda indicada con un x
1
1 1
2 2 2
4 5 5 4
x
Sumaríamos las siguientes celdas
.
. .
2 . 2
. 5 5 .
x
Haciendo nuestra nueva celda 14
.
Tarea
Dado un número de fila ( n ), y la distancia desde la izquierda ( r Calcular) y la salida de la r º no cero de entrada de la izquierda en el n º fila. (el equivalente en el triángulo de Pascal es nCr ). Puede suponer que r es menor que n .
Este es el código de golf , el objetivo es minimizar el número de bytes en su solución.
Casos de prueba
0,0 -> 1
1,0 -> 1
2,0 -> 2
4,2 -> 14
6,3 -> 106
Aquí están las primeras dos filas en forma de triángulo:
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
Respuestas:
Jalea ,
1817 bytesUtiliza indexación basada en 0.
Pruébalo en línea!
Cómo funciona
fuente
Python 3 , 72 bytes
1 byte gracias a Kritixi Lithos.
Pruébalo en línea!
fuente
n>=r>=0and
y guardar un byten
es 0, entonces da 1; de lo contrario, da 0. Es comon and ... or 1
, pero más corto.0^0
está1
en la mayoría de los lenguajes de programación .ES6,
8078 bytes¡En acción!
Dos bytes gracias a Arnauld.
fuente
while(n&&r<n)
ywhile(o*r)
.PHP , 94 bytes
manera recursiva indexada 0
Pruébalo en línea!
PHP , 125 bytes
0 indexado
Pruébalo en línea!
PHP> = 7.1, 159 bytes
0 indexado para filas de más de 50
fuente
Python 3 , 61 bytes
Esto devuelve True para el caso base (0, 0) , que está permitido por defecto .
Pruébalo en línea!
fuente
~n<-r<1
es bastante inteligente, pasé unos buenos 10 minutos intentando jugar al golfn>=r>=0
.Pascal , 145 bytes
Pruébalo en línea!
Utiliza la
T(n, r) = T(n-1, r-1) + T(n-1, r)
recursividad.fuente