Latar Belakang
Jika Anda melakukan banyak kode golf, kemungkinan Anda mengetahui operasi XOR bitwise . Diberikan dua bilangan bulat, ini memberikan bilangan bulat lain dengan 1
s dalam bit di mana dua input berbeda. Jadi, misalnya 1010 XOR 0011 = 1001
,.
Ternyata sangat berguna dalam teori permainan, di mana itu lebih dikenal sebagai "nim sum". Jika Anda memiliki jumlah dari dua game (yaitu, Anda bergerak dalam satu game pada satu waktu), nilai dari posisi adalah jumlah nim dari nilai-nilai posisi dalam setiap game individu.
Tapi kita bisa mengambil langkah ini lebih jauh. Dengan penambahan nim dan definisi yang sesuai untuk perkalian nim , kita dapat membentuk bidang dari bilangan bulat non-negatif. Jadi tantangannya adalah multiplikasi golf nim.
Definisi
Perkalian
nim mematuhi aturan berikut: Produk nim dari Fermat 2-power n = (2 ^ (2 ^ k)) dengan jumlah yang lebih kecil adalah produk biasa.
Produk nim dari Fermat 2-power n dengan sendirinya adalah 3n / 2.
Perkalian nim mendistribusikan lebih dari penambahan nim.
Perkalian nim bersifat komutatif dan asosiatif (seperti halnya penambahan nim).
Identitas multiplikatif adalah 1 (dan identitas aditif adalah 0).
Setiap integer nonnegatif dapat ditulis sebagai nim sum dari kekuatan yang berbeda dari dua, dan kekuatan apa pun dari dua dapat ditulis sebagai produk dari nomor Fermat yang berbeda, jadi ini cukup untuk mendefinisikan perkalian nim untuk semua bilangan bulat nonnegatif.
Contoh
Itu semua sangat abstrak, jadi mari kita bekerja melalui contoh. Saya akan gunakan +
untuk menunjukkan penambahan nim (XOR) dan *
untuk perkalian nim.
6 * 13
= (4 + 2) * (8 + 4 + 1)
= (4 + 2) * ((4 * 2) + 4 + 1)
= (4 * 4 * 2) + (4 * 2 * 2) + (4 * 4) + (4 * 2) + (4 * 1) + (2 * 1)
= (6 * 2) + (4 * 3) + 6 + 8 + 4 + 2
= ((4 + 2) * 2) + 12 + 6 + 8 + 4 + 2
= (4 * 2) + (2 * 2) + 12 + 6 + 8 + 4 + 2
= 8 + 3 + 12 + 6 + 8 + 4 + 2
= 15
Kasus Uji Tambahan
4, 4 -> 6
4, 3 -> 12
4, 7 -> 10
2, 4 -> 8
2, 3 -> 1
1, 42 -> 42
Tantangan
Tulis program atau fungsi yang, mengingat dua bilangan bulat negatif dalam bentuk apa pun, menghitung produk nim mereka.
Ini adalah kode-golf , jadi pengiriman terpendek menang.