در نزدیکی خونهمون یک پارک جنگلی هست که متعلق به راکفلرها بوده. پارک خیلی بزرگه و آدم میتونه به راحتی توش گم بشه. مشکل اینجاست که در یک مسیر که جلو میرین، مرتب به دوراهی برخورد میکنین و باید راه راست یا راه چپ رو انتخاب کنین؛ اما موقع برگشت الزامن به یاد ندارین که راه راست رو انتخاب کرده بودین یا راه چپ رو و اینجاست که ممکنه گم بشین.
بعد از یکی دو بار نیمه گم شدن در پارک، بالاخره به یک روش برای پیدا کردن مسیر برگشت دست پیدا کردم که پیشنهاد میکنم شما هم در موارد مشابه (و یا حتا در خیابون یا هرجای دیگه که از نظر کیفی به همین وضعیت شبیه هست) ازش استفاده کنین:
در تمام مدت کافیه یک عدد رو به یاد داشته باشین. بهش بگیم عدد مسیر. در شروع گردش، عدد مسیر برابر با ۱ خواهد بود. در مسیر جلو برین. هر موقع به دوراهی رسیدین، به دلخواه یکی از دو راه رو انتخاب کنین:
– اگر راه سمت چپ رو انتخاب کردین، عدد مسیر رو ضرب در دو کنین
– اگر راه سمت راست رو انتخاب کردین، عدد مسیر رو ضرب در دو کنین و یکی بهش اضافه کنین
برای مثال اول سفر که عدد مسیرتون برابر با ۱ هست. فرض کنین در طی مسیر در اولین دوراهی به راست میپیچین (پس عدد مسیر برابر میشه با ۳) و بعد در دوراهی بعدی به چپ میپیچین (پس عدد مسیر برابر میشه با ۶) و بعد در دوراهی بعدی باز هم به چپ میپیچین (و عدد مسیر برابر میشه با ۱۲) و در پایان به راست میپیچین (و عدد مسیر برابر میشه با ۲۵).
به همین ترتیب هر چه قدر که دوست دارین جلو میرین. وقتی میخواهین برگردین و به نقطهی شروع برسین، طبیعتن به یکی از دوراهیهایی میرسین که قبلتر ازش رد شده بودین. در این حال،
– اگر عدد مسیر زوج هست، راه سمت راست رو انتخاب کنین و عدد مسیر رو تقسیم بر دو کنین
– اگر عدد مسیر فرد هست، راه سمت چپ رو انتخاب کنین، از عدد مسیر یکی کمکنین و بعد بر دو تقسیمش کنین
با این ترتیب تضمین میکنم که وقتی عدد مسیر یک شده باشه، شما هم در نقطهی شروع سفرتون هستین! (یا به عبارت دقیقتر اولین دوراهیای رو که دیده بودین پشت سر گذاشتهاین و از این به بعد باید جلو برین تا به نقطهی شروع برسین)
برای مثال فرض کنین شروع به برگشت میکنین و عدد مسیر برابر ۹ هست. در این حال در اولین دوراهی راه سمت چپ رو انتخاب میکنین (و عدد مسیر برابر میشه با ۴). در دوراهی بعدی راه سمت راست رو انتخاب میکنین (و عدد مسیر برابر میشه با ۲) و در دوراهی آخر هم باز راه سمت راست رو انتخاب میکنین (و عدد مسیر برابر میشه با ۱). به این ترتیب در مقصد هستین.
در حالت عادی شاید استفاده از این روش ضروری به نظر نرسه. اما این رو بگم که در پیادهروی دیروز، در مدت نیم ساعت، عدد مسیرم به نزدیکی دویست رسید و اینجا بود که کمکم داشت اهمیت خودش رو نشون میداد.
توضیح بیشتر: علت نتیجهبخش بودن این روش چندان هم معجزهآسا نیست. توضیح سادهاش اینه که برای مسیر، یک رشتهی عدد دودویی در نظر میگیریم که با اضافه شدن هر دوراهی جدید کل رقمهای صفر و یک رو به چپ حرکت میدیم (shift) و انتخاب جدید رو در سمت راست عدد دودویی اضافه میکنیم (برای اضافه شدن، راههای سمت چپ ۰ هستن و راههای سمت راست ۱).
تمرین بیشتر: اگر تعداد انتخابها بیشاز دو راه بود چه کار میکنین؟ مثلن توی مسیر سه راهی داشته باشیم؟
تمرین بیشتر: اگر در مسیر حلقه داشته باشیم، این روش جوابگو نیست. در وقت اضافه پیدا کنین که چه اتفاقهایی ممکنه با وجود حلقه بیفته.