Ein einfaches Beispiel: Nehmen Sie eine Liste positiver Ganzzahlen als Eingabe und geben Sie den Zahlenmodul ihres 1-basierten Index in der Liste aus.
Wenn die Eingangs ganze Zahlen sind , {a, b, c, d, e, f, g}
dann sollten die ausgegeben werden , {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
wenn %
der Modulo - Operator ist.
Testfälle:
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
Probieren Sie es online!
Zählt den Index manuell nach einem Tipp von mir .
quelle
Gelee , 2 Bytes
Probieren Sie es online!
Erläuterung:
Grundsätzlich moduliert der Code die ursprüngliche Liste durch die Liste der Indizes.
quelle
%J
in Jelly, ich frage mich, ob jemand mit dieser Antwort geantwortet hat?". Ich denke, jemand anderes hatte die gleiche Idee :-DR
2418 BytesAuswertungen zur Funktion:
Womit
seq_along()
ein Vektor mit der gleichen Länge wiex
ab 1 erstellt und dann%%
das Modulo genommen wird.Das Standardverhalten
seq
bei der Darstellung mit einem Vektor entsprichtseq(along.with = x)
der Ausgabe vonseq_along(x)
, ist jedoch 6 Byte kürzer.quelle
seq(x)
ist eine praktische Sache, die ich immer dabei habe1:length(x)
.R, 27 Bytes
5 Bytes gespart dank @Jarko
4 weitere dank @ Giuseppe gespeichert
2 weitere dank @Taylor Scott gespart
2 weitere dank @returnbull gespeichert
quelle
' '
(Leerzeichen) am Ende von nichtcat
; Das ist das Standardtrennzeichenx<-scan();cat(x%%1:length(x)," ")
- oh und einige Formatierungstipps reduzieren. 1) Sie benötigen nur 4 Leerzeichen links von Ihrem Code, damit er richtig eingerückt und markiert wird. 2) Sie können ein<!-- language-all: lang-r -->
Flag hinzufügen bevor Sie den Code , um es (obwohl dies ändert wenig in diesem Beispiel) 3) können Sie die brakets nicht 4) Ihre Sprache müssen hervorgehoben werden müssen , um Namen ach ja , und Sie brauchen keinen Kommentar, wenn Sie Änderungen an einem Post machen=
anstelle von<-
ein Byte speichern. (2) In der Spezifikation steht "Ausgabe" statt "Drucken", sodass Sie wahrscheinlich diecat()
5 Bytes einsparen können. (3)sum(1|x)
ist ein Byte kürzer alslength(x)
.APL (Dyalog) , 5 Bytes
Probieren Sie es online!
⍳
die Indizes∘
von≢
die Länge des Arguments|
dieser Modul⊢
das Argumentquelle
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
life←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
und GoL (in Version 16.0):K∊⍨⊢∘⊂⌺3 3
wobei K eine Konstante ist.Cubix , 19 Bytes
Probieren Sie es online!
Beobachten Sie es laufen
Eine ziemlich einfache Implementierung.
1
Drücken Sie 1 auf den Stapel, um den Index zu startenI!@
Hole die Ganzzahleingabe und halte an, wenn 0s%Ow
Tauschen Sie den Index aus, modifizieren Sie ihn, geben Sie das Ergebnis aus und wechseln Sie die Spur;)
Ergebnis entfernen und Index erhöhenSow
32 drücken, Leerzeichen ausgeben und Spur wechseln (von o nach unten)$O
Sprung die Ausgabew;w
ändere lange, entferne 32 aus dem Stapel und wechsle die Spur auf denI
Eingangquelle
05AB1E , 2 Bytes
Probieren Sie es online! oder Probieren Sie alle Tests aus
quelle
DgL%
nett.gL%
weil ich vergessen habeā
.ā
mich zukommen? Ich glaube, ich habe es nie benutzt, ist es nur so,for each
aber auf eine1 to n+1
Art und Weise, wie esvy<code>})
doch impliziert istvy<code>})
?gL
. TIOMathematica, 22 Bytes
Noch ein Mathematica-Ansatz.
quelle
MapIndexed@Mod
ist fast gut genug: '(Sternenklar ,
75-70BytesProbieren Sie es online!
Erläuterung
Dies ist eine Endlosschleife, die das Lesen von Zahlen von der Eingabe und das Erhöhen eines Zählers, der bei initialisiert wird, beibehält
1
. Für jedes Paar von Eingang und Zähler wird der Modul berechnet und ausgedruckt.Um die Schleife zu beenden, wenn die Eingabe erschöpft ist, wird der folgende Trick verwendet. Wenn keine Eingabe mehr verfügbar ist, erhalten Sie beim Versuch, eine weitere Zahl zu lesen, eine
0
. Daher teilen wir die gelesene Zahl durch sich selbst, und wenn dies0
der Fall ist, endet das Programm mit einem Fehler. Ansonsten verwerfen wir das Ergebnis und fahren fort.quelle
MATL ,
4, 3 BytesProbieren Sie es online!
Ein Byte gespart dank @LuisMendo!
quelle
Brachylog , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
Japt,
54 BytesVersuch es
Erläuterung
quelle
®%°T
(eigentlich könnten Sie es noch verwenden,Y
wenn Sie wollten)R, 22 Bytes
R führt vor dem Modul 1: Länge (x) aus.
quelle
sum(x|1)
!seq()
anstattseq_along()
dasselbe bewirkt. Das ist also wieder ein paar Bytes kürzer.Python 2 , 42 Bytes
Probieren Sie es online!
quelle
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
Probieren Sie es online!
Auch:
flip(zipWith mod)[1..]
.quelle
Mathematica, 21 Bytes
Probieren Sie es online!
oder 20 Bytes (von Martin)
quelle
Tr[1^#]
fürLength@#
.#
In Ihrer ersten Antwort fehlt ein als vorletztes Zeichen.Excel VBA,
5946 BytesGolf gespielt
Anonyme VBE-Direktfensterfunktion, die eine durch Leerzeichen (
) begrenzte Array-Zeichenfolge als Eingabe aus dem Bereich verwendet
[A1]
und den Zahlenmodul ihres 1-basierten Index in der Startliste an das VBE- Direktfenster ausgibtInput-Output:
Alt
Sub
RoutineversionSubroutine, die Eingaben als übergebene Arrays und Ausgaben in das VBE-Direktfenster übernimmt.
Eingabe / Ausgabe:
Ungolfed
Input-Output:
quelle
CJam , 9 Bytes
Anonymer Block, der ein Array auf dem Stapel erwartet und durch das Ausgabearray ersetzt.
Probieren Sie es online!
Erläuterung
quelle
J 9 Bytes
1 ... n | ursprüngliche Liste
|
ist modquelle
JavaScript (ES6), 22 Byte
quelle
AWK, 13
Probieren Sie es online aus .
quelle
tcl, 35
Demo
quelle
GNU APL 1.2, 9 Bytes
APL arbeitet von rechts nach links, daher die Klammern.
R←⎕
Weist dem Vektor Benutzereingaben zuR
.⍴R
gibt die Länge des Vektors an;⍳⍴R
gibt einen Vektor mit allen Zahlen von 1 bis zu dieser Länge (also die Indizes).|
ist der Mod Operator (a|b
ergibtb%a
). APL arbeitet mit Arrays, sodass der Code-Snippet einen Vektor enthält, der jedes Element aus der Benutzereingabe mod seinem Index enthält.quelle
Pari / GP , 22 Bytes
Probieren Sie es online!
quelle
Pyth, 5
Online-Test .
quelle
Oktave , 19 Bytes
Probieren Sie es online!
Eine anonyme Funktion, die n als Eingabe verwendet und einen elementweisen Modul mit der Liste 1, 2, 3 ausführt .
quelle
Braingolf , 18 Bytes
Probieren Sie es online!
Erläuterung
quelle
Java 8 / C #, 39 Bytes
Probieren Sie es hier aus.
Funktioniert auch in C # durch Ersetzen
->
mit=>
undlength
mitLength
:Probieren Sie es hier aus.
Erläuterung:
Ändert das Input-Array, daher kein Return.
quelle
->
to=>
and capitaliselength
.