Ok, he estado en una patada triangular recientemente, así que aquí hay otra.
El Triángulo de Clark es un triángulo donde la entrada más a la izquierda de cada fila es 1 y las entradas más a la derecha están formadas por múltiplos de 6 que aumentan a medida que aumenta el número de fila. Aquí hay una visualización
1 6
1 . 12
1 . . 18
1 . . . 24
1 . . . . 30
1 . . . . . 36
Al igual que el Triángulo de Pascal, todas las demás entradas son la suma de los números en su esquina superior derecha y superior izquierda.
Aquí están las primeras filas rellenadas
1 6
1 7 12
1 8 19 18
1 9 27 37 24
1 10 36 64 61 30
1 11 46 100 125 91 36
Tarea
Dado un número de fila (comenzando desde la parte superior) y un número de columna (comenzando desde el primer elemento distinto de cero en esa fila), se genera el valor en esa celda particular. Ambas entradas pueden estar indexadas en 1 o 0 (puede mezclar y combinar si lo desea). Fuera de los límites del triángulo no está definido y puede hacer lo que desee cuando se le pregunte por estos valores.
Este es el código de golf , el objetivo es minimizar el número de bytes en su solución.
Respuestas:
MATL , 15 bytes
La primera entrada es una fila basada en 0; el segundo es una columna basada en 1.
Pruébalo en línea!
Explicación
fuente
Pascal , 132 bytes
Pruébalo en línea!
1 indexado.
fuente
CJam ,
2218 bytes-4 bytes gracias a Martin Ender
La entrada es
(0-based row) (0-based column)
Pruébalo en línea!
Explicación
fuente
.+
. Normalmente eso tiene el problema de que retiene el elemento final sin sumarlo (lo que cuesta eliminar bytes), pero en este caso eso realmente guarda bytes porque no es necesario agregar un6
en cada iteración. Usted puede ahorrar aún más bytes porque el cambio izquierda es libre si solo precedidos0
de una copia:X6_]ri{0X$+.+}*ri=
_0\+
en lugar de0X$+
es el mismo número de bytes si lo prefiere.C #, 157 bytes
Pruébalo en línea
fuente
Python 2 , 67 bytes
Pruébalo en línea!
Enfoque de fuerza bruta, calcule la
a
fila th y luego imprima elb
número th, ambas entradas están basadas en 0fuente
Python 3 ,
646052 bytesPruébalo en línea!
Solución recursiva con indexación 1. Salidas "True" en lugar de 1 por el bien del golf.
Gracias a:
fuente
Haskell , 41 bytes
Pruébalo en línea!
Llame usando
n # m
wheren
es el número de fila ym
el número de columna, ambos indexados en 1.fuente
Mathematica, 32 bytes
entrada
fuente
JavaScript (ES6), 38 bytes
Se bloquea para columnas negativas y devuelve múltiplos de seis para filas negativas o columnas demasiado grandes.
fuente
C # (.NET Core) , 44 bytes
Toma la columna y luego la fila, ambas indexadas en 1. Puede tomar a continuación la columna fila mediante el canje de las entradas:
(r,c)
. Volverárow * 6
para coordenadas fuera de los límites a la derecha (es decircolumn > row + 1
), y1
para coordenadas fuera de los límites a la izquierda (es decircolumn < 1
).fuente
PHP , 64 bytes
función recursiva
filas 1-indexación columnas 0-indexación
La salida para fila = 0 y columna = 0 es 0 como en la secuencia OEIS
Pruébalo en línea!
PHP , 126 bytes
filas 1-indexación columnas 0-indexación
La salida para fila = 0 y columna = 0 es 0 como en la secuencia OEIS
Pruébalo en línea!
fuente
R , 77 bytes
Requiere la
zoo
biblioteca; lee desde stdin (las entradas separadas por dos líneas nuevas) y devuelve el valor, con seleccionesNA
fuera de límites.Pruébalo en línea!
fuente
Jalea , 13 bytes
Un enlace monádico que toma una lista de
[row, entry]
(indexación 0 para entradas, indexación 1 para filas), que devuelve el valor.Pruébalo en línea!
¿Cómo?
fuente