Una simple: tome una lista de enteros positivos como entrada y salida, los números modulan su índice basado en 1 en la lista.
Si los enteros de entrada son {a, b, c, d, e, f, g}
entonces la salida debería estar {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
donde %
está el operador del módulo.
Casos de prueba:
10 9 8 7 6 5 4 3 2 1
0 1 2 3 1 5 4 3 2 1
8 18 6 11 14 3 15 10 6 19 12 3 7 5 5 19 12 12 14 5
0 0 0 3 4 3 1 2 6 9 1 3 7 5 5 3 12 12 14 5
1
0
1 1
0 1
Python 2 , 35 bytes
Pruébalo en línea!
Cuenta el índice manualmente, según un consejo mío .
fuente
Jalea , 2 bytes
Pruébalo en línea!
Explicación:
Básicamente, el código modula la lista original por la lista de índices.
fuente
%J
en Jelly, me pregunto si alguien ha respondido con esa respuesta". Supongo que alguien más tuvo la misma idea :-DR,
2418 bytesEvalúa la función:
Que se usa
seq_along()
para crear un vector de la misma longitud quex
, comenzando en 1, y luego%%
para tomar el módulo.El comportamiento predeterminado de
seq
cuando se presenta un vectorseq(along.with = x)
es la misma salida queseq_along(x)
, pero 6 bytes más corta.fuente
seq(x)
Es algo muy útil, ya que siempre estoy usando1:length(x)
.R, 27 bytes
ahorró 5 bytes gracias a @Jarko
ahorró 4 más gracias a @Giuseppe
ahorró 2 más gracias a @Taylor Scott
Ahorré 2 más gracias a @returnbull
fuente
' '
(espacio) al final decat
; ese es el separador predeterminadox<-scan();cat(x%%1:length(x)," ")
- oh y un par de consejos de formato, 1) solo necesita 4 espacios a la izquierda de su código para que esté debidamente sangrado y marcado 2) puede agregar una<!-- language-all: lang-r -->
bandera antes de que se resalte su código (aunque esto cambie poco en este ejemplo) 3) no necesita los corchetes alrededor del nombre de su idioma 4) ah y no necesita hacer un comentario cuando edita una publicación=
lugar de<-
guardar un byte. (2) La especificación dice "salida" en lugar de "imprimir", por lo que probablemente puede soltar elcat()
, ahorrando 5 bytes. (3)sum(1|x)
es un byte más corto quelength(x)
.APL (Dyalog) , 5 bytes
Pruébalo en línea!
⍳
los índices∘
de≢
la longitud del argumento|
ese módulo⊢
el argumentofuente
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
olife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
y GoL (en la Versión 16.0):K∊⍨⊢∘⊂⌺3 3
donde K es una constante.Cubix , 19 bytes
Pruébalo en línea!
Míralo correr
Una implementación bastante sencilla.
1
empuje 1 a la pila para comenzar el índiceI!@
obtener la entrada entera y detener si 0s%Ow
intercambie el índice hacia arriba, mod, resultado de salida y cambie de carril;)
eliminar resultado e índice de incrementoSow
empuje 32, espacio de salida y cambio de carril (hacia abajo desde o)$O
saltar la salidaw;w
cambiar lange, eliminar 32 de la pila y cambiar de carril a laI
entradafuente
05AB1E , 2 bytes
Pruébalo en línea! o prueba todas las pruebas
fuente
DgL%
agradable.gL%
porque me olvidéā
.ā
mí? Creo que nunca lo he usado, ¿es asífor each
pero de una1 to n+1
manera similarvy<code>})
pero implícitavy<code>})
?gL
. TIOMathematica, 22 bytes
Un enfoque más de Mathematica.
fuente
MapIndexed@Mod
es casi lo suficientemente bueno: '(Estrellado ,
7570 bytesPruébalo en línea!
Explicación
Este es un bucle infinito que mantiene la lectura de números de la entrada y aumenta un contador iniciado en
1
. Para cada par de entrada y contador, el módulo se calcula e imprime.Para finalizar el ciclo cuando la entrada se ha agotado, se utiliza el siguiente truco. Cuando no hay más entradas disponibles, al intentar leer un número más se obtiene a
0
. Por lo tanto, dividimos el número de lectura por sí mismo, y si es así,0
el programa termina con un error. De lo contrario, descartamos el resultado y continuamos.fuente
MATL ,
4, 3 bytesPruébalo en línea!
¡Un byte guardado gracias a @LuisMendo!
fuente
Brachylog , 9 bytes
Pruébalo en línea!
Explicación
fuente
Japt,
54 bytesIntentalo
Explicación
fuente
®%°T
(en realidad, aún podría usarloY
allí si lo desea)R, 22 bytes
R realiza 1: longitud (x) antes de hacer el módulo.
fuente
sum(x|1)
!seq()
lugar deseq_along()
hace lo mismo. Entonces eso es unos bytes más cortos nuevamente.Python 2 , 42 bytes
Pruébalo en línea!
fuente
for
lambda l:[v%-~i for i,v in enumerate(l)]
lambda l:[v%i for i,v in enumerate(l,1)]
.Haskell, 22 bytes
Pruébalo en línea!
También:
flip(zipWith mod)[1..]
.fuente
Mathematica, 21 bytes
Pruébalo en línea!
o 20 bytes (por Martin)
fuente
Tr[1^#]
paraLength@#
.#
como el segundo último personaje en tu primera respuesta.Excel VBA,
5946 bytesGolfed
Función anónima de ventana VBE Inmediata que toma una
cadena de matriz delimitada por espacios ( ) como entrada del rango
[A1]
y salida del módulo de números de su índice basado en 1 en la lista inicial a la ventana inmediata de VBEDe entrada y salida:
Antigua
Sub
versión de rutinaSubrutina que toma la entrada como una matriz pasada y salidas a la ventana inmediata de VBE.
Entrada / salida:
Sin golf
De entrada y salida:
fuente
CJam , 9 bytes
Bloque anónimo que espera una matriz en la pila y la reemplaza por la matriz de salida.
Pruébalo en línea!
Explicación
fuente
J, 9 bytes
1 ... n | lista original
|
es modfuente
JavaScript (ES6), 22 bytes
fuente
AWK, 13
Pruébalo en línea .
fuente
tcl, 35
demo
fuente
GNU APL 1.2, 9 bytes
APL operates from right to left, hence the parentheses.
R←⎕
assigns user input to vectorR
.⍴R
gives the length of the vector;⍳⍴R
gives a vector with all numbers from 1 to that length (so the indices).|
is the mod operator (a|b
yieldsb%a
). APL operates on arrays, so the code snippet a vector containing each element from the user's input mod its index.fuente
Pari/GP, 22 bytes
Try it online!
fuente
Pyth, 5
Online test.
fuente
Octave, 19 bytes
Try it online!
An anonymous function that takes n as input, and performs element-wise modulus with the list 1, 2, 3.
fuente
Braingolf, 18 bytes
Try it online!
Explanation
fuente
Java 8 / C#, 39 bytes
Try it here.
Also works in C# by replacing
->
with=>
andlength
withLength
:Try it here.
Explanation:
Modifies the input-array, hence the lack of a return.
fuente
->
to=>
and capitaliselength
.