আমরা ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল arr[] এর উপাদানগুলির জোড়ার গণনা খুঁজে বের করা যাতে জোড়ায় উপাদান থাকে ( A, B ) যেখানে A-এর কম্পাঙ্ক B গুণ এবং B-এর কম্পাঙ্ক A হয়।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − int arr[] ={ 3, 3, 3, 5, 5, 6, 6}
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যেমন একটির ফ্রিকোয়েন্সি অন্যটির কমপক্ষে মান − 1
ব্যাখ্যা − একটি অ্যারের বৈধ জোড়া যেখানে A হয় B বার এবং B হয় A বার হয় (3, 3) যেমন 3 একটি অ্যারেতে 3 বার ঘটছে। সুতরাং শুধুমাত্র একটি বৈধ জোড়া আছে তাই গণনা হল 1।
ইনপুট − int arr[] ={ 3, 3, 3, 3, 3, 5, 5, 5, 6, 6}
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যেমন একটির ফ্রিকোয়েন্সি অন্যটির কমপক্ষে মান − 1
ব্যাখ্যা − একটি অ্যারের বৈধ জোড়া যেখানে A হয় B বার এবং B হয় A বার হয় (3, 3), (5, 5) এবং (3, 5) যেমন 3 5 বার ঘটছে এবং 5 একটি অ্যারেতে 3 বার হচ্ছে . সুতরাং তিনটি বৈধ জোড়া আছে তাই গণনা হল 3৷
৷নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
পদ্ধতিতে আমরা প্রথমে অ্যারের উপাদানগুলির ফ্রিকোয়েন্সি সম্বলিত একটি বিন্যাসবিহীন মানচিত্র তৈরি এবং পপুলেট করব। লুপ ব্যবহার করে unordered_map অতিক্রম করুন। প্রতিটি উপাদান এবং এর কম্পাঙ্কের জন্য, যদি কোনো ফ্রিকোয়েন্সি বেশি পাওয়া যায়, তাহলে জোড়ার সংখ্যা বৃদ্ধি করুন।
-
পূর্ণসংখ্যার একটি অ্যারে অ্যারে নিন।
-
ফাংশন ফ্রিকোয়েন্সি_অন্যান্য_মান (int arr[], int size) অ্যারে এবং এর আকার নেয় এবং জোড়ার সংখ্যা প্রদান করে যেমন জোড়া (A,B) যেখানে A কমপক্ষে B বার হয় এবং এর বিপরীতে।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
arr[] এর উপাদান এবং তাদের ফ্রিকোয়েন্সির জন্য unordered_map
um নিন। -
জোড়া শুরু=it.second এর প্রতিটি প্রথম মানের জন্য এবং এর জন্য ব্যবহার করে মানচিত্র অতিক্রম করুন; (it=iterator), ফ্রিকোয়েন্সির জন্য ট্রাভার্স ম্যাপ>=লুপের জন্য ব্যবহার করা শুরু করুন।
-
এই ধরনের জোড়ার জন্য সংখ্যা বৃদ্ধি।
-
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int frequency_other_value(int arr[], int len){ int count = 0; unordered_map<int, int> um; for (int i = 0; i < len; ++i){ um[arr[i]]++; } for (auto it : um){ int start = it.first; int end = it.second; for (int j = 1; j <= end; j++){ if (um[j] >= start){ count++; } } } return count; } int main(){ int arr[] = { 3, 3, 3, 5, 5, 6, 6}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of pairs in an array such that frequency of one is at least value of other are: "<<frequency_other_value(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of pairs in an array such that frequency of one is at least value of other are: 1