الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برج هانوي towar of hanio

مغلق
بدأه aimn_2004 في 22 ديسمبر 2006 · 5 رد · 2,906 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني الكرام

الرجاء مساعدتي في حل لهده المشكلة

اريد برنامج يمثل لي انتقال الاقراص بين ثلاث اعمدة اي

يوجد ثلات اقراص وتلات اعمدة العمود الاول توجد به جميع الاقراص اريد برنامج يوضح لي هذه العملية انتقال الاقراص من العمد الاول الى العمود التاللت

واشكر لكم حسن تعاونكم

الرجاء المساعدة في اقرب وقت

الساحر

#2

السلام عليكم

من فضلك يا اخي

ماذا تريد بالضبط :

1- ان تفهم كيفية انتقال الاقراص من العمود الاول الى العمود الثالث

او

2-برنامج c الذي يقوم بالعملية

اشهد ان لا اله الا الله اشهد ان محمدا رسول الله

تحيا مولودية العلمة

#3

البرنامج بلغة السي الدي يقوم بهده العملية لو ممكن

الساحر

#4

السلام عليكم ورحمة الله وبركاته

لا تتوقع اخي ان تجد حلا للمسألة من الاعضاء هنا بدون عرض محاولاتك وطلب المساعدة فيها , لانهم يحاولوا قدر الامكان مساعدك وليس الضحك عليك , لان من يساعدك بالحل ويضع يده بيدك لتتوصل إلى الحل يكون قد قدم لك المساعدة بصورة صحيحة , اما من يقدم لك الحل مباشرة لتجده امام اعينك دون ان تفهم كيف ولماذا قمنا بذلك فهذا اسمحلي اكرر ماقلت " يضحك عليك " .

لكن ساكتب الان توضيح لآلية ابراج هانوي لعلك تجد من يساعدك .

ابراج هانوي

تقول القصة بانه يوجد في احد معابد الشرق الاقصى البعيد مجموعة من الرهبان تقوم بنقل عدد من الاقراص المكدسة فوق بعضها البعض من قضيب إلى اخر . يبلغ عدد الاقراص 64 قرصا وهي تختلف باطوال الاقطار في ما بينها , كانت هذه الاقراص بالبداية مكدسة حول قضيب واحد ومرتبة من الاسف إلى الاعلى حسب التسلسل المتناقص لطول القطر لكل منها , يقوم الرهبان بتحيرك هذه الاقراص ونقلها إلى قضيب آخر باستخدام قضيب ثالث مساعد بشروط :

1- يجب نقل قرص واحد كل مرة .

2- لايمكن وضع قرص ذو قطر اكبر فوق قرص له قطر اصغر .

3-يستخدم القضيب الثالث للاحتفاظ بالاقراص بشكل مؤقت .

حل المسألة :

الطريقة المثلى في الحل هو استخدام العودية Recursive functions او الدوال المعاده .

عملية نقل n قرص كتابع لعملية نقل n-1 قرص تكون على الشكل التالي:

ننقل N-1 قرص من القضيب 1 إلى القضيب 2 باستخدام القضيب 3 كقضيب مساعد للاحتفاظ المؤقت بالاقراص . ننقل بعدها القرص الاكبر من القضيب 1 إلى القضيب 3 .

عنيد عملية نقل قرص n-1 من القضيب 2 إلى القضيب 3 باستخدام القضيب 1 على انه مساعد للاحتفاظ المؤقت .

تنتهي العملية عندا تصبح قيمة n=1 والتي تعني نقل القرص مباشرة بدون الحاجة إلى قضيب مساعد .

تقبلوا تحياتي

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#5

السلام عليكم اخواني

ارجو المساعدة بسرعة الباين انو ما فيه احد مهتم بهذا الموضوع انا عارفه تافه بس والله ضروري عاوزظ الكود بالسي

الساحر

هذا الموضوع مغلق.

مواضيع مشابهة