Su tarea es, dados dos enteros positivos, y , devolver los primeros números en la secuencia de rangos incrementales.
La secuencia de rango incremental primero genera un rango de uno a inclusive. Por ejemplo, si fuera , generaría la lista . Luego agrega repetidamente los últimos valores incrementados en a la lista existente, y continúa.
Una entrada de por ejemplo:
n=3
1. Get range 1 to n. List: [1,2,3]
2. Get the last n values of the list. List: [1,2,3]. Last n=3 values: [1,2,3].
3. Increment the last n values by 1. List: [1,2,3]. Last n values: [2,3,4].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4]
5. Repeat steps 2-5. 2nd time repeat shown below.
2nd repeat:
2. Get the last n values of the list. List: [1,2,3,2,3,4]. Last n=3 values: [2,3,4]
3. Increment the last n values by 1. List: [1,2,3,2,3,4]. Last n values: [3,4,5].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4,3,4,5]
Casos de prueba:
n, x, Output
1, 49, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
2, 100, [1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51]
3, 13, [1,2,3,2,3,4,3,4,5,4,5,6,5]
/
con//
Jalea , 4 bytes
Un enlace diádico que acepta dos enteros positivos,
x
a la izquierda yn
a la derecha, lo que produce una lista de enteros positivos.Pruébalo en línea!
¿Cómo?
fuente
p
...R , 33 bytes
Pruébalo en línea!
Puertos de la solución Python de Jonathan Allan .
R , 36 bytes
Pruébalo en línea!
Mi solución original genera una matrizn × x con cada columna como incrementos, es decir, 1 ... n , 2 ... n + 1 , ... , luego toma las primeras X entradas (bajando las columnas).
fuente
05AB1E , 6 bytes
Puerto de la respuesta Jelly de @JonathanAllan , ¡así que asegúrate de votarlo!
La primera entrada esX , la segunda entrada es norte .
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
Mi propio enfoque inicial fue de 8 bytes :
La primera entrada esnorte , la segunda entrada es X .
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
Perl 6 , 18 bytes
Pruébalo en línea!
Función de curry
f(x)(n)
.Explicación
fuente
Brain-Flak , 100 bytes
Con comentarios y formato:
Pruébalo en línea!
fuente
J ,
1312 bytesPruébalo en línea!
cómo
Tomamos
x
como el argumento izquierdo,n
como el derecho. Tomemosx = 8
yn = 3
para este ejemplo:+/&i.
: Transforme ambos argumentos creando rangos enterosi.
, es decir, el argumento izquierdo se convierte en0 1 2 3 4 5 6 7
el argumento derecho0 1 2
. Ahora creamos una "tabla de suma+/
de esos dos:1 +
: Agregue 1 a cada elemento de esta tabla:[: ,
: Aplanarlo,
:[ $
: Dale forma$
para que tenga el mismo número de elementos que el argumento izquierdo original no transformado[
, es decirx
:fuente
Octava , 25 bytes
Función anónima que ingresa números
n
yx
, y genera un vector de fila.Pruébalo en línea!
Cómo funciona
Considerar
n=3
yx=13
.El código
(1:n)'
da el vector de columnaLuego
(0:x)
da el vector filaLa adición
(1:n)'+(0:x)
es un elemento inteligente con broadcast, por lo que proporciona una matriz con todos los pares de sumas:La indexación con
(1:x)
recupera los primerosx
elementos de esta matriz en orden lineal de columna mayor (abajo, luego a través), como un vector de fila:fuente
Haskell , 31 bytes
Pruébalo en línea!
Este podría ser mi tipo de recursión favorita. Comenzamos con los valores de 1 a n y luego concatenamos esos mismos valores (mediante autorreferencia) +1. entonces solo tomamos los primeros valores de x.
fuente
Adelante (gforth) , 34 bytes
Pruébalo en línea!
Explicación del código
fuente
MATL ,
16, 10 bytesPruébalo en línea!
-6 bytes guardados gracias a Guiseppe y Luis Mendo!
Explicación:
fuente
Gaia , 8 bytes
Pruébalo en línea!
Hace básicamente lo mismo que las respuestas Octave y MATL .
fuente
Jalea , 5 bytes
Pruébalo en línea!
fuente
Ruby , 32 bytes
Pruébalo en línea!
fuente
Japt
-m
,127 bytesSolución Python del puerto de Jonathan .
Toma
x
como la primera entrada.Intentalo
fuente
JavaScript, 36 bytes
¡Pruébelo en línea!
fuente
alert
o enprint
lugar de devolver una matriz puede reducir esto a 34 bytes:n=>g=x=>x&&print(g(--x)|1+x%n+x/n)
Perl 5
-na
, 43 bytesPruébalo en línea!
fuente
K (oK) ,
1716 bytesPruébalo en línea!
fuente
Stax , 6 bytes
Ejecutar y depurarlo
Desempaquetado y explicado:
fuente
Alquimista , 77 bytes
Pruébalo en línea!
Incrementa y genera un contador n veces, luego resta n-1 antes de repetir.
fuente
Carbón , 18 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Soñé con sembrar la lista con un rango indexado a cero y luego cortarla nuevamente, pero en realidad fue 2 bytes más. Explicación:
fuente
JS, 54 bytes
Pruébalo en línea!
fuente
f=
. Puede guardar un byte al cursar los parámetros (n=>x=>
) y otro al esparcir y mapear la matriz ([...Array(x)].map()
).Haskell,
3433 bytesPruébalo en línea!
fuente
Perl 5 , 39 bytes
Pruébalo en línea!
fuente
C (gcc) ,
4944 bytesUsando la recursión para guardar algunos bytes.
Pruébalo en línea!
fuente
APL + WIN,
29 2316 bytesOrigen del índice = 0 y solicita n y x
Pruébalo en línea! Cortesía de Dyalog Classic.
fuente
C (clang), 843 bytes
fuente
argc
,argv
yranges
). Además, no es necesario agregar ningún mensaje de advertencia. Puede asumir que la entrada es válida, a menos que el desafío indique lo contrario.Icono , 48 bytes
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) , 41 bytes
Pruébalo en línea!
fuente
Factor , 55 bytes
Pruébalo en línea!
fuente