Sebuah die Barat tradisional adalah sebuah kubus, di mana bilangan bulat 1 sampai 6 ditandai pada wajah. Pasangan yang menambah 7 ditempatkan pada wajah yang berlawanan.
Karena ini adalah kubus, kita hanya dapat melihat antara 1 dan 3 wajah (inklusif) 1 pada waktu tertentu. Wajah yang berseberangan tidak pernah bisa dilihat pada saat yang bersamaan.
Tugas Anda adalah menulis sebuah program atau fungsi yang, mengingat daftar bilangan bulat yang mewakili sisi-sisi pada cetakan, menentukan apakah mungkin untuk melihat wajah-wajah ini secara bersamaan.
1 Oke, mungkin Anda bisa melihat 4 atau 5 wajah dengan sepasang mata, tetapi untuk tujuan tantangan ini, kami mengamati dadu dari satu titik.
Aturan:
- Kiriman Anda dapat mengasumsikan daftar input:
- Tidak kosong.
- Hanya berisi nilai-nilai yang memuaskan
1 ≤ n ≤ 6
. - Tidak mengandung elemen duplikat.
- Anda mungkin tidak berasumsi bahwa input diurutkan.
- Kiriman Anda harus menampilkan nilai kebenaran / kepalsuan : kebenaran adalah wajah dapat dilihat pada saat yang sama, kepalsuan sebaliknya.
- Ini adalah kode-golf , jadi jawaban tersingkat (dalam byte) menang!
- Celah standar dilarang secara default.
Uji Kasus
Benar:
[6] (One face)
[6, 2] (Share a side)
[1, 3] (Share a side)
[2, 1, 3] (Share a vertex)
[3, 2, 6] (Share a vertex)
Falsy:
[1, 6] (1 and 6 are opposite)
[5, 4, 2] (2 and 5 are opposite)
[3, 1, 4] (3 and 4 are opposite)
[5, 4, 6, 2] (Cannot see 4 faces)
[1, 2, 3, 4, 5, 6] (Cannot see 6 faces)
code-golf
decision-problem
FlipTack
sumber
sumber
Jawaban:
Python 2 , 35 byte
Cobalah online!
sumber
JavaScript (ES6),
38 34 30 2928 byteMengambil input sebagai sejumlah parameter terpisah. Pengembalian
0
atau1
.Uji kasus
Tampilkan cuplikan kode
Bagaimana?
Di bawah ini adalah versi sederhana dari ekspresi utama sesuai dengan jumlah parameter yang disediakan, variabel tidak terdefinisi dipaksa menjadi 0 atau salah :
NB : Urutan (a, b, c) tidak masalah karena mereka selalu bersama-sama XOR.
Kasing paling sulit adalah yang ke-3. Berikut adalah tabel yang menunjukkan semua kemungkinan kombinasi:
Alt. versi # 1, 32 byte
Mengambil input sebagai array. Mengembalikan boolean.
Uji kasus
Tampilkan cuplikan kode
Alt. versi # 2, Chrome / Firefox, 34 byte
Yang ini menyalahgunakan metode semacam Chrome dan Firefox. Itu tidak bekerja dengan Edge.
Mengambil input sebagai array. Pengembalian
0
atau1
.Uji kasus
Tampilkan cuplikan kode
sumber
Haskell , 24 byte
-3 byte terima kasih kepada H.PWiz.
Cobalah online!
Penjelasan
sumber
APL (Dyalog) , 7 byte
Cobalah online!
∘.+⍨
- tabel tambahan (setiap elemen dengan setiap elemen)7∊
- 7 ada?~
- MeniadakanAPL (Dyalog) , 7 byte
Cobalah online!
7-⊢
- kurangi setiap elemen dari 7⊢∩
- berpotongan dengan array asli⍬≡
- kosong?sumber
R , 27 byte
terima kasih kepada Gregor untuk memperbaiki bug
Cobalah online!
Jawaban Port of Chas Brown . Memiliki operasi vektor membantu membuat ini lebih pendek di R.
sumber
(7-d)
, orang bijak laind%in%d
diutamakan.Mathematica, 20 byte
The
adalah\[Function]
-12 byte dari Martin Ender
-7 byte dari Misha Lavrov
Cobalah online!
sumber
Haskell , 26 byte
Cobalah online!
sumber
Pyth , 5 byte
Coba di sini.
sumber
Sebenarnya , 8 byte
Cobalah online! (menjalankan semua kasus uji)
Penjelasan:
sumber
Sekam , 5 byte
Cobalah online!
Penjelasan
sumber
Retina ,
2120 byteCobalah online! Tautan termasuk kasus uji. Sunting: Disimpan 1 byte berkat @MartinEnder. Penjelasan:
Sortir input.
Periksa sepasang sisi yang berlawanan (urutan 3 dan 4 bersebelahan). Ini mengembalikan 1 untuk mati tidak valid atau 0 untuk yang valid.
Meniadakan secara logis hasilnya.
sumber
Jelly , 5 byte
Cobalah online!
Jawaban Port of Chas Brown .
Penjelasan
sumber
Alice , 18 byte
Cobalah online!
Mencetak
Jabberwocky
untuk input yang valid dan tidak ada yang sebaliknya.Penjelasan
Membuka alur kontrol zigzag, program ini benar-benar adil:
sumber
Pyth , 5 byte
Suite uji.
isaacg menyimpan satu byte!
sumber
Ruby ,
36 31 2423 byteCobalah online!
Itu sangat sederhana, saya mencari solusi untuk masalah yang salah sepanjang waktu.
sumber
05AB1E , 5 byte
Cobalah online!
Penjelasan
Salah satu dari beberapa cara untuk melakukan ini dalam 5 byte di 05AB1E
sumber
Perl 5 , 51 + 1 (
-a
) = 52 byteCobalah online!
sumber
3 1 4
berikan benar, bagaimana dengansay 1>grep{$x=$_;grep$_+$x==7,@F}@F
Retina , 20 byte
Cobalah online!
Alternatif pendekatan Neil.
Penjelasan
Berubah
6
,5
,4
menjadi1
,2
,3
, masing-masing.Cobalah untuk menemukan karakter yang berulang dan hitung jumlah kecocokan.
Pastikan hasilnya nol (efektif negasi logis).
sumber
Java (OpenJDK 8) , 43 byte
Cobalah online!
sumber
GNU sed ,
3722 + 1 = 23 byte+1 byte untuk
-r
bendera. Mengambil input sebagai digit; mencetak input untuk truey dan0
for falsy.-10 byte terima kasih kepada @MartinEnder.
Cobalah online!
Penjelasan
Mirip dengan jawaban Alice @ MartinEnder .
sumber
Perl 6 , 18 byte
Cobalah online!
1 & 6 | 2 & 5 | 3 & 4
adalah persimpangan yang terdiri dari angka 1 dan 6, ATAU angka 2 dan 5, ATAU angka 3 dan 4. Persimpangan ini adalah elemen dari (∈
) daftar input*
jika mengandung 1 dan 6, atau 2 dan 5, atau 3 dan 4. Hasil itu kemudian dinegasikan (!
) untuk mendapatkan nilai boolean yang diperlukan.sumber
Haskell,
46 4137 byteMembawa produk Cartesian dari daftar dengan sendirinya, lalu memeriksa apakah semua daftar yang dihasilkan tidak berjumlah 7. (Jika salah satu dari mereka dijumlahkan ke 7, wajah yang berlawanan akan terlihat, dan "semua tidak" lebih pendek dari "tidak apapun yang dilakukan ".)
sumber
J , 12 byte
Ini hampir sama dengan solusi APL pertama oleh Uriel
Cobalah online!
sumber
Formula IBM / Lotus Notes, 7 byte
Mengambil input dari bidang angka multi-nilai i.
Secara rekursif mengurangi setiap nilai i dari 7 dan memeriksa untuk melihat apakah itu ada dalam daftar asli. ! mengubah angka 1 menjadi 0 (semua wajah tidak bisa dilihat).
Uji Kasus (tidak tersedia TIO untuk Formula Catatan)
sumber
Bersihkan , 49 byte
Cobalah online!
sumber
Swift , 46 byte
Mengambil input sebagai
[Int]
(array integer) dan mengembalikanBool
(boolean).Penjelasan Singkat (ungolfed)
sumber
Clojure ,
898072 byte-9 byte karena saya menyadari penggunaan
reduced
tidak perlu-8 byte dengan mengubah dari menggunakan
reduce
ke menggunakansome
Saya mencoba menulis ini tanpa melihat trik apa pun yang digunakan jawaban lain. Saya mungkin bisa memperbaiki ini nanti.
Pengembalian
true
untuk kasus yang sebenarnya,false
jika ada pihak yang berjumlah 7, dannil
jika jumlah pihak adalah ilegal.sumber