مساله ۱۷. شلیک به اژدها

صد تا جعبه داریم که افقی کنار هم چیده شدن و هر کدوم به سمت چپی و راستی راه داره. یه اژدها توی یکی از این جعبه هاست (و ما نمی‌دونیم کدوم جعبه) و ما یه تفنگ داریم. بعد از هر شلیک ما اژدها یا به جعبه سمت راستی میپره یا چپی. آیا الگوریتمی برای شلیک به جعبه‌ها وجود داره که حتما اژدها رو بکشه؟ اگه نه، چرا؟ اگه آره، چگونه؟

(سوال پیشنهادی از @De_MH_ )

توضیحات. این شلیک‌کردن هر چند مرحله دلمون خواست می‌تونه ادامه پیدا کنه. فقط در هر مرحله اول ما شلیک می‌کنیم، بعد اژدها یا به چپی میره یا راستی. فرض کنید اژدها باهوشه و شانسی نمی‌پره و اگه راهی داشته باشه که الگوریتم ما جواب نده، از دست ما فرار می‌کنه.

لینک مساله در توویتر: https://twitter.com/Riazi_Cafe/status/1682276511402037248

به عنوان راهنمایی، این فرض اضافی رو به مساله اضافه کنین: فرض کنین شماره خونه‌ای که اژدها در شروع اونجاست حتما فرده و ما اینو میدونیم (ولی همچنان نمی‌دونیم کدوم خونه‌ی فرد).

آیا در این حالت راهی هست که حتما اژدها رو بزنیم؟

بله، همانطور که تعدادی از دوستان گفتند، همچنین الگوریتمی وجود دارد.

مثلا شلیک ۱ تا ۱۰۰ به خونه ۱ تا ۱۰۰، شلیک ۱۰۱ تا ۲۰۰ به خونه ۱۰۰ تا ۱.

در ۱۰۰ مرحله اول موقعیت شلیک ما هر دفعه یکی زیاد میشه، و موقعیت اژدها یا یکی زیاد میشه یا یکی کم، پس فاصله شلیک ما با اژدها یا ثابت میمونه و یا ۲ تا کم میشه. با توجه به اینکه در شروع اژدها سمت چپ شلیک ما نیست، پس اگر فاصله اژدها با شلیک ما در شروع زوج باشد (یعنی اژدها در خونه‌ای با شماره فرد باشد)، در یکی از این ۱۰۰ شلیک فاصله‌اش با شلیک ما صفر میشه و میزنیمش.

اگه در این ۱۰۰ شلیک نزدیم، میفهمیم که موقعیت اژدها در شروع زوج بوده (و فاصله‌اش با شلیک‌های ۱ تا ۱۰۰ ما فرد) و چون در هر مرحله موقعیتش یکی فرق می‌کنه، پس از ۱۰۰ مرحله هم باز در خونه زوجه. پس در مرحله ۱۰۱ که به ۱۰۰ شلیک می‌کنیم فاصله‌اش با شلیک ما زوجه و سمت راست شلیک ما هم نیست. و در مرحله‌های بعدی فاصله یا ثابت میمونه و یا ۲ کم میشه، و بالاخره این فاصله صفر میشه و میزنیمش.

لینک راه‌حل در توویتر: https://twitter.com/Riazi_Cafe/status/1682656010081828865