میخواهیم با حرکت دادن این مهرهها و رعایت قواعد زیر کلیهی مهرهها را به صورت زیر بر میلهی سوم ببریم:
آیا میتوان با کمتر از ۱۱ حرکت این کار را انجام داد؟
پاسخ
اگر n مهره به ترتیب شماره در داخل میلهی A باشند و دو میلهی B و C خالی باشند٬ آنگاه حداقل با 2n−1 حرکت میتوان مهرهها را از A به C منتقل کرد به طوری که مهرههای با شمارهی بزرگتر هرگز روی مهرههای با شمارهی کوچکتر قرار نگیرند.
اثبات: فرض میکنیم با حداقل hn−1 حرکت بتوان n−1 مهره با شرایط مذکور را از A به C منتقل کرد. ابتدا n−1 مهره را با hn−1 حرکت از A به C منتقل میکنیم. فقط مهرهی n در داخل میلهی A باقی میماند. با یک حرکت مهرهی n را به C منتقل میکنیم و باhn−1 حرکت n−1 مهرهی دیگر را از B به C انتقال میدهیم. پس مجموع حرکات برای چنین کاری برابر hn−1+1+hn−1 یعنی 2hn−1+1 خواهد بود. پس:
hn=2hn−1+1(1)
میدانیم:
h1=1,h2=3,h4=7,...
با استفاده از رابطهی بازگشتی (1) معلوم میشود که:
hn=2n−1
برای حل مسئله مورد نظر الگوریتم زیر را پیاده میکنیم:
پس مجموعا ۱۱ حرکت میشود و با کمتر از این٬ ممکن نیست.
در صورتی که ۵ مهره با شمارههای ۱ تا ۵ داشته باشیم به طوری که مهرههای ۳٬۱ و ۵ در میلهی اول و مهرههای ۲ و ۴ در میلهی دوم باشندو آیا میتوان با کمتر از ۲۲ حرکت این مسئله را حل کرد؟
پاسخ
برای حل مسئله الگوریتم زیر را پیاده میکنیم:
پس مجموعا ۲۲ حرکت میشود و با کمتر از این٬ ممکن نیست.