Game dadu Mia memperkenalkan urutan set yang sangat non-sepele ukuran dua:
{3,1} < {3,2} < {4,1} < {4,2} < {4,3} < {5,1} < {5,4} < {6,1} < {6,5} < {1,1} < {2,2} < {6,6} < {1,2}
Secara umum, urutan dalam tupel tidak masalah {x,y}={y,x}
,
{1,2}
lebih besar dari yang lain, Pasangan lebih besar dari non-pasangan dan nilai numerik memutuskan dalam kasus dasi.
Sekarang anggaplah Anda ingin menggunakan n
dadu. Juga, dadu memiliki m
wajah.
Contoh:
{1,5,3,4} < {1,2,6,3}
sejak 5431 <6321{1,2,3,5} < {1,1,5,6} < {1,1,5,5}, {1,1,6,6} < {1,1,1,3} < {2,2,2,3} < {1,1,1,1} < {1,2,3,4}
{2,2,5} < {1,1,6}
karena kedua set memiliki masing-masing satu pasangan dan 611> 522
Singkatnya, {1, ..., n}
lebih besar dari yang lainnya. Biarkan p > q
, maka p-of-a-kind lebih besar dari q-of-a-kind. Dalam hal seri, yang kedua (, ketiga, ...) - kemenangan jenis terpanjang. Akhirnya, jika belum ada keputusan yang dibuat, nilai numerik terbesar akan menang. Nilai numerik suatu himpunan adalah bilangan bulat terbesar yang dapat Anda bangun dari angka yang tersedia di himpunan, menggunakan gabungan. Contoh:
{2,5,4,3}
menjadi 5432{4,11,3,4}
menjadi B443 (> dadu bermuka 6 diperbolehkan, B = 11)
Tugas Anda adalah untuk menulis program sekecil mungkin (yaitu fungsi) dalam bahasa pilihan Anda, yang, diberikan dua wadah (daftar, array, set, ...) mengembalikan apakah yang pertama atau yang kedua menang.
Catatan: Anda dapat mengasumsikan bahwa kedua wadah memiliki panjang yang sama dan hanya berisi bilangan bulat positif, tetapi tidak ada yang lain. Terutama mereka mungkin tidak diurutkan. Nilai pengembalian bisa berupa apa saja, misalnya {-1, 0, 1} untuk {kemenangan pertama, seri, kemenangan kedua}.
{1,1,6}
,{2,2,5}
? Apakah Anda membandingkan nilai numerik p-of-a-kind terbesar atau dadu apa pun?Jawaban:
Jelly , 16 byte
Mengambil daftar daftar yang masing-masing mewakili roll (jadi bisa lebih dari dua jika diinginkan) dan mengembalikan daftar pemenang.
Cobalah online! ... alternatifnya di sini adalah versi yang mengurutkan gulungan dari yang paling lemah ke yang paling kuat.
Bagaimana?
sumber
1,1,2
dan1,2,2
dianggap sama, tetapi spek saat ini tidak membedakan mereka juga.{1,1,5,6} < {1,1,5,5}
mana6 > 5
. Bisakah Anda mengklarifikasi?ÐṀ
dengan semacamÞ
,, untuk tujuan pengujian - menggunakan item dari contoh itu mengurutkan mereka ke dalam urutan yang sama. Urutan yang digunakan adalah: pertama dengan jika "top-dog", kemudian dengan jumlah wajah yang sama turun dan akhirnya dengan wajah unik turun.JavaScript (ES6), 162 byte
Penjelasan: Mengambil dua array sebagai parameter.
g
mengubah setiap array menjadi daftar jumlah. Daftar ini kemudian diperiksa untuk melihat apakah itu sesuai dengan suatu set1..n
. Hitungan diurutkan dan nilai yang diurutkan disatukan. Kedua hasil tersebut kemudian dibandingkan. Nilai kembali adalah bilangan bulat positif jika array kedua menang dan integer negatif jika array pertama menang, jika tidak nilai JavaScript palsuundefined
dikembalikan.sumber
PHP 333 Bytes
Saya berasumsi bahwa ada lebih sedikit dadu maka wajah untuk nilai tertinggi sebagai jalan dimulai dengan 1
Saya menghasilkan sedikit lebih banyak. Input adalah array dengan lebih dari dua nilai. Output adalah array yang diurutkan.
Kerusakan
sumber
Julia (489 Bytes)
Dapat dibaca:
sumber