Ini masalah umum untuk bernavigasi dalam matriks 2D. Kami telah melihatnya berkali-kali dan akan melihatnya lagi. Jadi mari kita bantu masa depan kita dan kembangkan solusi terpendek untuk menghasilkan semua delapan langkah yang mungkin dalam matriks 2D.
Tantangan
Kode Anda harus menampilkan 8 pasang -1,0,1 berikut dalam urutan apa pun:
(0,1)
(0,-1)
(1,0)
(-1,0)
(1,1)
(1,-1)
(-1,1)
(-1,-1)
Aturan
- Tidak ada input.
- Urutan output tidak relevan
- Keluaran fleksibel. Pasangan angka hanya perlu dibedakan
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang
code-golf
kolmogorov-complexity
matrix
Possum Mati
sumber
sumber
(1 + 0i)
?Jawaban:
Oktaf , 24 byte
Cobalah online!
Saya belum melihat pendekatan ini.
Membuat daftar bilangan bulat
[0, 1, 2, 3, 5, 6, 7, 8]
, dan mengubahnya menjadi ternary, mengembalikan array karakter:Mengurangkan
49
(nilai ASCII untuk1
) dari semua karakter memberikan array numerik:sumber
T-SQL,
8078 byteMenciptakan (permanen) tabel t yang berisi
(-1,0,1)
, dan melakukan self-bergabung denganWHERE
klausul yang tidak termasuk dalam0,0
barisan. Tabel t tidak dibersihkan oleh kode saya, Anda harus menjatuhkannya sendiri.Sayangnya hampir dua kali lipat solusi membosankan ( 44 byte ), karena SQL memungkinkan pengembalian dalam string:
sumber
WHERE t.n OR z.n
? (Anda dapat menggunakan beberapa tetapi tidak semua dialek SQL.)An expression of non-boolean type specified in a context where a condition is expected
Bash Murni (tidak ada utilitas eksternal), 36
Cobalah online!
Bash with Sed, 35
Cobalah online!
sumber
cut
untuk 36 byte juga.echo {-1..1},{-1..1}|sed s/0,0.//
printf %s\\n {-1..1},{-1..1}|grep 1
juga 35.Python 2 , 33 byte
Cobalah online!
Dennis menyimpan
35 byte, wow. Terima kasih!sumber
Jelly ,
876 byteCobalah online!
Jawaban Jelly pertama saya! Terima kasih banyak untuk Dennis untuk potongan terakhir dari teka-teki.
Sekarang, mari kita lihat apakah saya bisa menjelaskannya ... lol.
-1 byte terima kasih kepada Erik; -1 byte terima kasih kepada Tn Xcoder dan Dennis
sumber
3p3_2ẸƇ
3
.R ,
2624 byteKredit ke @JDoe untuk menyimpan dua byte lagi dengan pendekatan langsung:
Cobalah online!
Permintaan asli:
Cobalah online!
Atau selama 27 byte
Cobalah online!
Atau selama 34 byte dengan faktor:
Cobalah online!
Solusi terakhir ini mungkin yang paling golf jika outputnya bisa dari 1 hingga 3 daripada dari -1 ke 1.
Lihat jawaban R lainnya untuk solusi alternatif dengan
expand.grid
atau dengancbind
.sumber
c
yang tidak masuk akal di dalam matriks jadi saya beralih kepaste
dan format output asli ...paste
Japt ,
131211 byteMenyimpan satu byte berkat @Shaggy
Cobalah online! Menggunakan
-R
bendera untuk meletakkan setiap item pada barisnya masing-masing.Penjelasan
sumber
Japt
-Q
,1513 byteSaya yakin ada cara yang lebih pendek, tetapi saya menyukai pendekatan ini.
Dicukur dua byte berkat Shaggy .
Cobalah online!
sumber
Haskell , 22 byte
Cobalah online!
Laikoni menyimpan 1 byte.
sumber
_:l=mapM(:[1,-1])[0,0]
menghemat satu byte. (Diambil dari jawaban isaacg untuk tantangan sebelumnya).Perl 6 , 23 byte
Cobalah online!
sumber
05AB1E ,
87 byteCobalah online!
Penjelasan
-1 byte terima kasih kepada Emigna!
sumber
2Ý<ã
), tetapi mencari tahu cara menghapus elemen tengah dari daftar pasangan .. Tidak berpikir tentang mengurutkan berdasarkan nilai absolut dan menghapus yang pertama .. +1 dari saya.ʒĀZ
untuk menyimpan 1MATL , 12 byte
Cobalah online!
Karena ini bulan MATL, inilah port MATL jawaban @ Stewie Octave. Urutan [0 1 2 3 5 6 7 8] dihasilkan sebagai perbedaan set antara [0 ... 8] dan 4.
sumber
Java 8,
8342 byte-41 bytes terima kasih kepada @AdmBorkBork oleh hard-coding ..
Cobalah online.
Versi bukan hard-kode sebagai referensi (
83727068 byte ):-11 byte terima kasih kepada @ OlivierGrégoire .
-2 byte membuat port dari jawaban JavaScript (ES6) @ETHproductions .
Cobalah online.
sumber
v->{for(int i=9;i-->0;)if(i!=4)System.out.println((i/3-1)+","+(i%3-1));}
.R , 27 byte
Cobalah online!
30 dan 35 byte:
sumber
expand.grid(-1:1,-1:1)[-5,]
adalah 27 byte.JavaScript (ES6)
Dua metode alternatif, keduanya lebih panjang daripada hardcoding.
49 byte
Cobalah online!
51 byte
Cobalah online!
sumber
Haskell , 27 byte
Cobalah online!
Outputnya adalah
[(0,1),(0,-1),(1,0),(1,1),(1,-1),(-1,0),(-1,1),(-1,-1)]
.sumber
Haskell ,
2827 byteCobalah online!
sumber
Sekam ,
76 byteAda banyak cara yang berbeda (bagian yang sulit / mahal dihilangkan
[0,0]
),7 byte adalah yang terpendek yang dapat saya lakukanberkat Leo karena telah menunjukkan penggunaan konversi desimal (d
) sebagai filter:Cobalah online!
Penjelasan
Alternatif, 7 byte
Cobalah online!
Penjelasan
sumber
tπ2↑3İZ
.PowerShell , 41 byte
Cobalah online!
Double-untuk loop atas kisaran
1..-1
, dengan-n
ote
quals pada akhir untuk mencabut asing0,0
masuk. Mereka masing-masing ditinggalkan di saluran dan tersiratWrite-output
pada penyelesaian program memberi kami baris baru secara gratis.Sayangnya, hanya output string barebones yang dua byte lebih pendek:
Tapi itu membosankan.
sumber
Python 2 , 39 byte
Cobalah online!
sumber
J ,
1816 byteCobalah online!
sumber
echo }.>,{;~0 1 _1
TIOecho}.>,{;~0 1 _1
echo
dibutuhkan?CJam , 13 byte
Cobalah online!
Penjelasan
sumber
Befunge-93 , 24 byte
Cobalah online!
Saya merasa tantangan ini tidak memiliki jawaban dari bahasa 2D, bahkan jika sebagian besar tidak bergerak secara diagonal. Ini menghasilkan ruang angka yang dipisahkan, masing-masing pasangan dipisahkan oleh tab.
sumber
F # (Mono) , 54 byte
Cobalah online!
44 byte - terima kasih kepada Laikoni:
sumber
(0,0)
menjadi elemen pertama dan meneleponSeq.tail
: Coba online!Brachylog , 8 byte
Cobalah online!
Penjelasan
sumber
MATL , 12 byte
Cobalah di MATL Online!
Jawaban MATL serius pertamaku! Terima kasih banyak untuk Luis Mendo , Sanchises dan DJMcMayhem atas bantuannya.
Bagaimana itu bekerja
sumber
Perl 5 , 31 byte
Cobalah online!
sumber
-1..1
berhasil di glob?bash
, tetapi tidak di Perl :(Bash , 30 byte
Cobalah online!
Mencetak spasi tambahan pada setiap baris tetapi yang terakhir. (Terima kasih kepada @Neil - ini awalnya mencetak ruang terdepan, tetapi ruang tambahan lebih baik sesuai komentar mereka)
sumber
Batch, 77 byte
63 byte jika pemisah tidak standar diizinkan:
sumber
Pyth,
119 byteCoba di sini
Penjelasan
Setara, kita bisa menggunakan
t*J+U2_1J
, tapi itu tidak lebih pendek.sumber