Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

टावर ऑफ हनोई समस्या


परिचय

टावर ऑफ हनोई एक पहेली समस्या है। जहां हमारे पास तीन स्टैंड और n डिस्क हैं। प्रारंभ में, डिस्क पहले स्टैंड में रखी जाती हैं। हमें डिस्क को तीसरे या गंतव्य स्टैंड में रखना है, दूसरा या सहायक स्टैंड सहायक स्टैंड के रूप में उपयोग किया जा सकता है।

लेकिन पालन करने के लिए कुछ नियम हैं:

  • हम प्रत्येक चाल के लिए केवल एक डिस्क स्थानांतरित कर सकते हैं।
  • केवल सबसे ऊपर की डिस्क को एक स्टैंड से उठाया जा सकता है।
  • कोई बड़ी डिस्क छोटी डिस्क के ऊपर नहीं रखी जाएगी।

इस समस्या को पुनरावृत्ति द्वारा आसानी से हल किया जा सकता है। सबसे पहले, पुनरावृत्ति का उपयोग करके शीर्ष (n-1) डिस्क को स्रोत से सहायक स्टैंड पर रखा जाता है, फिर अंतिम डिस्क को स्रोत से गंतव्य पर रखें, फिर फिर से (n-1) डिस्क को सहायक स्टैंड से गंतव्य स्टैंड पर पुनरावृत्ति द्वारा रखें।

इनपुट और आउटपुट

इनपुट: डिस्क की संख्या: 3
आउटपुट:
1. Move disk 1 from A to C
2. Move disk 2 from A to B
3. Move disk 1 from C to B
4. Move disk 3 from A to C
5. Move disk 1 from B to A
6. Move disk 2 from B to C
7. Move disk 1 from A to C

एल्गोरिदम

toh(n, s, a, d)
इनपुट: डिस्क की संख्या, स्रोत, सहायक, गंतव्य
आउटपुट: उचित नियमों को बनाए रखते हुए स्रोत से गंतव्य तक डिस्क ले जाने के चरण

Begin
    यदि n = 1, तो
        s से d में डिस्क ले जाने का प्रदर्शन करें
    toh(n-1, s, d, a)
    s से d में डिस्क ले जाने का प्रदर्शन करें
    toh(n-1, a, s, d)
End

उदाहरण (C++ कोड)

#include <iostream>
using namespace std;

void TOH(int n, char s, char a, char d) {
    static int count = 0; // चालों की संख्या संग्रहीत करें
    if (n == 1) {
        count++;
        cout << count << ". Move disk " << n << " from " << s << " to " << d << endl;
        return; // आधार मामला, जब केवल एक डिस्क हो
    }
    TOH(n-1, s, d, a); // पुनरावर्ती कॉल फंक्शन
    count++;
    cout << count << ". Move disk " << n << " from " << s << " to " << d << endl;
    TOH(n-1, a, s, d);
}

int main() {
    int n;
    cout << "Enter the number of disks: "; cin >> n;
    TOH(n, 'A', 'B', 'C');
}

आउटपुट

Enter the number of disks: 3
1. Move disk 1 from A to C
2. Move disk 2 from A to B
3. Move disk 1 from C to B
4. Move disk 3 from A to C
5. Move disk 1 from B to A
6. Move disk 2 from B to C
7. Move disk 1 from A to C
  1. विंडोज 10 हाई CPU और डिस्क उपयोग को ठीक करें: त्वरित, विश्वसनीय चरण विंडोज 10 हाई CPU और डिस्क उपयोग को ठीक करें: त्वरित, विश्वसनीय चरण

    उपयोगकर्ता वर्तमान में रिपोर्ट कर रहे हैं कि उनका सिस्टम 100% डिस्क उपयोग और बहुत उच्च मेमोरी उपयोग दिखाता है भले ही वे कोई मेमोरी-इंटेंसिव कार्य नहीं कर रहे हों। जबकि कई उपयोगकर्ता मानते हैं कि यह समस्या केवल कम कॉन्फिगरेशन वाले पीसी (कम सिस्टम स्पेसिफिकेशन) वाले उपयोगकर्ताओं से संबंधित है, लेकिन य

  1. विंडोज ने हार्ड डिस्क समस्या का पता लगाया - त्वरित समाधान गाइड विंडोज ने हार्ड डिस्क समस्या का पता लगाया - त्वरित समाधान गाइड

    विंडोज ने हार्ड डिस्क समस्या का पता लगाया - ठीक करें: यदि आपने हाल ही में विंडोज का अपना संस्करण अपग्रेड किया है तो संभावना है कि आप इस त्रुटि संदेश Windows detected a hard disk problem का सामना कर रहे हों। यह त्रुटि संदेश लगातार पॉप अप होता है और यह देखने के बाद आपका कंप्यूटर फ्रीज या अटक जाएगा। त

  1. विंडोज 10, 8.1, और 7 में 100% डिस्क उपयोग को हल करें - 5 सिद्ध सुधार विंडोज 10, 8.1, और 7 में 100% डिस्क उपयोग को हल करें - 5 सिद्ध सुधार

    यदि आप विंडोज 10 अपडेट इंस्टॉल करने के बाद विंडोज 10 को अच्छा प्रदर्शन नहीं करते हुए अनुभव करते हैं, जैसे सिस्टम स्टार्टअप पर फ्रीज होता है या एप्लिकेशन आपके क्लिक का जवाब नहीं देते। और टास्क मैनेजर पर जांच करने पर आप पा सकते हैं कि आपका सिस्टम ड्राइव 100 पर चल रहा है, जो ऑपरेटिंग सिस्टम को धीमा कर