Un simple: prenez une liste d'entiers positifs en entrée et sortez les nombres module leur index basé sur 1 dans la liste.
Si les entiers d'entrée sont {a, b, c, d, e, f, g}
alors la sortie doit être {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
où %
est l'opérateur de module.
Cas de test:
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 octets
Essayez-le en ligne!
Compte l'index manuellement, selon un de mes conseils .
la source
Gelée , 2 octets
Essayez-le en ligne!
Explication:
Fondamentalement, le code module la liste d'origine par la liste des index.
la source
%J
dans Jelly, je me demande si quelqu'un a répondu avec cette réponse?". Je suppose que quelqu'un d'autre a eu la même idée :-DR,
2418 octetsÉvalue la fonction:
Ce qui permet
seq_along()
de créer un vecteur de la même longueur quex
, à partir de 1, puis%%
de prendre le modulo.Le comportement par défaut
seq
lorsqu'il est présenté avec un vecteur est celuiseq(along.with = x)
qui est la même sortie queseq_along(x)
, mais 6 octets plus court.la source
seq(x)
est une chose pratique à avoir, car j'utilise toujours1:length(x)
.R, 27 octets
économisé 5 octets grâce à @Jarko
économisé 4 de plus grâce à @Giuseppe
enregistré 2 de plus grâce à @Taylor Scott
Enregistré 2 de plus grâce à @returnbull
la source
' '
(l'espace) à la fin decat
; c'est le séparateur par défautx<-scan();cat(x%%1:length(x)," ")
- oh et quelques conseils de mise en forme, 1) vous n'avez besoin que de 4 espaces à gauche de votre code pour qu'il soit correctement mis en retrait et marqué 2) vous pouvez ajouter un<!-- language-all: lang-r -->
indicateur avant votre code pour le mettre en surbrillance (bien que cela change peu dans cet exemple) 3) vous n'avez pas besoin des crochets autour du nom de votre langue 4) oh et vous n'avez pas besoin de faire de commentaire lorsque vous apportez des modifications à un message=
au lieu de<-
pour enregistrer un octet. (2) La spécification dit "sortie" plutôt que "impression", vous pouvez donc probablement supprimer lecat()
, économisant 5 octets. (3)sum(1|x)
est un octet plus court quelength(x)
.APL (Dyalog) , 5 octets
Essayez-le en ligne!
⍳
les indices∘
de≢
la longueur de l'argument|
ce module⊢
l'argumentla source
(~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
and GoL (dans la version 16.0):K∊⍨⊢∘⊂⌺3 3
où K est une constante.Cubix , 19 octets
Essayez-le en ligne!
Regardez-le courir
Une implémentation assez simple.
1
poussez 1 vers la pile pour démarrer l'indexI!@
obtenir l'entrée entière et arrêter si 0s%Ow
échanger l'index vers le haut, le mod, le résultat de sortie et changer de voie;)
supprimer le résultat et incrémenter l'indexSow
pousser 32, sortir l'espace et changer de voie (en descendant de o)$O
sauter la sortiew;w
changer de lange, retirer 32 de la pile et changer de voie sur l'I
entréela source
05AB1E , 2 octets
Essayez-le en ligne! ou essayez tous les tests
la source
DgL%
, sympa.gL%
parce que j'avais oubliéā
.ā
pour moi? Je crois que je ne l'ai jamais utilisé est-ce justefor each
mais d'une1 to n+1
manière similairevy<code>})
mais implicitevy<code>})
?gL
. TIOMathematica, 22 octets
Encore une approche Mathematica.
la source
MapIndexed@Mod
est presque assez bon: '(Étoilé ,
7570 octetsEssayez-le en ligne!
Explication
Il s'agit d'une boucle infinie qui continue à lire les nombres de l'entrée et à augmenter un compteur initialisé à
1
. Pour chaque paire d'entrée et de compteur, le module est calculé et imprimé.Pour terminer la boucle lorsque l'entrée a été épuisée, l'astuce suivante est utilisée. Lorsqu'aucune entrée n'est disponible, essayer de lire un autre chiffre donne a
0
. Ainsi, nous divisons le nombre lu par lui-même, et s'il l'est,0
le programme se termine par une erreur. Sinon, nous rejetons le résultat et continuons.la source
MATL ,
4, 3 octetsEssayez-le en ligne!
Un octet enregistré grâce à @LuisMendo!
la source
Brachylog , 9 octets
Essayez-le en ligne!
Explication
la source
Japt,
54 octetsEssayez-le
Explication
la source
®%°T
(en fait, vous pouvez toujours l'utiliserY
si vous le souhaitez)R, 22 octets
R effectue 1: longueur (x) avant de faire le module.
la source
sum(x|1)
!seq()
au lieu deseq_along()
fait la même chose. C'est donc encore quelques octets plus court.Python 2 , 42 octets
Essayez-le en ligne!
la source
for
lambda l:[v%-~i for i,v in enumerate(l)]
lambda l:[v%i for i,v in enumerate(l,1)]
.Haskell, 22 octets
Essayez-le en ligne!
En outre:
flip(zipWith mod)[1..]
.la source
Mathematica, 21 octets
Essayez-le en ligne!
ou 20 octets (par Martin)
la source
Tr[1^#]
pourLength@#
.#
avant-dernier caractère dans votre première réponse.Excel VBA,
5946 octetsGolfé
Fonction de fenêtre immédiate VBE anonyme qui prend une
chaîne de tableau délimitée par un espace ( ) comme entrée de la plage
[A1]
et affiche le module de nombres de leur index basé sur 1 dans la liste de départ vers la fenêtre immédiate VBEEntrée sortie:
Vieux
Sub
version de routineSous-programme qui prend les entrées en tant que tableau transmis et les sorties dans la fenêtre immédiate VBE.
Entrée / sortie:
Non golfé
Entrée sortie:
la source
CJam , 9 octets
Bloc anonyme qui attend un tableau sur la pile et le remplace par le tableau de sortie.
Essayez-le en ligne!
Explication
la source
J, 9 octets
1 ... n | liste originale
|
est modla source
JavaScript (ES6), 22 octets
la source
AWK, 13
Essayez-le en ligne .
la source
tcl, 35
démo
la source
GNU APL 1.2, 9 octets
APL fonctionne de droite à gauche, d'où les parenthèses.
R←⎕
affecte l'entrée utilisateur au vecteurR
.⍴R
donne la longueur du vecteur;⍳⍴R
donne un vecteur avec tous les nombres de 1 à cette longueur (donc les indices).|
est l'opérateur de mod (a|b
rendementsb%a
). APL fonctionne sur des tableaux, de sorte que le code extrait un vecteur contenant chaque élément de l'entrée de l'utilisateur modifie son index.la source
Pari / GP , 22 octets
Essayez-le en ligne!
la source
Pyth, 5
Test en ligne .
la source
Octave , 19 octets
Essayez-le en ligne!
Une fonction anonyme qui prend n en entrée et effectue un module par élément avec la liste 1, 2, 3 .
la source
Braingolf , 18 octets
Essayez-le en ligne!
Explication
la source
Java 8 / C #, 39 octets
Essayez-le ici.
Fonctionne également en C # en remplaçant
->
par=>
etlength
parLength
:Essayez-le ici.
Explication:
Modifie le tableau d'entrée, d'où l'absence de retour.
la source
->
de=>
et capitalisezlength
.