দুটি অ্যারে দেওয়া আছে। একটি র্যান্ডম পেয়ার (প্রথম অ্যারের একটি উপাদান, দ্বিতীয় অ্যারের একটি উপাদান) ম্যাক্সিমাম ওজনযুক্ত পেয়ার হবার প্রোবাবিলিটি বের করতে হবে।
ইনপুট
arr1[] = {2, 23}, arr2[] = {10, 3, 8}
আউটপুট
probability of maximum pair: 0.166667
ব্যাখ্যা — সম্ভাব্য পেয়ারগুলো: (2,10), (2,3), (2,8), (23,10), (23,3), (23,8)। ম্যাক্সিমাম = (23,8)। প্রোবাবিলিটি = 1/6।
পদ্ধতি
- দুই অ্যারের ম্যাক্সিমাম মান ও তাদের ফ্রিকোয়েন্সি বের করুন।
- ম্যাক্সিমাম পেয়ার সংখ্যা = count1 × count2।
- মোট পেয়ার = size1 × size2।
- প্রোবাবিলিটি = (count1 × count2) / (size1 × size2)।
এলগরিদম
Start
Step 1 → double max_pair(int arr1[], int arr2[], int size1, int size2)
int max1 = INT_MIN, count1 = 0
for i in arr1: update max1, count1
int max2 = INT_MIN, count2 = 0
for i in arr2: update max2, count2
return (double)(count1 * count2) / (size1 * size2)
Step 2 → main(): অ্যারে ঘোষণা, max_pair() কল
Stop
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
double max_pair(int arr1[], int arr2[], int size1, int size2){
int max1 = INT_MIN, count1 = 0;
for (int i = 0; i < size1; i++){
if (arr1[i] > max1){ max1 = arr1[i]; count1 = 1; }
else if (arr1[i] == max1) count1++;
}
int max2 = INT_MIN, count2 = 0;
for (int i = 0; i < size2; i++){
if (arr2[i] > max2){ max2 = arr2[i]; count2 = 1; }
else if (arr2[i] == max2) count2++;
}
return (double)(count1 * count2) / (size1 * size2);
}
int main(){
int arr1[] = {2, 23};
int arr2[] = {10, 3, 8};
int size1 = sizeof(arr1)/sizeof(arr1[0]);
int size2 = sizeof(arr2)/sizeof(arr2[0]);
cout << "Probability: " << max_pair(arr1, arr2, size1, size2);
return 0;
}
আউটপুট
probability of maximum pair in both the arrays are 0.166667