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

एन बिट ग्रे कोड उत्पन्न करने के लिए एक बैकट्रैकिंग दृष्टिकोण?

इस खंड में हम देखेंगे कि हम बैकट्रैकिंग दृष्टिकोण का उपयोग करके n बिट्स के ग्रे कोड कैसे उत्पन्न कर सकते हैं? n बिट ग्रे कोड मूल रूप से 0 से 2^n - 1 तक के बिट पैटर्न होते हैं जैसे कि क्रमिक पैटर्न एक बिट से भिन्न होते हैं। तो n =2 के लिए, ग्रे कोड (00, 01, 11, 10) हैं और दशमलव समतुल्य (0, 1, 3, 2) है। प्रोग्राम ग्रे कोड मानों के बराबर दशमलव उत्पन्न करेगा।

एल्गोरिदम

ग्रे उत्पन्न करें(arr, n, num)

begin
   if n = 0, then
      insert num into arr
      return
   end if
   generateGray(arr, n-1, num)
   num := num XOR (1 bit left shift of n-1)
   generateGray(arr, n-1, num)
end

उदाहरण

#include<iostream>
#include<vector>
using namespace std;
void generateGray(vector<int>&arr, int n, int &num){
   if(n==0){
      arr.push_back(num);
      return;
   }
   generateGray(arr, n-1, num);
   num = num ^ (1 << (n-1));
   generateGray(arr, n-1, num);
}
vector<int> gray(int n){
   vector<int> arr;
   int num = 0;
   generateGray(arr, n, num);
   return arr;
}
main() {
   int n;
   cout << "Enter number of bits: ";
   cin >> n;
   vector<int> grayCode = gray(n);
   for(int i = 0; i<grayCode.size(); i++){
      cout << grayCode[i] << endl;
   }
}

आउटपुट

Enter number of bits: 3
0
1
3
2
6
7
5
4

  1. बैकट्रैकिंग का परिचय

    बैकट्रैकिंग समस्या को हल करने के लिए एल्गोरिदम पर आधारित एक तकनीक है। यह समय के साथ बढ़ते हुए मूल्यों द्वारा समाधान चरण बनाकर समाधान खोजने के लिए पुनरावर्ती कॉलिंग का उपयोग करता है। यह उन समाधानों को हटा देता है जो समस्या को हल करने के लिए दी गई बाधाओं के आधार पर समस्या के समाधान को जन्म नहीं देते ह

  1. Mac पर 2FA कोड जेनरेट करने के लिए 5 सर्वश्रेष्ठ ऑथेंटिकेटर ऐप्स

    अपने ऑनलाइन खातों को दो-कारक प्रमाणीकरण (2FA) के साथ सुरक्षित करना चाहते हैं? फिर आपको सेटअप प्रक्रिया के दौरान प्रासंगिक क्यूआर कोड को स्कैन करने के लिए एक प्रमाणक ऐप की आवश्यकता होगी। ऐसा ऐप आपके 2FA-सक्षम खातों को अनलॉक करने के लिए आपके लॉगिन पासवर्ड के अतिरिक्त समय-आधारित, वन-टाइम पासवर्ड (TOTP)

  1. अपने सोशल मीडिया प्रोफाइल के लिए प्रिंट करने योग्य क्यूआर कोड जेनरेट करें

    इन दिनों किसी ऐसे व्यक्ति के बारे में कल्पना करना कठिन है जिसकी सोशल मीडिया पर मौजूदगी नहीं है। हम अपने सोशल मीडिया अकाउंट्स का इस्तेमाल खुद को प्रमोट करने के लिए करते हैं या दूसरे शब्दों में कहें तो अगर कोई हमारे बारे में और जानना चाहता है तो वह हमारे सोशल मीडिया अकाउंट्स पर जा सकता है। हम अक्सर अ