Hari ini ketika bermain dengan anak-anak saya, saya memperhatikan bahwa mainan yang tampaknya sederhana di taman menyembunyikan tantangan.
Roda memiliki segitiga yang mengarah ke angka, tetapi juga memiliki tiga lingkaran yang mengarah ke angka setiap 90 derajat dari yang pertama. Begitu:
Tantangan (sangat sederhana)
Diberikan bilangan bulat antara 1 dan 12 (yang ditunjukkan oleh segitiga) dalam bentuk apa pun yang dapat diterima, menghasilkan juga dalam bentuk apa pun yang dapat diterima dan memesan tiga angka yang ditunjukkan oleh lingkaran (yang setiap 90 derajat).
Uji kasus
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
Ini adalah kode-golf , jadi semoga kode terpendek untuk setiap bahasa menang!
0 -> 4, 7, 10
,?Jawaban:
Python 3 , 33 byte
Cobalah online!
Python 2 , 35 byte
Cobalah online!
sumber
Jelly , 8 byte
Tautan monadik yang mengambil nomor dan mengembalikan daftar nomor.
Cobalah online! atau lihat semua kasing .
Bagaimana?
sumber
12Rṙm-3Ḋ
(output dalam urutan terbalik)Python 2 , 35 byte
Cobalah online!
sumber
MATL , 9 byte
Cobalah online!
Penjelasan
Pertimbangkan input
4
sebagai exmaple.sumber
R ,
2928 byteTerima kasih kepada @Giuseppe karena menghemat satu byte!
Cobalah online!
sumber
APL + MENANG, 13 byte
Penjelasan:
sumber
C (gcc) , 48 byte
Cobalah online!
sumber
JavaScript (ES6), 29 byte
Mirip dengan jawaban xnor .
Demo
Tampilkan cuplikan kode
sumber
n=>[3,6,9].map(v=>(v+n)%12)
kemudian menyadari bahwa ia mengembalikan 0, bukan 12 ...n=>[3,6,9].map(v=>(v+n)%12||12)
(tapi itu 31 byte).Oktaf , 25 byte
Cobalah online!
Fungsi anonim yang cukup sederhana.
Kami pertama kali membuat array
[1:12 1:12]
- jadi dua salinan dari set angka lengkap. Kemudian kita indeks untuk memilih nilaix+3, x+6, x+9
, di manax
input angka.Oktaf adalah 1-diindeks, jadi kita cukup memilih elemen array berdasarkan input (meskipun jujur 0-diindeks akan menggunakan jumlah byte yang sama di sini)
Ini tampaknya menggunakan metode yang unik untuk jawaban lain karena dengan memiliki dua salinan array, kita tidak harus membungkus indeks menggunakan modulo.
sumber
mod
dan tidak bisa membuatnya lebih pendek. Sudah selesai dilakukan dengan baik! Jangan ragu untuk memposting sebagai jawaban.Befunge-93,
201918 bytesCobalah online!
Penjelasan
Ini bergantung pada perilaku khusus untuk penerjemah referensi: pada akhir file,
&
operator mengembalikan nilai terakhir yang dibaca. Itu sebabnya kita dapat dengan aman membaca kembali jam dari stdin pada setiap iterasi dari loop.sumber
&
melakukan itu&
juga dapat digunakan sebagai jenis penghasil angka acak satu kali . Itu kurang dapat diandalkan, karena tergantung pada kompiler yang digunakan untuk membangunnya. Saat ini sedang bekerja pada TIO, tetapi ada saat ketika Dennis berubah ke versi gcc yang berbeda dan kami kehilangan fungsi itu untuk sementara waktu.APL (Dyalog) , 12 byte
Cobalah online!
sumber
Japt, 11 byte
Cobalah
Penjelasan
Input bilangan bulat implisit
U
. Hasilkan 3 elemen array (3Æ
) dan, untuk setiap elemen, bertambahU
3 (U±3
), modulo oleh 12 (uC
) dan, karena12%12=0
, kembalikan hasilnya ATAU 12 (ªC
).sumber
Brain-Flak , 84 byte
Cobalah online!
Setidaknya saya mengalahkan solusi wajah Doorknob ...
Penjelasan:
sumber
Pyth , 12 byte
Cobalah online!
sumber
SOGL V0.12 , 9 byte
Coba Di Sini!
sumber
Bersih , 44 byte
Cobalah online!
sumber
Pushy , 12 byte
Cobalah online!
12 byte
Alternatif untuk jumlah byte yang sama:
Cobalah online!
sumber
C # (.NET Core) , 42 byte
Cobalah online!
Pada dasarnya hanya sebagian dari banyak jawaban lain untuk C #.
sumber
K (oK) , 11 byte
Larutan:
Cobalah online!
Contoh:
Penjelasan:
Ini adalah solusi pertama yang muncul di benak saya. Mungkin bukan yang terbaik atau terpendek.
sumber
GolfScript, 46 byte
Ini adalah pertama kalinya saya melakukan golf kode, jadi dengan kurangnya pengalaman saya, saya mungkin tidak menemukan solusi terbaik, tetapi saya harus memulai suatu tempat, kan?
Cobalah online atau coba semua kasing
sumber
Perl 6 , 23 byte
Cobalah online!
sumber
PHP, 37 +1 byte
Jalankan sebagai pipa dengan
-nR
atau coba online .sumber
wajah ,
9694 byteIni hanya menambah dua, mod dengan 12, menambahkan satu lagi, dan mencetak. Kemudian ia melakukannya dua kali lagi.
Versi yang dikomentari:
Cobalah online! (Baris baru tambahan diperlukan di TIO karena bug yang telah diperbaiki di versi wajah yang lebih baru.)
sumber
m3*33
memungkinkan Anda untuk mengganti tiga+nn1
dengan satu+nn3
tio.run/...Keempat (gforth) , 39 byte
Input diambil dari stack dan output ditempatkan di stack
Cobalah online!
Penjelasan
sumber
Haskell , 29 byte
-2 byte terima kasih kepada Laikoni.
Cobalah online!
Tidak terlalu asli, tidak ...
sumber
Cepat , 30 byte
Cobalah online!
Port banyak jawaban lain untuk Swift
sumber
Bahasa Wolfram (Mathematica) 35 byte
Di atas menegaskan, dalam notasi infiks, apa yang dapat dinyatakan lebih jelas sebagai
RotateLeft
berputarRange[12]
, urutan 1,2, ... 12, ke kiri dengan nomor input.Slot[1]
atau#
memegang nomor input, n.Misalnya, dengan n = 4,
mengembalikan daftar
Take...{3,9,3}
mengembalikan setiap elemen ketiga dalam daftar itu dari posisi 3 hingga posisi 9, yaitusumber
Windows Batch,
137 125 11168 bytePelabuhan
add value to input and mod 12 + 1
sumber
Perl 5 , 30 byte
Cobalah online!
sumber
PowerShell , 30 byte
Cobalah online!
Port jawaban lain (mis., Jawaban Python xnor 2). Ho-hum.
sumber