1 / 14

تهیه کننده : لیلا فلزی استاد مربوطه: استاد توفیقی درس: طراحی الگوریتمها

تهیه کننده : لیلا فلزی استاد مربوطه: استاد توفیقی درس: طراحی الگوریتمها. Tower of hanoi. برج هانوی. مساله برج هانوی یکی از مسائل تاریخی مشهور است که درمباحث طراحی الگوریتم نیز به آن پرداخته می شود. به شکل زیر توجه کنید:.

corine
Download Presentation

تهیه کننده : لیلا فلزی استاد مربوطه: استاد توفیقی درس: طراحی الگوریتمها

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. تهیه کننده : لیلا فلزیاستاد مربوطه: استاد توفیقیدرس: طراحی الگوریتمها

  2. Tower of hanoi برج هانوی

  3. مساله برج هانوی یکی از مسائل تاریخی مشهور است که درمباحث طراحی الگوریتم نیز به آن پرداخته می شود. به شکل زیر توجه کنید:

  4. سه میله- میله مبدا A, میله کمکی B و میله مقصد c – و تعدادی دیسک در میله مبدا داریم . هدف انتقال تمام دیسک ها از این میله به میله مقصد با رعایت دو شرط زیر است : در هر زماه فقط یک دیسک را می توان جابجا نمود. نباید در هیچ زمانی دیسکی بر روی دیسک با اندازه کوچکتر قرار بگیرد.

  5. به عنوان مثال, اگر n=2 باشد:

  6. 1) دیسک 1 را به میله B منتقل می کنیم)(BA:

  7. 2) دیسک 2 را به میله C منتقل می کنیم)(CA :

  8. 3) دیسک 1 را به میله C منتقل می کنیم)(CB :

  9. حل بازگشتی مساله برج هانوی مرحله یک : n-1 دیسک بالایی میله مبدا با شرایط ذکر شده و به کمک میله C به میله B منتقل می شوند . مرحله دو : بزرگترین دیسک از میله مبدا به میله مقصد منتقل می شود. مرحله سه : n-1 دیسک میله B با کمک گرفتن از میله Aبه میله مقصد منتقل می شوند.

  10. تابع بازگشتی زیر به زبان C++ ترتیب حرکت ها را چاپ می کند : Void hanoi(intnDisk, char start, char temp, char finish ) { If(nDisk== 1) { Cout<<start<<“-->”<<finish<<end; } Else { Hanoi(nDisk-1,start,finish,temp); Cout <<start<<“-->”<<finish<<end; Hanoi(nDisk-1,tempt,start,finish); } }

  11. تحلیل پیچیدگی زمانی مساله برج هانوی T(n)=2T(n-1)+1 T(n) تعداد حرکت های لازم جهت انتقال n دیسک به مقصد T(n-1) حرکت برای انتقال n-1 دیسک به میله کمکی 1-T(n)=2ᴺ یک حرکت برای انتقال بزرگترین دیسک به میله مقصد O(2ᴺ) T(n-1) حرکت برای انتقال n-1 دیسک موجود در میله کمکی به میله مقصد

  12. حل غیر بازگشتی مساله برج هانوی Void hanoi(intnDisk,charstart,chartemp,char finish) { Int max = nDisk; Char dest = finish; Int disk = max; While(true) { While(disk>0) {if(moving disk succeeds) { If(disk== max) { Max - - ;

  13. If (max ==0) { Return; } } Dest=the final place of max ; } Else { Dest=the alternative place between dest and the current place of disk ; } Disk - - ; } P and q =the places different of dest ; Disk=the smaller of the disks on top of p and q ; Dest=the place between p and q with greater disk on top ;

  14. بد نیست بدانید که : معمای حلقه های برج هانوی (Hanoi Tower) بنا بر افسانه ای، در محوطه معبدی در آسیای دور سه میله الماسی قرار داشت که یکی از آنها حاوی تعدادی قرص طلایی بود. کاهنان معبد در تلاش بودند تا قرص‌های طلائی را از آن میله به یکی دیگر از میله‌ها تحت شرایطی انتقال دهند، و باور داشتند که با تمام شدن انتقال قرص‌ها عمر جهان نیز به پایان خواهد رسید! میله اولیه ۶۴ قرص داشت، که بر روی هم به طور نزولی بر اساس اندازه‌شان چیده شده‌بودند.از رابطه 2 n - 1 تعداد حداقل حرکت ممکن برای انتقال n حلقه بدست می آید. با توجه به رابطه فوق و تعداد حلقه های معبد کاهنان، رقمی به دست می آید که شاید بی دلیل نبود کاهنان باور داشتند با انتقال همه حلقه ها عمر جهان نیز به پایان خواهد رسید. این رقم به اندازه های بزرگ است که اگر فرض کنیم کاهنان آن معبد و همه نسل های بعدی آنها بی وقفه هر ثانیه 1 حلقه را انتقال دهند، با انجام تعداد حداقل 18446744073709551616 حرکت و پس از 585،000،000،000 (585 میلیارد) سال تمامی حلقه ها را می توانسنتد به ستون سوم انتقال دهند!

More Related