ลองนึกภาพคุณอยู่ในอาคารสูงที่มีแมว แมวสามารถมีชีวิตรอดตกจากหน้าต่างชั้นต่ำ แต่จะตายหากถูกโยนลงมาจากชั้นสูง คุณจะรู้ได้อย่างไรว่าหยดที่ยาวที่สุดที่แมวสามารถอยู่รอดได้โดยใช้จำนวนครั้งน้อยที่สุด?
เห็นได้ชัดว่าถ้าคุณมีแมวเพียงตัวเดียวคุณก็สามารถค้นหาแบบเชิงเส้นได้ ก่อนโยนแมวจากชั้นแรก หากยังมีชีวิตอยู่ให้โยนออกจากวินาที ในที่สุดหลังจากถูกโยนจากพื้น f แมวจะตาย คุณจะรู้ว่าชั้น f-1 เป็นชั้นที่ปลอดภัยที่สุด
แต่ถ้าคุณมีแมวมากกว่าหนึ่งตัว ตอนนี้คุณสามารถลองค้นหาแบบลอการิทึมได้แล้ว สมมติว่าบิลด์มี 100 ชั้นและคุณมีแมวเหมือนกันสองตัว หากคุณโยนแมวตัวแรกออกจากชั้นที่ 50 แล้วคุณจะต้องค้นหา 50 ชั้นอย่างเป็นเส้นตรง คุณสามารถทำได้ดียิ่งขึ้นถ้าคุณเลือกชั้นล่างสำหรับความพยายามครั้งแรกของคุณ สมมติว่าคุณเลือกที่จะจัดการปัญหา 20 ชั้นในเวลาเดียวกันและชั้นที่ร้ายแรงที่สุดคือ # 50 ในกรณีนี้แมวตัวแรกของคุณจะรอดจากเที่ยวบินชั้น 20 และ 40 ก่อนตายจากชั้น 60 คุณเพียงแค่ต้องตรวจสอบชั้น 41 ถึง 49 ทีละตัว นั่นคือทั้งหมด 12 ครั้งซึ่งดีกว่า 50 อย่างที่คุณต้องการหากคุณพยายามกำจัดเลขฐานสอง
โดยทั่วไปแล้วกลยุทธ์ที่ดีที่สุดคืออะไรและมีความซับซ้อนในกรณีที่เลวร้ายที่สุดสำหรับอาคารที่ไม่มีแมวสองตัว แล้วสำหรับชั้น n และแมว m ล่ะ
สมมติว่าแมวทุกตัวมีค่าเท่ากันพวกมันทั้งหมดจะรอดชีวิตหรือตายจากการตกจากหน้าต่างที่กำหนด นอกจากนี้ความพยายามทุกอย่างเป็นอิสระ: หากแมวรอดชีวิตจากการตกสู่บาปมันก็ไม่เป็นอันตรายอย่างสมบูรณ์
นี่ไม่ใช่การบ้านแม้ว่าฉันอาจจะแก้ไขมันเพื่อการบ้านครั้งเดียว มันเป็นปัญหาที่แปลกที่โผล่เข้ามาในหัวของฉันในวันนี้และฉันจำไม่ได้ว่าวิธีแก้ปัญหา คะแนนโบนัสหากใครรู้ชื่อของปัญหานี้หรืออัลกอริทึมการแก้ปัญหา