Considere la matriz infinita:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 2 3 0 0 2 3 0 0 2 3 0 0 2 3
0 0 0 4 5 6 0 0 0 4 5 6 0 0 0 4 ...
0 0 0 0 7 8 9 10 0 0 0 0 7 8 9 10
0 0 0 0 0 11 12 13 14 15 0 0 0 0 0 11
...
Cada nueva fila de la matriz se construye comenzando con z
ceros, donde z
es la longitud de los dígitos positivos que estamos usando en esa fila. Los dígitos positivos se construyen comenzando 1
e incrementando y agregando un dígito adicional cada vez que itera filas. Ese patrón se repite infinitamente a la derecha. Entonces, por ejemplo, la primera fila comienza 0, 1, 0, 1...
mientras que la segunda fila comienza 0,0, 2,3, 0,0, 2,3...
. Siguiendo el patrón, comienza la tercera fila 0,0,0, 4,5,6, 0,0,0, 4,5,6...
.
Dados dos enteros como entrada n
y x
salida, los primeros x
números (más altos ) de la n
columna th de la matriz anterior. (Puede elegir la indexación 0 o 1 para las columnas, solo especifique cuál en su envío).
Por ejemplo, para la entrada n = 0
(indexada a 0), la columna es completamente 0
s, por lo que la salida sería x
0
s.
Para la entrada n = 15
y x = 6
, la salida sería [1, 3, 4, 10, 11, 0]
.
Para la entrada n = 29
y x = 15
, la salida sería [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]
.
Para la entrada n = 99
y x = 25
, la salida sería [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]
.
E / S y reglas
- La entrada y salida se pueden dar por cualquier método conveniente .
- Se puede suponer que la entrada y la salida encajan en el tipo de número nativo de su idioma.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
n=1
ya que el resultado de la aplicación ya no es una matriz. Esta solución es costosa. Me pregunto si hay una más golfista.rep
con unn
interiorsapply
, lo que salvó un byte, pero luego recordé que losfor
bucles son más cortos quesapply
ya que no tendría que definir una función.Python 2 , 69 bytes
Pruébalo en línea!
fuente
APL (Dyalog Classic) ,
272423 bytes-1 gracias a @FrownyFrog
Pruébalo en línea!
fuente
MATL ,
2518 bytesPruébalo en línea!
¡Gracias a Luis Mendo por jugar 6 bytes!
Esto es esencialmente un puerto MATL de mi respuesta R.
fuente
K (ngn / k) ,
3331 bytesPruébalo en línea!
fuente
Casco , 14 bytes
El argumento
n
(primero) está indexado en 1, ¡ pruébelo en línea!Alternativamente, podríamos usar
↑!TṠzo¢+†K0CNN
para el mismo número de bytes.Explicación
fuente
Casco ,
2119 bytesToma argumentos como
n
(1 indexado), entoncesx
.Ahorró 2 bytes gracias a BMO, pero aún no es tan corto como la respuesta de BMO.
Mi primer intento de usar Husk.
Pruébalo en línea!
fuente
Haskell , 75 bytes
Pruébalo en línea!
fuente
Python 2 , 55 bytes
Pruébalo en línea!
Desarrollado independientemente; pero noto que esto termina siendo un puerto de la respuesta Javascript de Arnauld .
fuente
Perl 5
-n
, 52 bytesPruébalo en línea!
fuente
Jalea , 11 bytes
Pruébalo en línea!
-1 gracias a Jonathan Allan .
Argumento 1: x
Argumento 2: n + 1
fuente
0ṁ;Ɗ
->¬;$
guarda un byte.’R
... (es decir, al menos para mí) Lo extraño es que durante los últimos días he estado pensando en la secuencia Thue-Morse (que, en Jelly, contiene;¬$
).05AB1E , 25 bytes
Pruébalo en línea!
05AB1E va con matrices como pasta de dientes y jugo de naranja, pero no es un recuento de bytes malo lo malo que es mi implementación. Incluso mi código se está riendo de mí "
LO©L
".fuente
Carbón de leña , 19 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
El fragmento
EιL⊞Oυω
genera los siguientesi
enteros por el recurso de empujar un valor ficticio a una matriz cada vez que pasa a través del bucle y tomar la longitud de la matriz resultante.fuente
Java 8,
656360 bytesn
está indexado a 0,x
está indexado a 1, emite los números delimitados e invertidos de nueva línea.Respuesta de JavaScript del puerto de @ Arnauld (ES6) .
Pruébalo en línea.
Un resultado bonito impreso en el orden correcto es
86 bytes más largo: Pruébelo en línea.fuente
Haskell, 67 bytes
Pruébalo en línea!
fuente