برج هانوي
مرحباً!
اليوم أود التحدث عن “برج هانوي” مع تقديم مثال لبرنامج باستخدام لغة Python.
ما هو برج هانوي؟
برج هانوي هو لغز يتكون من ثلاثة أعمدة وعدة أقراص. تختلف الأقراص في الحجم، وفي البداية تكون مكدسة على عمود واحد بترتيب تنازلي للحجم من الأسفل إلى الأعلى. القواعد هي كما يلي:
- يمكن نقل قرص واحد فقط في كل مرة.
- لا يمكن وضع قرص كبير فوق قرص أصغر منه.
يُعتبر هذا اللغز مادة ممتازة لتعلم التفكير العودي (Recursion). العودية هي طريقة لحل مشكلة عن طريق تقسيمها إلى مشاكل أصغر من نفس النوع. في برج هانوي، لتحريك n من الأقراص، نكرر عملية تحريك n-1 من الأقراص.
دعونا نحل برج هانوي باستخدام Python
فيما يلي نموذج لشفرة برمجية بلغة Python لحل لغز برج هانوي.
| |
في هذه الشفرة، يتم استدعاء الدالة hanoi بشكل عودي، وتُعرض خطوات تحريك الأقراص. على سبيل المثال، في حالة وجود 3 أقراص، سيتم الحصول على المخرجات التالية:
| |
بهذه الطريقة، باستخدام النهج العودي، يمكن حل المشاكل المعقدة ببساطة.
كم من الوقت يستغرق تحريك 64 قرصاً؟
الحد الأدنى لعدد الحركات في برج هانوي هو 2^n - 1 حركة. هذا يعني أنه لتحريك 64 قرصاً، يجب القيام بـ 2^64 - 1، أي حوالي 1.84×10^19 حركة. حتى لو كان بإمكاننا القيام بحركة واحدة كل ثانية، سيستغرق الأمر حوالي 584 مليار سنة. هذا يعادل تقريباً 42 ضعف عمر الكون (حوالي 13.7 مليار سنة).
لذلك، مع زيادة عدد الأقراص، يزداد عدد الحركات المطلوبة بشكل أُسّي. وبالتالي، فإن تحريك 64 قرصاً فعلياً ليس أمراً واقعياً.
خاتمة
برج هانوي هو لغز ممتاز لتعلم التفكير العودي. باستخدام Python، يمكن بسهولة تنفيذ حله. ومع ذلك، يجب الحذر لأن عدد الحركات المطلوبة يزداد بشكل كبير مع زيادة عدد الأقراص.
من خلال فهم النهج العودي وكتابة الشفرة بنفسك، يمكنك تحسين مهاراتك في البرمجة. لا تتردد في خوض تحدي برج هانوي.
