কম্পিউটার টিউটোরিয়াল

C++ দিয়ে অ্যারেতে অনন্য জোড়ার (Unique Pairs) সংখ্যা বের করা

একটি অ্যারেতে কতগুলো অনন্য জোড়া (unique pairs) তৈরি করা যায় তা বের করার জন্য C++-এর উপযুক্ত জ্ঞান প্রয়োজন। অনন্য জোড়ার সংখ্যা বের করার মানে হলো অ্যারেতে থেকে বने যেকোনো দুটি উপাদানের যোড়া (ordered pair), যেখানে প্রতিটি জোড়া অনন্য হবে। উদাহরণস্বরূপ −

ইনপুট: array[] = { 5, 5, 9 } আউটপুট: 4 ব্যাখ্যা: সব অনন্য জোড়া হলো (5, 5), (5, 9), (9, 5) এবং (9, 9)।
ইনপুট: array[] = { 5, 4, 3, 2, 2 } আউটপুট: 16
সমাধানের পদ্ধতি

এই সমস্যা সমাধানের দুটি পদ্ধতি আছে −

ব্রুট ফোর্স পদ্ধতি

এই পদ্ধতিতে, আমরা প্রতিটি সম্ভাব্য জোড়া ট্রাভার্স করব, সেগুলো একটি সেট (set) রাখব, এবং শেষে সেটের সাইজ দেখব। এই পদ্ধতির টাইম কমপ্লেক্সিটি O(n² 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]);     // জোড়া রাখার জন্য সেট ডিক্লেয়ার     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
কোডের ব্যাখ্যা

এই কোডে, প্রথমে একটি সেট ভেরিয়েবল ডিক্লেয়ার করা হয়েছে। তারপর দুটি লুপ দিয়ে প্রতিটি সম্ভাব্য জোড়া ট্রাভার্স করে সেটে ইনসার্ট করা হয়েছে। অবশেষে সেটের সাইজ বের করে ফলাফল প্রিন্ট করা হয়েছে।

দক্ষ পদ্ধতি

অন্য একটি পদ্ধতি হলো প্রথমে অ্যারেতে কতগুলো অনন্য উপাদান আছে তা বের করা। যেহেতু প্রতিটি অনন্য উপাদান অন্য যেকোনো অনন্য উপাদানের সাথে (নিজস্ব সহ) জোড়া বানাতে পারে, তাই অনন্য জোড়ার মোট সংখ্যা = (অনন্য উপাদানের সংখ্যা)²। এই পদ্ধতির টাইম কমপ্লেক্সিটি 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]);     // অনন্য উপাদান রাখার জন্য আনঅর্ডার্ড সেট     unordered_set < int > set_of_elements;     // উপাদানগুলো সেটে ইনসার্ট     for (int i = 0; i < n; i++)       set_of_elements.insert (arr[i]);     int size = set_of_elements.size ();     // অনন্য জোড়ার সংখ্যা = size * size     int result = size * size;     cout << "Number of unique pairs in an array: " << result;     return 0; }
আউটপুট
Number of unique pairs : 16
কোডের ব্যাখ্যা

এই কোডে, একটি সেট ডিক্লেয়ার করে অ্যারেতে প্রতিটি উপাদান ইনসার্ট করা হয়েছে। তারপর সেটের সাইজ বের করে n² সূত্র দিয়ে ফলাফল প্রিন্ট করা হয়েছে।

উপসংহার

এই আর্টিকেলে আমরা অ্যারেতে অনন্য জোড়ার সংখ্যা বের করার সমস্যা সমাধান করেছি দুটি পদ্ধতিতে: সহজ পদ্ধতি (O(n² log n)) এবং দক্ষ পদ্ধতি (O(n))। একই প্রোগ্রাম C, Java, Python ইত্যাদি ভাষায়ও লিখা যায়। আশা করি আপনি এই আর্টিকেলটি সহায়ক পাবেন।

  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

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

  4. C++ ব্যবহার করে অ্যারেতে XOR ০ হয় এমন জোড়ার সংখ্যা বের করা