Dzisiaj podczas zabawy z moimi dziećmi zauważyłem, że pozornie prosta zabawka w parku kryje wyzwanie.
Koło ma trójkąt, który wskazuje na liczbę, ale ma również trzy koła, które wskazują na liczby co 90 stopni od pierwszego. Więc:
Wyzwanie (bardzo proste)
Biorąc pod uwagę liczbę całkowitą od 1 do 12 (wskazaną przez trójkąt) w dowolnej akceptowalnej formie, wyprowadzaj również w dowolnej akceptowalnej formie i uporządkuj trzy liczby wskazane przez koła (te co 90 stopni).
Przypadki testowe
In Out
1 4, 7, 10
2 5, 8, 11
3 6, 9, 12
4 7, 10, 1
5 8, 11, 2
6 9, 12, 3
7 10, 1, 4
8 11, 2, 5
9 12, 3, 6
10 1, 4, 7
11 2, 5, 8
12 3, 6, 9
To jest golf golfowy , więc może wygrać najkrótszy kod dla każdego języka!
0 -> 4, 7, 10
?Odpowiedzi:
Python 3 , 33 bajty
Wypróbuj online!
Python 2 , 35 bajtów
Wypróbuj online!
źródło
Galaretka , 8 bajtów
Monadyczny link pobierający liczbę i zwracający listę liczb.
Wypróbuj online! lub zobacz wszystkie przypadki .
W jaki sposób?
źródło
12Rṙm-3Ḋ
(wyjście w odwrotnej kolejności)Python 2 , 35 bajtów
Wypróbuj online!
źródło
MATL , 9 bajtów
Wypróbuj online!
Wyjaśnienie
Rozważ wejście
4
jako przykład.źródło
R ,
2928 bajtówDzięki @Giuseppe za uratowanie bajtu!
Wypróbuj online!
źródło
APL + WIN, 13 bajtów
Wyjaśnienie:
źródło
C (gcc) , 48 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 29 bajtów
Podobne do odpowiedzi Xnora .
Próbny
Pokaż fragment kodu
źródło
n=>[3,6,9].map(v=>(v+n)%12)
wtedy zrozumiał, że zwraca 0, a nie 12 ...n=>[3,6,9].map(v=>(v+n)%12||12)
(ale to 31 bajtów).Oktawa , 25 bajtów
Wypróbuj online!
Dość prosta anonimowa funkcja.
Najpierw tworzymy tablicę
[1:12 1:12]
- czyli dwóch kopii pełnego zestawu liczb. Następnie indeksujemy, aby wybrać wartościx+3, x+6, x+9
, gdziex
jest wprowadzoną liczbą.Oktawa ma indeks 1, więc możemy po prostu wybrać elementy tablicy na podstawie danych wejściowych (chociaż szczerze mówiąc indeks 0 użyłby tutaj tej samej liczby bajtów).
Wydaje się, że używa to metody unikalnej dla innych odpowiedzi, ponieważ mając dwie kopie tablicy, nie musimy zawijać indeksów przy użyciu modulo.
źródło
mod
i nie mogłem go skrócić. Dobra robota! Możesz pisać jako odpowiedź.Befunge-93,
201918 bajtówWypróbuj online!
Wyjaśnienie
Zależy to od zachowania specyficznego dla interpretera referencyjnego: na końcu pliku
&
operator zwraca ostatnią odczytaną wartość. Właśnie dlatego możemy bezpiecznie ponownie odczytać godzinę ze standardowego wejścia na każdej iteracji pętli.źródło
&
że to zrobiłem&
można również wykorzystać jako rodzaj jednorazowego generatora liczb losowych . Jest to jednak mniej niezawodne, ponieważ zależy od kompilatora, którego użyto do jego zbudowania. W tej chwili działa na TIO, ale był czas, gdy Dennis zmienił się na inną wersję gcc i na chwilę straciliśmy tę funkcjonalność.APL (Dyalog) , 12 bajtów
Wypróbuj online!
źródło
Japt, 11 bajtów
Spróbuj
Wyjaśnienie
Domniemane wprowadzenie liczby całkowitej
U
. Wygeneruj tablicę 3-elementową (3Æ
) i, dla każdego elementu, zwiększajU
o 3 (U±3
), modulo o 12 (uC
) i, ponieważ12%12=0
, zwróć wynik LUB 12 (ªC
).źródło
Brain-Flak , 84 bajtów
Wypróbuj online!
Przynajmniej pokonałem rozwiązanie twarzy Doorknob ...
Wyjaśnienie:
źródło
Pyth , 12 bajtów
Wypróbuj online!
źródło
SOGL V0.12 , 9 bajtów
Wypróbuj tutaj!
źródło
Czysty , 44 bajty
Wypróbuj online!
źródło
Pushy , 12 bajtów
Wypróbuj online!
12 bajtów
Alternatywa dla tej samej liczby bajtów:
Wypróbuj online!
źródło
C # (.NET Core) , 42 bajty
Wypróbuj online!
Zasadniczo tylko port wielu innych odpowiedzi na C #.
źródło
K (oK) , 11 bajtów
Rozwiązanie:
Wypróbuj online!
Przykłady:
Wyjaśnienie:
To było pierwsze rozwiązanie, jakie przyszło mi do głowy. Może nie być najlepszy ani najkrótszy.
źródło
GolfScript, 46 bajtów
Po raz pierwszy uprawiam golfa kodowego, więc z powodu braku doświadczenia prawdopodobnie nie znalazłem najlepszego rozwiązania, ale muszę gdzieś zacząć, prawda?
Wypróbuj online lub wypróbuj wszystkie przypadki
źródło
Perl 6 , 23 bajtów
Wypróbuj online!
źródło
PHP, 37 + 1 bajtów
Uruchom jako potok z
-nR
lub spróbuj online .źródło
twarz ,
9694 bajtówTo po prostu dodaje dwa, mody przez 12, dodaje jeden i drukuje. Potem robi to jeszcze dwa razy.
Skomentowana wersja:
Wypróbuj online! (Końcowy znak nowej linii jest wymagany w TIO z powodu błędu, który został naprawiony w nowszej wersji twarzy.)
źródło
m3*33
pozwala zastąpić trzy+nn1
s jednym+nn3
tio.run/…Dalej (gforth) , 39 bajtów
Dane wejściowe są pobierane ze stosu, a dane wyjściowe są umieszczane na stosie
Wypróbuj online!
Wyjaśnienie
źródło
Haskell , 29 bajtów
-2 bajty dzięki Laikoni.
Wypróbuj online!
Niezbyt oryginalny, nie ...
źródło
Szybki , 30 bajtów
Wypróbuj online!
Port wielu innych odpowiedzi na Swift
źródło
Wolfram Language (Mathematica) 35 bajtów
Powyższe stwierdza, w zapisie infiksowym, co można wyrazić jaśniej jako
RotateLeft
obraca sięRange[12]
, sekwencja 1,2, ... 12, w lewo o numer wejściowy.Slot[1]
lub#
przechowuje numer wejściowy, n.Na przykład n = 4
zwraca listę
Take...{3,9,3}
zwraca co trzeci element na tej liście od pozycji 3 do pozycji 9, a mianowicieźródło
Pakiet Windows,
137 125 11168 bajtówPort of
add value to input and mod 12 + 1
źródło
Perl 5 , 30 bajtów
Wypróbuj online!
źródło
PowerShell , 30 bajtów
Wypróbuj online!
Port innych odpowiedzi (np. Xnor's Python 2). Ho-hum.
źródło