কম্পিউটার

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++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে একটি অ্যারেতে জোড়ার সংখ্যা খুঁজুন যাতে তাদের XOR 0 হয়।