FAQs

Your Email:
Question:
Save
 
   
 PY1
روز:  ماه: 
شهر:
12 ذی القعده 1445 قمری
20 می 2024 میلادی
اذان صبح: 04:13:08
طلوع خورشید: 05:55:17
اذان ظهر: 13:00:55
غروب خورشید: 20:06:57
اذان مغرب: 20:26:11
نیمه شب شرعی: 00:15:58
 برج هانوی
برج هانویمسابقه كامپيوتر
مسابقه شماره ۲۱۳

سوال


سه میله با شماره‌های ۱,۲و۳و چهار مهره‌ی سوراخدار با شماره‌های ۱ تا ۴ مطابق شکل زیر داده شده است :

 


می‌خواهیم با حرکت دادن این مهره‌ها و رعایت قواعد زیر کلیه‌ی مهره‌ها را به صورت زیر بر میله‌ی سوم ببریم :

 


در هر حرکت تنها یک مهره حرکت داده شود.
هیچ‌گاه مهره‌ی با شماره‌ی بزرگتر بر روی مهره با شماره‌ی کوچیکتر قرار نگیرد.
آیا می‌توان با کمتر از ۱۱ حرکت این کار را انجام داد؟ ( اثبات کنید‌)




اگر n مهره به ترتیب شماره در داخل میله‌ی A باشند و دو میله‌ی B و C خالی باشند , آنگاه حداقل با2n - 1 حرکت می‌توان مهره‌ها را از A به C منتقل کرد به طوری که مهره‌های با شماره‌ی بزرگتر هرگز روی مهره‌های با شماره‌ی کوچیکتر قرار نگیرند.

 


اثبات : فرض می‌کنیم با حداقل hn - 1 حرکت بتوان n - 1 مهره با شرایط مذکور را از A به C منتقل کرد. ابتدا n - 1 مهره   را با hn - 1 حرکت از A به B منتقل می‌کنیم. فقط مهره‌ی n در داخل میله‌ی A باقی‌می‌ماند. با یک حرکت مهره‌ی n را به C منتقل می‌کنیم و با hn - 1 حرکت n - 1 مهره‌ی دیگر را از B به C انتقال می‌دهیم. پس مجموع حرکات برای چنین کاری برابر
hn-1 + 1 + hn-1 یعنی 2hn-1 + 1 خواهد بود. پس :


hn = 2hn-1 + 1     (1)A


می‌دانیم :


h1 = 1 , h2 = 3 , h4 = 7 , …A


با استفاده از رابطه‌ی بازگشتی (۱) معلوم می‌شود که :
برای حل مسأله مورد نظر الگوریتم زیر را پیاده می‌کنیم :
مهره‌ی ۱ را به میله‌ی ۳ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۲ را به میله‌ی ۱ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۱ را به میله‌ی ۱ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۴ را به میله‌ی ۳ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۱ تا ۳ را به میله‌ی ۳ منتقل می‌کنیم (با توجه به لم , ۷ حرکت ).
پس مجموعأ ۱۱ حرکت می‌شود و با کمتر از این , ممکن نیست.

1391/10/27لينک مستقيم

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تاییدانصراف
 برج هانوی
برج هانویمسابقه كامپيوتر
مسابقه شماره ۲۱۳

سوال


سه میله با شماره‌های ۱,۲و۳و چهار مهره‌ی سوراخدار با شماره‌های ۱ تا ۴ مطابق شکل زیر داده شده است :

 


می‌خواهیم با حرکت دادن این مهره‌ها و رعایت قواعد زیر کلیه‌ی مهره‌ها را به صورت زیر بر میله‌ی سوم ببریم :

 


در هر حرکت تنها یک مهره حرکت داده شود.
هیچ‌گاه مهره‌ی با شماره‌ی بزرگتر بر روی مهره با شماره‌ی کوچیکتر قرار نگیرد.
آیا می‌توان با کمتر از ۱۱ حرکت این کار را انجام داد؟ ( اثبات کنید‌)




اگر n مهره به ترتیب شماره در داخل میله‌ی A باشند و دو میله‌ی B و C خالی باشند , آنگاه حداقل با2n - 1 حرکت می‌توان مهره‌ها را از A به C منتقل کرد به طوری که مهره‌های با شماره‌ی بزرگتر هرگز روی مهره‌های با شماره‌ی کوچیکتر قرار نگیرند.

 


اثبات : فرض می‌کنیم با حداقل hn - 1 حرکت بتوان n - 1 مهره با شرایط مذکور را از A به C منتقل کرد. ابتدا n - 1 مهره   را با hn - 1 حرکت از A به B منتقل می‌کنیم. فقط مهره‌ی n در داخل میله‌ی A باقی‌می‌ماند. با یک حرکت مهره‌ی n را به C منتقل می‌کنیم و با hn - 1 حرکت n - 1 مهره‌ی دیگر را از B به C انتقال می‌دهیم. پس مجموع حرکات برای چنین کاری برابر
hn-1 + 1 + hn-1 یعنی 2hn-1 + 1 خواهد بود. پس :


hn = 2hn-1 + 1     (1)A


می‌دانیم :


h1 = 1 , h2 = 3 , h4 = 7 , …A


با استفاده از رابطه‌ی بازگشتی (۱) معلوم می‌شود که :
برای حل مسأله مورد نظر الگوریتم زیر را پیاده می‌کنیم :
مهره‌ی ۱ را به میله‌ی ۳ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۲ را به میله‌ی ۱ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۱ را به میله‌ی ۱ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۴ را به میله‌ی ۳ منتقل می‌کنیم ( یک حرکت ).
مهره‌ی ۱ تا ۳ را به میله‌ی ۳ منتقل می‌کنیم (با توجه به لم , ۷ حرکت ).
پس مجموعأ ۱۱ حرکت می‌شود و با کمتر از این , ممکن نیست.

1391/10/27لينک مستقيم

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تاییدانصراف
 New Blog
شما بايد وارد شده واجازه ساخت و يا ويرايش وبلاگ را داشته باشيد.
 Blog Archive
 Blog List
Module Load Warning
One or more of the modules on this page did not load. This may be temporary. Please refresh the page (click F5 in most browsers). If the problem persists, please let the Site Administrator know.

 Account Login2