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.