Saya telah diberi masalah berikut dalam sebuah wawancara (yang telah saya gagal pecahkan, tidak mencoba menipu jalan saya sebelumnya): Permainan dimulai dengan bilangan bulat positif . (Mis. A 0 = 1234. ) Angka ini dikonversi ke representasi biner, dan N adalah jumlah bit yang ditetapkan ke 1 . (Mis. A 0 = b 100 1101 0010 , N = 5. )
Pemain 1 memilih nomor lebih kecil dari A 0 . B 0 harus hanya memiliki satu bit yang diatur ke 1. (Misalnya B 0 = b 10 0000 0000 = 512. ) Misalkan A 1 = A 0 - B 0 . (Mis. A 1 = 1234 - 512 = 722 = b 10 1101 0010. ) Suatu perpindahan valid jika B 0memenuhi kendala sebelumnya, dan jika jumlah bit di dalam masih sama dengan N .
Pemain 2 melanjutkan dari dengan memilih B 1 yang valid , kemudian pemain 1 melanjutkan dari A 2 , dan seterusnya. Seorang pemain kalah jika mereka tidak memiliki gerakan sah yang tersisa.
Dengan asumsi kedua pemain bermain secara optimal, tentukan pemain yang menang menggunakan metode yang cukup efisien. (Dalam definisi masalah saya, kendala pada hal ini adalah bahwa program harus dapat memberikan solusi untuk beberapa juta angka input yang masuk ke dalam bilangan bulat 32-bit yang sudah ditandatangani). Artinya, solusi tidak perlu sepenuhnya analitis.
Minat pribadi saya di sini adalah mencari tahu apakah harapan saya untuk menemukan dan menerapkan solusi yang benar tanpa umpan balik tentang kebenaran dalam 120 menit yang saya berikan adalah masuk akal; atau apakah ini salah satu dari pertanyaan "mari kita lihat apakah mereka pernah melihat puzzle ini sebelumnya".
Saya gagal karena saya memilih untuk menerapkan apa yang tampak seperti strategi yang masuk akal, yang memberi saya hasil yang benar untuk beberapa kasus uji yang telah saya berikan di muka, membuang-buang terlalu banyak waktu untuk menjalankan ini dengan cepat, dan akhirnya menyerahkan salah output penuh saat waktu saya habis.
Dalam retrospeksi saya harus menerapkan pencarian parsial dan hafal solusi parsial untuk angka awal yang kecil, tetapi melihat ke belakang selalu 20/20. Namun saya ingin tahu apakah ada pendekatan umum yang berbeda yang menghindari saya sebagai flunkee.