Prosty: weź listę liczb całkowitych dodatnich jako dane wejściowe i wyślij moduł liczbowy ich indeks oparty na 1 na liście.
Jeśli wejściowymi liczbami całkowitymi są, {a, b, c, d, e, f, g}
to wyjście powinno być {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
tam, gdzie %
jest operator modułu.
Przypadki testowe:
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 bajtów
Wypróbuj online!
Zlicza indeks ręcznie, jak na mój tip .
źródło
Galaretka , 2 bajty
Wypróbuj online!
Wyjaśnienie:
Zasadniczo, kod modulos oryginalną listę według listy indeksów.
źródło
%J
w Galaretce, zastanawiam się, czy ktoś odpowiedział na tę odpowiedź?”. Chyba ktoś inny miał ten sam pomysł :-DR
24 24bajtówOcenia funkcję:
Który wykorzystuje,
seq_along()
aby utworzyć wektor o tej samej długości cox
, zaczynając od 1, a następnie%%
wziąć moduł.Domyślne zachowanie
seq
po przedstawieniu z wektoremseq(along.with = x)
to takie samo wyjścieseq_along(x)
, ale o 6 bajtów krótsze.źródło
seq(x)
to przydatna rzecz dookoła, ponieważ zawsze używam1:length(x)
.R, 27 bajtów
zapisano 5 bajtów dzięki @Jarko
zaoszczędzono jeszcze 4 dzięki @Giuseppe
zaoszczędzono jeszcze 2 dzięki @Taylor Scott
Zaoszczędzono jeszcze 2 dzięki @returnbull
źródło
' '
(spacji) na końcucat
; to domyślny separatorx<-scan();cat(x%%1:length(x)," ")
- oh i kilka wskazówek dotyczących formatowania, 1) potrzebujesz tylko 4 spacji po lewej stronie kodu, aby było poprawnie wcięte i oznaczone 2) możesz dodać<!-- language-all: lang-r -->
flagę zanim Twój kod zostanie podświetlony (choć w tym przykładzie niewiele się to zmienia) 3) nie potrzebujesz hamulców wokół nazwy twojego języka 4) och i nie musisz komentować, kiedy edytujesz wpis=
zamiast<-
zapisać bajt. (2) Specyfikacja mówi „wyjście” zamiast „wydrukuj”, więc prawdopodobnie możesz upuścićcat()
, oszczędzając 5 bajtów. (3)sum(1|x)
jest o jeden bajt krótszy niżlength(x)
.APL (Dyalog) , 5 bajtów
Wypróbuj online!
⍳
wskaźniki∘
z≢
długość argumentu|
ten moduł⊢
argumentźródło
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
Lublife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
i GoL (w wersji 16.0):K∊⍨⊢∘⊂⌺3 3
gdzie K jest stałą.Cubix , 19 bajtów
Wypróbuj online!
Watch It Run
Dość prosta implementacja.
1
naciśnij 1 na stos, aby rozpocząć indeksI!@
uzyskaj liczbę całkowitą i zatrzymaj, jeśli 0s%Ow
zamień indeks, mod, wynik wyjściowy i zmień linię;)
usuń wynik i wskaźnik przyrostuSow
pchnij 32, wyjdź spacją i zmień pas (kierunek od o)$O
przeskoczyć wyjściew;w
zmień pasmo, usuń 32 ze stosu i zmień pas naI
wejścieźródło
05AB1E , 2 bajty
Wypróbuj online! lub Wypróbuj wszystkie testy
źródło
DgL%
miłe.gL%
ponieważ zapomniałem oā
.ā
dla mnie? Wydaje mi się, że nigdy go nie użyłem, czy to jest po prostu,for each
ale w1 to n+1
sposób podobny,vy<code>})
ale dorozumianyvy<code>})
?gL
. TIOMathematica, 22 bajty
Jeszcze jedno podejście Mathematica.
źródło
MapIndexed@Mod
jest prawie wystarczająco dobry: '(Gwiaździsta ,
7570 bajtówWypróbuj online!
Wyjaśnienie
Jest to nieskończona pętla, która odczytuje liczby z wejścia i zwiększa licznik zainicjowany na
1
. Dla każdej pary danych wejściowych i licznika moduł jest obliczany i drukowany.Aby zakończyć pętlę po wyczerpaniu danych wejściowych, stosuje się następującą sztuczkę. Gdy nie ma już więcej danych wejściowych, próba odczytania jeszcze jednej liczby daje znak
0
. Tak więc dzielimy odczytany numer sam, a jeśli tak,0
program kończy się błędem. W przeciwnym razie odrzucamy wynik i kontynuujemy.źródło
MATL ,
4, 3 bajtyWypróbuj online!
Jeden bajt zapisany dzięki @LuisMendo!
źródło
Brachylog , 9 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Japt,
54 bajtówSpróbuj
Wyjaśnienie
źródło
®%°T
(właściwie, nadal możesz go użyćY
, jeśli chcesz)R, 22 bajty
R wykonuje 1: długość (x) przed wykonaniem modułu.
źródło
sum(x|1)
!seq()
zamiastseq_along()
robi to samo. To znowu kilka bajtów krótszych.Python 2 , 42 bajty
Wypróbuj online!
źródło
for
lambda l:[v%-~i for i,v in enumerate(l)]
lambda l:[v%i for i,v in enumerate(l,1)]
.Haskell, 22 bajty
Wypróbuj online!
Również:
flip(zipWith mod)[1..]
.źródło
Mathematica, 21 bajtów
Wypróbuj online!
lub 20 bajtów (autor Martin)
źródło
Tr[1^#]
dlaLength@#
.#
pierwszej odpowiedzi brakuje a jako ostatniego znaku.Excel VBA,
5946 bajtówGrał w golfa
Anonimowa funkcja VBE Natychmiastowa funkcja okna, która pobiera
ciąg tablicy rozdzielany spacją jako dane wejściowe z zakresu
[A1]
i wypisuje moduł liczb ich indeks 1 na liście początkowej do bezpośredniego okna VBEWejście wyjście:
Stara
Sub
rutynowa wersjaPodprogram, który pobiera dane wejściowe jako przekazaną tablicę i wychodzi do bezpośredniego okna VBE.
Wejście / Ouput:
Nie golfił
Wejście wyjście:
źródło
CJam , 9 bajtów
Anonimowy blok, który oczekuje tablicy na stosie i zastępuje ją tablicą wyjściową.
Wypróbuj online!
Wyjaśnienie
źródło
J, 9 bajtów
1 ... n | oryginalna lista
|
jest modźródło
JavaScript (ES6), 22 bajty
źródło
AWK, 13
Wypróbuj online .
źródło
tcl, 35
demo
źródło
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.źródło
Pari/GP, 22 bytes
Try it online!
źródło
Pyth, 5
Online test.
źródło
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.
źródło
Braingolf, 18 bytes
Try it online!
Explanation
źródło
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.
źródło
->
to=>
and capitaliselength
.