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

C++ का उपयोग करके XOR शून्य वाले अद्वितीय ट्रिपलेट्स की संख्या खोजना


इस लेख में, हम दी गई अद्वितीय संख्याओं के एरे में अद्वितीय ट्रिपलेट्स (x, y, z) की संख्या गिनने पर चर्चा करेंगे जहां उनका XOR 0 है। इस प्रकार, ट्रिपलेट्स अद्वितीय होने चाहिए जहां सभी तीन तत्व अद्वितीय हों और ट्रिपलेट्स के सभी संयोजनों को गिनेंगे। उदाहरण के लिए:

इनपुट: arr[] = {5, 6, 7, 1, 3}
आउटपुट: 2
व्याख्या: ट्रिपलेट्स हैं {5, 6, 3} और {6, 7, 1} जिनका XOR शून्य है।

इनपुट: arr[] = {3, 6, 8, 1, 5, 4, 12}
आउटपुट: 3
व्याख्या: ट्रिपलेट्स हैं {3, 6, 5}, {1, 5, 4} और {4, 8, 12} जिनका XOR शून्य है।

समाधान का दृष्टिकोण

हम जानते हैं कि समान मानों का XOR हमेशा शून्य देता है। इसलिए हम अद्वितीय ट्रिपलेट्स ढूंढते हैं, एक आशावादी दृष्टिकोण लागू किया जा सकता है, जो एरे से दो मानों का XOR खोजने और परिणाम को स्टोर करने, और उस मान की खोज करने के लिए है जो एरे में परिणाम के बराबर हो। साथ ही, परिणाम का मान जोड़ों में किसी भी मान के बराबर नहीं होना चाहिए।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int main() {
    int arr[] = {3, 6, 8, 1, 5, 4, 12};
    int n = sizeof(arr) / sizeof(arr[0]);
    int result;
    // जोड़ों की गिनती रखने के लिए काउंट वेरिएबल।
    int count = 0;
    // अद्वितीय संख्याओं को स्टोर करने के लिए एक सेट बनाना।
    unordered_set values;
    // सेट में मान डालना।
    for (int i = 0; i < n; i++)
        values.insert(arr[i]);
    // XOR की गणना करने के लिए सभी जोड़ों को ट्रैवर्स करना।
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) { // i, j जोड़े का XOR ढूंढना।
            int XR = arr[i] ^ arr[j];
            // जांचना कि क्या जोड़े का XOR मान एरे में मौजूद है
            // और मान जोड़ों में नहीं होना चाहिए।
            if (values.find(XR) != values.end() && XR != arr[i] &&
                XR != arr[j])
                count++;
        }
    }
    // परिणाम स्टोर करना
    result = count / 3;
    cout << "अद्वितीय ट्रिपलेट्स की संख्या: " << result;
    return 0;
}

आउटपुट

अद्वितीय ट्रिपलेट्स की संख्या: 3

उपरोक्त कोड की व्याख्या

  • अद्वितीय संख्याओं को स्टोर करने के लिए unordered_set values का सेट बनाना।
  • values.insert(arr[i]) का उपयोग करके सेट में मान डालने के लिए for() लूप का उपयोग करना।
  • सभी जोड़ों के माध्यम से ट्रैवर्स करने और उनके XOR मान की गणना करने के लिए दो नेस्टेड लूप का उपयोग करना।
  • फिर, XOR मान को एरे में खोजें और काउंट बढ़ाएं यदि मान एरे में मिलता है और जोड़ों में नहीं।
  • परिणाम को count / 3 के रूप में स्टोर करना क्योंकि यह ट्रिपलेट्स के तीन संयोजनों को गिनेगा, और हमें अद्वितीय ट्रिपलेट्स की आवश्यकता है।

निष्कर्ष

इस लेख में, XOR मान 0 वाले ट्रिपलेट्स की संख्या खोजने पर चर्चा की गई; हमने अद्वितीय ट्रिपलेट्स खोजने के लिए एक आशावादी दृष्टिकोण पर चर्चा की। हमने इस समस्या को हल करने के लिए C++ प्रोग्राम पर भी चर्चा की। हालांकि, हम इस प्रोग्राम को Java, C, Python आदि किसी भी अन्य प्रोग्रामिंग भाषा में लिख सकते हैं। आशा है कि आपको यह लेख मददगार लगा होगा।

  1. C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना

    इस लेख में, आप एक दी गई स्ट्रिंग में बनने वाले सबस्ट्रिंग्स (गैर-खाली) की संख्या निकालने के दृष्टिकोण के बारे में जानेंगे।इनपुट: string = moon आउटपुट: 10 व्याख्या: सबस्ट्रिंग्स हैं m, o, o, n, mo, oo, on, moo, oon और moon। इनपुट: string = yellow आउटपुट: 21समाधान खोजने का दृष्टिकोणमान लें स्ट्रिंग की

  1. C++ का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात करें C++ का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात करें

    बिंदु X और Y के बीच n संख्या में इंटरमीडिएट ट्रेन स्टेशन हैं। उन विभिन्न तरीकों की गणना करें जिनसे ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई दो स्टेशन एक-दूसरे के बगल में न हों। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या ज्ञात करने के लिए हर संभव दृष्टिकोण की व्य

  1. C++ का उपयोग करके एक सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करें C++ का उपयोग करके एक सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करें

    इस लेख में, हम एक सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करने के दृष्टिकोणों की व्याख्या करेंगे। इस समस्या में, हमें संख्या n दी गई है, और n प्राकृतिक संख्याओं के एक सेट पर, हमें रिफ्लेक्सिव रिलेशंस की संख्या निर्धारित करनी है।रिफ्लेक्सिव रिलेशन - एक सेट A में एक रिलेशन को रिफ्लेक्सिव कहा जाता ह