Tantangan ini diadaptasi dari Olimpiade Informatika Inggris .
Game dadu
Dua pemain memainkan permainan dadu di mana mereka masing-masing melempar sepasang dadu, dan jumlah tertinggi menang. Pasangan dadu memiliki jumlah sisi yang sama, tetapi tidak harus memiliki nilai yang sama di setiap sisi. Oleh karena itu, permainan ini adil jika untuk kedua pasang dadu semua jumlah yang mungkin dapat dibuat dengan probabilitas yang sama.
Misalnya, jika Pemain 1 memiliki dadu berikut:
{1,2,3,4,5,6} {1,2,3,4,5,6}
Kemudian mereka dapat menghasilkan jumlah berikut:
1 2 3 4 5 6
+------------------
1| 2 3 4 5 6 7
2| 3 4 5 6 7 8
3| 4 5 6 7 8 9
4| 5 6 7 8 9 10
5| 6 7 8 9 10 11
6| 7 8 9 10 11 12
Jika Player 2 memiliki:
{1,2,2,3,3,4} {1,3,4,5,6,8}
Mereka dapat menghasilkan:
1 2 2 3 3 4
+------------------
1| 2 3 3 4 4 5
3| 4 5 5 6 6 7
4| 5 6 6 7 7 8
5| 6 7 7 8 8 9
6| 7 8 8 9 9 10
8| 9 10 10 11 11 12
Permainan ini adil karena minimum untuk keduanya adalah 2, maksimal 12, dan setiap jumlah terjadi jumlah yang sama, misalnya 7 dapat dibuat 6 cara dengan masing-masing pasangan.
Tantangan
Tulis program / fungsi yang mengambil dua dadu sebagai input, dan opsional bilangan bulat yang mewakili jumlah sisi yang berisi setiap dadu, dan cetak / kembalikan sepasang dadu yang berbeda yang dapat digunakan untuk memainkan permainan yang adil dengan dua dadu masukan, atau nilai falsey jika tidak ada solusi yang berbeda dari input.
Spesifikasi
Jumlah sisi pada kedua dadu harus sama, dan sama dengan jumlah sisi pada pasangan input dadu. Angka ini akan selalu berupa bilangan bulat yang lebih besar dari atau sama dengan 1.
Dua dadu yang dikembalikan bisa sama, tetapi pasangannya tidak boleh sama dengan pasangan masukan.
Pasangan pesanan yang berbeda tidak berbeda; {1,2,3} {4,5,6} sama dengan {4,5,6} {1,2,3}.
Program Anda tidak perlu menghasilkan hasil dengan cepat, asalkan pada akhirnya akan menghasilkan output yang benar.
Nilai pada pasangan input dadu akan selalu berupa bilangan bulat antara 1 dan 9 inklusif, tetapi nilai yang dikembalikan dapat berupa bilangan bulat ≥1.
Jika ada lebih dari satu solusi yang mungkin, hanya satu yang perlu dikembalikan.
Input / Output dapat dalam format yang masuk akal.
Uji Kasus
6
1 2 2 3 3 4
8 6 5 4 3 1
1 2 3 4 5 6
1 2 3 4 5 6
4
1 1 1 1
1 4 5 8
1 1 4 4
1 1 5 5
3
1 3 5
2 4 6
False
8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Any of the following:
1 2 2 3 3 4 4 5 | 1 2 2 3 5 6 6 7 | 1 2 3 3 4 4 5 6
1 3 5 5 7 7 9 11 | 1 3 3 5 5 7 7 9 | 1 2 5 5 6 6 9 10
9? Saya hanya melihat hukum tentang sisi-sisi yang ada >=1, tetapi apakah ada maks? Jika bisa lebih tinggi dari 9, maukah Anda menambahkan test case untuknya?