Bayangkan Anda berada di gedung tinggi dengan kucing. Kucing bisa bertahan jatuh dari jendela lantai rendah, tetapi akan mati jika dilempar dari lantai atas. Bagaimana Anda bisa mengetahui penurunan terpanjang yang bisa ditanggung kucing, menggunakan upaya paling sedikit?
Tentunya, jika Anda hanya memiliki satu kucing, maka Anda hanya dapat mencari secara linear. Pertama, buang kucing dari lantai pertama. Jika bertahan, lemparkan dari yang kedua. Akhirnya, setelah terlempar dari lantai f, kucing akan mati. Anda kemudian tahu bahwa lantai f-1 adalah lantai aman maksimal.
Tetapi bagaimana jika Anda memiliki lebih dari satu kucing? Anda sekarang dapat mencoba semacam pencarian logaritmik. Katakanlah bangunannya memiliki 100 lantai dan Anda memiliki dua kucing yang identik. Jika Anda membuang kucing pertama keluar dari lantai 50 dan mati, maka Anda hanya perlu mencari 50 lantai secara linear. Anda dapat melakukan lebih baik jika Anda memilih lantai bawah untuk upaya pertama Anda. Katakanlah Anda memilih untuk mengatasi masalah 20 lantai sekaligus dan bahwa lantai fatal pertama adalah # 50. Jika demikian, kucing pertama Anda akan selamat dari lantai 20 dan 40 sebelum mati dari lantai 60. Anda hanya perlu memeriksa lantai 41 hingga 49 secara terpisah. Itu total 12 upaya, yang jauh lebih baik daripada 50 yang Anda perlukan seandainya Anda mencoba menggunakan eliminasi biner.
Secara umum, apa strategi terbaik dan kompleksitas kasus terburuk untuk bangunan bertingkat n dengan 2 kucing? Bagaimana dengan untuk lantai dan kucing?
Asumsikan bahwa semua kucing setara: mereka semua akan bertahan hidup atau mati karena jatuh dari jendela yang diberikan. Selain itu, setiap upaya independen: jika kucing selamat dari kejatuhan, ia sama sekali tidak terluka.
Ini bukan pekerjaan rumah, meskipun saya mungkin telah menyelesaikannya untuk tugas sekolah satu kali. Itu hanya masalah aneh yang muncul di kepala saya hari ini dan saya tidak ingat solusinya. Poin bonus jika ada yang tahu nama masalah ini atau algoritma solusi.