Um exemplo simples: pegue uma lista de números inteiros positivos como entrada e faça a saída dos números no módulo com base em 1 na lista.
Se os números inteiros de entrada estiverem {a, b, c, d, e, f, g}
, a saída deve estar {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
onde %
está o operador do módulo.
Casos de teste:
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
Experimente online!
Conta o índice manualmente, de acordo com uma dica minha .
fonte
Geléia , 2 bytes
Experimente online!
Explicação:
Basicamente, o código modula a lista original pela lista de índices.
fonte
%J
em Jelly, gostaria de saber se alguém respondeu com essa resposta?". Eu acho que alguém teve a mesma idéia:R,
24bytes de 18Avalia para a função:
Que é usado
seq_along()
para criar um vetor do mesmo comprimento quex
, iniciando em 1, e depois%%
pegar o módulo.O comportamento padrão de
seq
quando apresentado com um vetorseq(along.with = x)
é a mesma saída queseq_along(x)
, mas 6 bytes mais curto.fonte
seq(x)
é algo útil de se ter por perto, já que estou sempre usando1:length(x)
.R, 27 bytes
economizou 5 bytes graças a @Jarko
salvou mais 4 graças a @ Giuseppe
salvou mais 2 graças a @Taylor Scott
Guardado 2 mais graças a @returnbull
fonte
' '
(espaço) no final decat
; esse é o separador padrãox<-scan();cat(x%%1:length(x)," ")
- oh, e algumas dicas de formatação, 1) você só precisa de 4 espaços à esquerda do seu código para que ele seja recuado e marcado 2) você pode adicionar um<!-- language-all: lang-r -->
sinalizador antes que seu código seja destacado (embora isso mude pouco neste exemplo) 3) você não precisa dos colchetes em torno do nome do seu idioma 4) ah e não precisa fazer um comentário ao editar uma postagem=
vez de<-
para salvar um byte. (2) A especificação diz "output" em vez de "print", então você provavelmente pode soltar ocat()
, economizando 5 bytes. (3)sum(1|x)
é um byte menor quelength(x)
.APL (Dyalog) , 5 bytes
Experimente online!
⍳
os índices∘
do≢
o comprimento do argumento|
esse módulo⊢
o argumentofonte
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
oulife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
e GoL (na versão 16.0):K∊⍨⊢∘⊂⌺3 3
onde K é uma constante.Cubix , 19 bytes
Experimente online!
Assista
Uma implementação bastante direta.
1
pressione 1 na pilha para iniciar o índiceI!@
obter a entrada inteira e parar se 0s%Ow
Troque o índice, modifique o resultado e altere a faixa;)
remover índice de resultado e incrementoSow
pressione 32, espaço de saída e mude de faixa (descendo de o)$O
pular a saídaw;w
troque a faixa, remova 32 da pilha e troque a faixa naI
entradafonte
05AB1E , 2 bytes
Experimente online! ou Experimente todos os testes
fonte
DgL%
legal.gL%
porque esqueciā
.ā
para mim? Eu acredito que eu nunca usei, é apenas como,for each
mas de uma1 to n+1
maneira como,vy<code>})
mas implícitavy<code>})
?gL
. TIOMathematica, 22 bytes
Mais uma abordagem do Mathematica.
fonte
MapIndexed@Mod
é quase bom o suficiente: '(Estrelado ,
7570 bytesExperimente online!
Explicação
Este é um loop infinito que mantém a leitura dos números da entrada e aumenta um contador inicializado em
1
. Para cada par de entrada e contador, o módulo é calculado e impresso.Para finalizar o loop quando a entrada estiver esgotada, o seguinte truque é usado. Quando não há mais entrada disponível, tentar ler mais um número fornece a
0
. Assim, dividimos o número de leitura por si só e, se for,0
o programa termina com um erro. Caso contrário, descartamos o resultado e continuamos.fonte
MATL ,
4, 3 bytesExperimente online!
Um byte salvo graças ao @LuisMendo!
fonte
Braquilog , 9 bytes
Experimente online!
Explicação
fonte
Japonês,
54 bytesTente
Explicação
fonte
®%°T
(na verdade, você ainda pode usarY
se você queria)R, 22 bytes
R executa 1: comprimento (x) antes de executar o módulo.
fonte
sum(x|1)
!seq()
vez deseq_along()
faz a mesma coisa. Então isso é alguns bytes mais curtos novamente.Python 2 , 42 bytes
Experimente online!
fonte
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
Experimente online!
Também:
flip(zipWith mod)[1..]
.fonte
Mathematica, 21 bytes
Experimente online!
ou 20 bytes (por Martin)
fonte
Tr[1^#]
paraLength@#
.#
como o segundo último caractere em sua primeira resposta.Excel VBA,
5946 bytesGolfe
VBE anônimo Função imediata da janela que pega uma
string de matriz delimitada por espaço ( ) como entrada do intervalo
[A1]
e gera o módulo de números em seu índice baseado em 1 na lista inicial para a janela imediata do VBEEntrada / Saída:
Sub
Versão antiga de rotinaSub-rotina que recebe a entrada como uma matriz passada e sai para a janela imediata do VBE.
Entrada / Saída:
Ungolfed
Entrada / Saída:
fonte
CJam , 9 bytes
Bloco anônimo que espera uma matriz na pilha e a substitui pela matriz de saída.
Experimente online!
Explicação
fonte
J, 9 bytes
1 ... n | lista original
|
é modfonte
JavaScript (ES6), 22 bytes
fonte
AWK, 13
Experimente online .
fonte
tcl, 35
demonstração
fonte
GNU APL 1.2, 9 bytes
O APL opera da direita para a esquerda, daí os parênteses.
R←⎕
atribui entrada do usuário ao vetorR
.⍴R
fornece o comprimento do vetor;⍳⍴R
fornece um vetor com todos os números de 1 a esse comprimento (portanto, os índices).|
é o operador mod (a|b
yieldsb%a
). O APL opera em matrizes; portanto, o trecho de código de um vetor contendo cada elemento da entrada do usuário modifica seu índice.fonte
Pari / GP , 22 bytes
Experimente online!
fonte
Pitão, 5
Teste online .
fonte
Oitava , 19 bytes
Experimente online!
Uma função anônima que recebe n como entrada e executa o módulo em elementos com a lista 1, 2, 3 .
fonte
Braingolf , 18 bytes
Experimente online!
Explicação
fonte
Java 8 / C #, 39 bytes
Experimente aqui.
Também funciona em C # substituindo
->
por=>
elength
porLength
:Experimente aqui.
Explicação:
Modifica a matriz de entrada, daí a falta de retorno.
fonte
->
para=>
e capitalizarlength
.