इस लेख में हम समीकरण n =x + n x के हल की संख्या ज्ञात करने जा रहे हैं, अर्थात हमें दिए गए मान n के साथ संभव x के मानों की संख्या ज्ञात करने की आवश्यकता है जैसे कि n =x + n ⊕ x जहां XOR ऑपरेशन का प्रतिनिधित्व करता है ।
अब हम उपयुक्त उदाहरणों के साथ n =x + n x के हलों की संख्या के संबंध में पूरी जानकारी पर चर्चा करेंगे।
ब्रूट फ़ोर्स मेथड
हम समाधान की संख्या ज्ञात करने के लिए ब्रूट फोर्स दृष्टिकोण का सरल उपयोग कर सकते हैं, अर्थात n के दिए गए मान के लिए हम 0 से शुरू होने वाले x के प्रत्येक पूर्णांक मान को लागू करते हैं और सत्यापित करते हैं कि समीकरण संतुष्ट है या नहीं, x का मान इससे कम या बराबर होना चाहिए n क्योंकि (n ⊕ x) के साथ n से बड़ा मान जोड़ने पर उत्तर के रूप में n कभी वापस नहीं आएगा।
उदाहरण
n =3 के लिए x का एक मान ज्ञात कीजिए?
n = x + n ⊕ x Putting x = 0, 3 = 0 + 3 ⊕ 0 3 ⊕ 0 = 3, 3 = 3 LHS = RHS(x = 0 satisfy the equation) So, x = 0 is one of the solution
उदाहरण
#include <bits/stdc++.h> using namespace std; int main(){ int n = 3, c=0; for (int x = 0; x <= n; ++x)// loop for giving value of x from 0 to n if (n == x + n ^ x)//checking if value of x satisfies the equation ++c; cout << "Number of possible solutions : " << c; return 0; }
आउटपुट
Number of possible solutions : 4
ब्रूट फ़ोर्स विधि लागू करके n =x + n x के हलों की संख्या ज्ञात करने के लिए यह सरल C++ प्रोग्राम है।
कुशल दृष्टिकोण
इस दृष्टिकोण में, यदि हम n . को देखें बाइनरी रूप में, हमें 1 पर सेट बिट्स की संख्या को खोजने की आवश्यकता है, और समीकरण को देखते हुए, हम कह सकते हैं कि यदि n सेट है, तो या तो x सेट किया जाएगा या n ⊕ x सेट किया जाएगा क्योंकि 1 ⊕ 1 =0। इसका मतलब है कि n ⊕ x में यह सेट नहीं है, इसलिए अब हम n में प्रत्येक सेट बिट के लिए क्रमपरिवर्तन की संख्या का निष्कर्ष निकाल सकते हैं, अर्थात, 2^(सेट बिट्स की संख्या) )।
उदाहरण
#include <bits/stdc++.h> using namespace std; int main (){ int n = 3, no_of_setbits = 0; // initialising n with value and taking count of set bits as 0 while (n != 0){ no_of_setbits = no_of_setbits + (n % 2); // checking if num contains set bit. n = n / 2; } int result = 1 << no_of_setbits; // calculating no. of possible solution with 2^setbits cout << " Number of possible solutions : " << result; return 0; }
आउटपुट
Number of possible solutions : 4
कार्यक्रम की जटिलता
इस दृष्टिकोण की समय जटिलता ओ (एन) है, क्योंकि हम यहां ब्रूट फोर्स लागू कर रहे हैं। हम कार्यक्रम की दक्षता में सुधार के लिए अधिक कुशल तरीके लागू कर सकते हैं।
निष्कर्ष
इस लेख में, हम कई समाधान खोजने के लिए एक समस्या का समाधान करते हैं -
एन =एक्स + एन एक्स। हमने इस समस्या के लिए C++ प्रोग्राम और पूरा तरीका भी सीखा जिसके द्वारा हमने इस समस्या को हल किया। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। आशा है कि आपको यह लेख मददगार लगा होगा।