• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

برج هانوی

mahs

Registered User
تاریخ عضویت
23 اکتبر 2006
نوشته‌ها
310
لایک‌ها
74
با سلام خدمت کاربران محترم سایت و عرض خسته نباشید:

برج هانوی یکی از زیباترین وپر اهمیت ترین مسائل در ریاضی و ساختمان داده ها میباشد.
ازدوستان و استادانی که این برنامه را دارند(به هر زبانی C++,C,Java,pascal…) یا توانایی نوشتن آن را دارند خواهش می کنم به من کمک کنند. حل این مسئله برای من بسیار مهم است.
توضیحاتی درباره ی برج هانوی:



48mmn1l.jpg



1- در هر انتقال تنها یک حلقه را می توانیم انتقال دهیم.
2- در هیچ کدام از میله ها نمی توانیم یک حلقه بزرگتر را بر روی یک حلقه کوچکتر قرار دهیم.
متن پروژه: می خواهیم با توجه به قوانین فوق تعداد انتقال ها را برای N حلقه(حداقل تاn=80 جواب دهد.) چاپ کنیم (در صورت امکان هم به صورت بازگشتی (recursive) و هم غیر بازگشتی نوشته شود.)
فرم جواب به این صورت است:
1from A to B
2from A to C
1from B to C
... ... ..... .....
... ... .... .... ..
... .... .... ... .


با کمال تشکر
 

mahs

Registered User
تاریخ عضویت
23 اکتبر 2006
نوشته‌ها
310
لایک‌ها
74
منتظرم،منتظر
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
نوشتن بازگشتی خیلی ساده است ولی تا حالا به نوشتن غیر بازگشتی فکر نکردم
برای نوشتن بازگشتی این طوری
شما n حلقه توی برج 1 دارید و قراره اینها به برج 3 برن اینکار باید با کمک برج 2 انجام بشه برای اینکار باید n-1 حلقه رو توی برج 2 بزراید و حلقه اخر رو توی برج 3 و بعد N-1 حلقه رو از برج 2 به برج 1 منتقل کنید حالا مسئله فرق کرد
مسئله این شد که چطور n-1 حلقه رو به برج 2 انتقال بدیم و این کار باکمک برج 3 انجام بشه برای اینکار باید n-2 به برج 3 و حلقه N-1 به برج 2 وبقیه دوبهراه به برج 2 منتقل بشن باز مسئله فرق کرد مسئله اینکه چطور N-2 حلقه رو از برج 1 به برج 3 ببریم و....
همین طور اینقدر پیش می یریم که مسئله بشه انتقال یه حلقه از یه برج به برج دیگه که حل اون هم معلومه
 

mahs

Registered User
تاریخ عضویت
23 اکتبر 2006
نوشته‌ها
310
لایک‌ها
74
نوشتن بازگشتی خیلی ساده است ولی تا حالا به نوشتن غیر بازگشتی فکر نکردم
برای نوشتن بازگشتی این طوری
شما n حلقه توی برج 1 دارید و قراره اینها به برج 3 برن اینکار باید با کمک برج 2 انجام بشه برای اینکار باید n-1 حلقه رو توی برج 2 بزراید و حلقه اخر رو توی برج 3 و بعد N-1 حلقه رو از برج 2 به برج 1 منتقل کنید حالا مسئله فرق کرد
مسئله این شد که چطور n-1 حلقه رو به برج 2 انتقال بدیم و این کار باکمک برج 3 انجام بشه برای اینکار باید n-2 به برج 3 و حلقه N-1 به برج 2 وبقیه دوبهراه به برج 2 منتقل بشن باز مسئله فرق کرد مسئله اینکه چطور N-2 حلقه رو از برج 1 به برج 3 ببریم و....
همین طور اینقدر پیش می یریم که مسئله بشه انتقال یه حلقه از یه برج به برج دیگه که حل اون هم معلومه


ممنون،

میشه تو نوشتن سورس برنامه هم کمک کنید.:rolleyes:
 

Mahiar0

کاربر افتخاری سئو و معرفی سایتها
تاریخ عضویت
20 جولای 2004
نوشته‌ها
10,341
لایک‌ها
1,210
محل سکونت
رشت

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
اگه جای خاصی مشکل دارید بگید راهنمایی کنم وگرنه یکی دو روز صبر کنید براتون می نویسم
 

مسعود اقدسی فام

کاربر تازه وارد
تاریخ عضویت
30 دسامبر 2008
نوشته‌ها
5
لایک‌ها
0
سن
39
سلام

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

 

nasim dj

کاربر تازه وارد
تاریخ عضویت
14 می 2010
نوشته‌ها
1
لایک‌ها
0
سلام

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


سلام ببخشید استادمون گفتن برنامه ای بنویسید که برج ها هانوی را هم به روش بازگشتی و هم غیر بازگشتی حل کنه میشه کمکم کنین و الگوریتمشو برام بفرستین ممنون میشم
 
بالا