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
%Jen 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
seqcuando 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 Rolife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life(⊢~∘.×⍨)1↓⍳Ry GoL (en la Versión 16.0):K∊⍨⊢∘⊂⌺3 3donde K es una constante.Cubix , 19 bytes
Pruébalo en línea!
Míralo correr
Una implementación bastante sencilla.
1empuje 1 a la pila para comenzar el índiceI!@obtener la entrada entera y detener si 0s%Owintercambie el índice hacia arriba, mod, resultado de salida y cambie de carril;)eliminar resultado e índice de incrementoSowempuje 32, espacio de salida y cambio de carril (hacia abajo desde o)$Osaltar la salidaw;wcambiar lange, eliminar 32 de la pila y cambiar de carril a laIentradafuente
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 eachpero de una1 to n+1manera similarvy<code>})pero implícitavy<code>})?gL. TIOMathematica, 22 bytes
Un enfoque más de Mathematica.
fuente
MapIndexed@Modes 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í,0el 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 usarloYallí 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
forlambda 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
Subversió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.⍴Rgives the length of the vector;⍳⍴Rgives a vector with all numbers from 1 to that length (so the indices).|is the mod operator (a|byieldsb%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=>andlengthwithLength:Try it here.
Explanation:
Modifies the input-array, hence the lack of a return.
fuente
->to=>and capitaliselength.