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

सी ++ प्रोग्राम बाइनरी वैल्यू का उपयोग करके हनोई समस्या के टॉवर को हल करने के लिए

यह C++ प्रोग्राम बाइनरी वैल्यू का उपयोग करके टॉवर ऑफ़ हनोई समस्या का समाधान प्रदर्शित करता है।

प्रत्येक डिस्क के लिए एक बाइनरी अंक होता है।

सबसे महत्वपूर्ण बिट सबसे बड़ी डिस्क का प्रतिनिधित्व करता है। 0 का मान इंगित करता है कि सबसे बड़ी डिस्क प्रारंभिक खूंटी पर है, जबकि 1 इंगित करता है कि यह अंतिम खूंटी पर है।

बिटस्ट्रिंग को बाएं से दाएं पढ़ा जाता है, और प्रत्येक बिट का उपयोग संबंधित डिस्क के स्थान को निर्धारित करने के लिए किया जा सकता है।

संबंधित डिस्क को पिछली डिस्क के ऊपर उसी पेग पर स्टैक किया जाता है यदि बिट का मान पिछले वाले के समान हो।

अगर यह अलग है तो इसका मतलब है कि संबंधित डिस्क पिछले वाले के बाईं या दाईं ओर एक स्थिति है।

एल्गोरिदम

Begin
   Take the number of disk n as input.
   Declare n and a.
   Make a for loop a = 1 to (1<<n) – 1
   //
   Here, (a & a – 1) = bitwise AND with a and a – 1.
      (a | a – 1) = bitwise OR with a and a – 1.
         Here % means modulus operator.
   //
   Print the result indicating that moving disks from peg number (a & a – 1) % 3 to peg number ((a | a – 1) + 1) % 3
End
में स्थानांतरित किया जा रहा है

उदाहरण

#include<iostream>
using namespace std;
int main() {
   int n, a;
   cout<<"\nEnter the no of Disks: ";
   cin>>n;
   for (a = 1; a < (1 << n); a++) {
      cout<<"\nDisk Move from Peg "<<(a&a-1)%3 <<" to Peg "<<((a|a-1)+1)%3;
   }
   cout<<"\n";
}

आउटपुट

Enter the no of Disks: 3
Disk Move from Peg 0 to Peg 2
Disk Move from Peg 0 to Peg 1
Disk Move from Peg 2 to Peg 1
Disk Move from Peg 0 to Peg 2
Disk Move from Peg 1 to Peg 0
Disk Move from Peg 1 to Peg 2
Disk Move from Peg 0 to Peg 2

  1. सी ++ प्रोग्राम में बाइनरी सर्च?

    द्विआधारी खोज, जिसे अर्ध-अंतराल खोज, लॉगरिदमिक खोज या बाइनरी चॉप के रूप में भी जाना जाता है, एक खोज एल्गोरिथ्म है जो एक क्रमबद्ध सरणी के भीतर लक्ष्य मान की स्थिति का पता लगाता है। बाइनरी खोज लक्ष्य मान की तुलना सरणी के मध्य तत्व से करती है। यदि वे समान नहीं हैं, तो आधा जिसमें लक्ष्य झूठ नहीं बोल सकत

  1. सी ++ प्रोग्राम बाइनरी सर्च का उपयोग करके एक ऐरे में अधिकतम तत्व खोजने के लिए

    बाइनरी सर्च ट्री का उपयोग करके किसी सरणी के अधिकतम तत्व को खोजने के लिए यह एक सी ++ प्रोग्राम है। इस कार्यक्रम की समय जटिलता O(log(n)) है। एल्गोरिदम Begin Construct the Binary Search Tree using the given data elements. Next traverse the root pointer to the rightmost child node available. Pr

  1. C++ प्रोग्राम डायनेमिक प्रोग्रामिंग का उपयोग करके नैकपैक समस्या को हल करने के लिए

    यह गतिशील प्रोग्रामिंग का उपयोग करके 0-1 knapsack समस्या को हल करने के लिए एक C++ प्रोग्राम है। 0-1 बस्ता समस्या में, वस्तुओं का एक सेट दिया जाता है, प्रत्येक का एक वजन और एक मूल्य होता है। हमें संग्रह में शामिल करने के लिए प्रत्येक आइटम की संख्या निर्धारित करने की आवश्यकता है ताकि कुल वजन दी गई सीम