آزمایشگاه آزاد؛ بدون نیاز به ورود
برج هانوی: چرا چند دیسک، حرکتها رو زیاد میکنه؟
سه میله و چند دیسک داری؛ هر بار فقط یک دیسک رو جابهجا کن و هیچوقت دیسک بزرگتر رو روی کوچکتر نذار. حالا حدس بزن برای بردن همهٔ دیسکها به میلهٔ آخر، حداقل چند حرکت لازمه.
آزمایش رو شروع کنبرای ۴ دیسک، حداقل ۱۵ حرکت لازمه؛ با ۵ دیسک این عدد به ۳۱ میرسه. فقط یک دیسک اضافه شد، ولی تعداد حرکتها تقریباً دو برابر شد.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
از دو دیسک به سه دیسک برو
تعداد دیسکها رو یک بار ۲ و یک بار ۳ بذار. کمترین تعداد حرکت رو در هر اجرا بخون.
حدست چیه؟ با اضافه شدن یک دیسک، چند حرکت تازه لازم میشه؟
توضیح نتیجه رو ببین
برای ۲ دیسک ۳ حرکت و برای ۳ دیسک ۷ حرکت لازمه. با اضافه شدن دیسک سوم، ۴ حرکت به حداقل اضافه میشه؛ دیسکهای کوچکتر باید یک بار کنار برن و دوباره روی دیسک بزرگتر قرار بگیرن.
هزینهٔ یک دیسک اضافه رو ببین
تعداد دیسکها رو از ۴ به ۵ تغییر بده و کمترین حرکتها رو مقایسه کن.
حدست چیه؟ اگر برای ۴ دیسک ۱۵ حرکت لازمه، حدس میزنی برای ۵ دیسک چند حرکت لازم باشه؟
توضیح نتیجه رو ببین
عدد از ۱۵ به ۳۱ میرسه. برای انتقال دیسک بزرگتر، اول باید ۴ دیسک بالا رو جابهجا کنی؛ بعد از حرکت دیسک بزرگ، همون ۴ دیسک رو دوباره منتقل میکنی، پس ۱۵+۱+۱۵ حرکت داریم.
ده دیسک یعنی چند حرکت؟
تعداد دیسکها رو روی ۴ بذار و بعد تا ۱۰ بالا ببر. عدد کمترین حرکت رو با هم مقایسه کن.
حدست چیه؟ اضافه شدن ۶ دیسک، تعداد حرکتها رو فقط چند برابر میکنه؟
توضیح نتیجه رو ببین
برای ۴ دیسک ۱۵ حرکت و برای ۱۰ دیسک ۱۰۲۳ حرکت لازمه. رشد از جنس جمع یک عدد ثابت نیست؛ هر دیسک تازه، تعداد لازم رو دو برابر میکنه و یک حرکت هم برای دیسک بزرگ اضافه میشه.
پشت این حرکت چه خبره؟
قانون حرکت، مسئله رو محدود میکنه
سه میله داریم، هر بار فقط دیسک بالایی یک میله رو برمیداریم و دیسک بزرگتر هیچوقت روی دیسک کوچکتر نمیره. هدف اینه که کل برج از میلهٔ شروع به میلهٔ پایان برسه.
حل n دیسک به حل n−۱ دیسک وابستهست
M(n) = 2*M(n-1) + 1
برای جابهجایی برج، اول n−۱ دیسک رو به میلهٔ کمکی میبریم، دیسک بزرگ رو جابهجا میکنیم و بعد n−۱ دیسک رو روی اون میذاریم. همین الگو تعداد حرکتها رو بازگشتی میسازه.
کمترین حرکتها با فرمول نمایی
M(n) = 2^n - 1
وقتی از یک دیسک به دیسک بعدی میرسیم، باید کل برج قبلی رو دو بار جابهجا کنیم و یک بار هم بزرگترین دیسک رو حرکت بدیم. برای ده دیسک، نتیجه ۱۰۲۳ حرکته.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
چرا اضافه کردن یک دیسک، حرکتهای لازم رو تقریباً دو برابر میکنه؟
برای حرکت دادن بزرگترین دیسک، باید همهٔ دیسکهای بالاش رو اول کنار بذاری. بعد از جابهجایی دیسک بزرگ، همون برج کوچکتر رو دوباره روی اون میچینی؛ برای همین تعداد حرکتهای قبلی دو بار تکرار میشه و یک حرکت هم برای دیسک بزرگ داریم.
سؤالهای رایج
فرمول کمترین حرکتهای برج هانوی چیه؟
برای n دیسک و سه میله، کمترین تعداد حرکتها ۲ به توان n منهای ۱ه. مثلاً برای ۳ دیسک، ۷ حرکت لازمه.
چرا نمیشه دیسک بزرگ رو روی دیسک کوچک بذارم؟
این یکی از قانونهای خود معماست. هر بار فقط یک دیسک رو جابهجا میکنی و چیدمان دیسکها باید همیشه از بزرگ به کوچک بمونه.
چرا تعداد حرکتها با تعداد دیسکها خطی زیاد نمیشه؟
برای انتقال دیسک تازه، باید برج قبلی رو یک بار به میلهٔ کمکی ببری و بعد از انتقال دیسک بزرگ، دوباره جابهجاش کنی. پس حرکتهای قبلی دو بار تکرار میشن.
چرا تصویر برای ده دیسک همه رو نشون نمیده؟
شکل فقط چیدمان شروع رو نشون میده و برای خلوت موندن تصویر، تعداد دیسکهای رسمشده محدوده. عدد کمترین حرکت از تعداد واقعی انتخابشده حساب میشه.