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

C++ का उपयोग करके किसी सरणी में अद्वितीय युग्मों की संख्या ज्ञात कीजिए

C++ में सरणी सिंटैक्स में कई अद्वितीय जोड़े बनाने के लिए हमें उपयुक्त ज्ञान की आवश्यकता होती है। अद्वितीय युग्मों की संख्या ज्ञात करने में, हम दिए गए सरणी में सभी अद्वितीय युग्मों की गणना करते हैं, अर्थात्, सभी संभावित जोड़े बनाए जा सकते हैं जहाँ प्रत्येक जोड़ी अद्वितीय होनी चाहिए। उदाहरण के लिए -

Input : array[ ] = { 5, 5, 9 }
Output : 4
Explanation : The number of all unique pairs are (5, 5), (5, 9), (9, 5) and (9, 9).

Input : array[ ] = { 5, 4, 3, 2, 2 }
Output : 16

समाधान खोजने के लिए दृष्टिकोण

इस समाधान के लिए दो दृष्टिकोण हैं और वे हैं -

क्रूर फ़ोर्स अप्रोच

इस उपागम में, हम प्रत्येक संभावित युग्म को पार करेंगे, उन युग्मों को एक समुच्चय में जोड़ेंगे, और अंत में समुच्चय का आकार ज्ञात करेंगे। इस दृष्टिकोण की समय जटिलता O(n2 log n) है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int main () {
   int arr[] = { 5, 4, 3, 2, 2 };
   int n = sizeof (arr) / sizeof (arr[0]);
   // declaring set to store pairs.
   set < pair < int, int >>set_of_pairs;

   for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
         set_of_pairs.insert (make_pair (arr[i], arr[j]));

   int result = set_of_pairs.size();

   cout <<"Number of unique pairs : " << result;
   return 0;
}

आउटपुट

Number of unique pairs : 16

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

इस कोड में, पहले, हम एक सेट वेरिएबल घोषित करते हैं, और फिर, दो लूप का उपयोग करके, हम प्रत्येक संभावित जोड़ी के माध्यम से ट्रैवर्स कर रहे हैं और i और j का उपयोग करके सेट में प्रत्येक जोड़ी को सम्मिलित कर रहे हैं। फिर हम सेट के आकार की गणना कर रहे हैं और परिणाम प्रिंट कर रहे हैं।

कुशल दृष्टिकोण

एक अन्य तरीका यह है कि पहले किसी सरणी में अद्वितीय संख्याओं की संख्या ज्ञात की जाए; अब, प्रत्येक अन्य अद्वितीय तत्व, स्वयं सहित, किसी अन्य अद्वितीय तत्व के साथ एक जोड़ी बना सकता है, इसलिए अद्वितीय जोड़े की संख्या सभी अद्वितीय संख्याओं की संख्या के वर्ग के बराबर होती है। उनके दृष्टिकोण की समय जटिलता O(n) है।

उदाहरण

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

int main () {
   int arr[] = { 5, 4, 3, 2, 2 };
   int n = sizeof (arr) / sizeof (arr[0]);

   // declaring set to store unique elements.

   unordered_set < int >set_of_elements;
   // inserting elements in the set.
   for (int i = 0; i < n; i++)
      set_of_elements.insert (arr[i]);

   int size = set_of_elements.size ();
   // finding number of unique pairs
   int result = size * size;

   cout << "Number of unique pairs in an array: " << result;
   return 0;
}

आउटपुट

Number of unique pairs : 16

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

इस कोड में, हम एक सेट घोषित करते हैं और फिर सेट में प्रत्येक तत्व को सम्मिलित करते हुए सरणी के प्रत्येक तत्व के माध्यम से जाते हैं। उसके बाद, हमने सेट के आकार की गणना की और सूत्र n2 से परिणाम पाया, और आउटपुट को प्रिंट किया।

निष्कर्ष

इस लेख में, हम एक सरणी में अद्वितीय जोड़े की संख्या खोजने की समस्या को हल करते हैं जहां हम समस्या को हल करने के दो तरीकों पर चर्चा करते हैं, यानी सरल और कुशल। एक सरल दृष्टिकोण में, हम O(n2 log n) की समय जटिलता के साथ एक सेट में सभी संभावित जोड़े सम्मिलित करते हैं, और एक कुशल दृष्टिकोण में, हम सभी अद्वितीय संख्याएँ पाते हैं और n2 के साथ परिणाम पाते हैं। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। आशा है कि आपको यह लेख मददगार लगा होगा।


  1. C++ का उपयोग करके पंचकोणीय पिरामिड संख्या ज्ञात कीजिए

    एक पंचकोणीय पिरामिड संख्या एक पंचकोणीय आधार पिरामिड में मदों की संख्या के बराबर होती है। नीचे कुछ पंचकोणीय संख्याओं को देखें। N तक पंचकोणीय संख्याओं का योग Nवीं पंचकोणीय पिरामिड संख्या के बराबर होता है। इस लेख में, हम उदाहरण के लिए, Nth पंचकोणीय पिरामिड संख्या खोजने पर चर्चा करेंगे Input : N = 4

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

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

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

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