दो अलग-अलग सरणियों के साथ दिया गया है और कार्य अधिकतम भारित जोड़ी के लिए चुने गए यादृच्छिक जोड़े की संभावना को खोजना है।
एक जोड़ी में मान लीजिए कि सरणी 1 से एक तत्व होगा और दूसरा तत्व एक और सरणी बनाता है, मान लीजिए कि सरणी 2 है। इसलिए प्रोग्राम को उस जोड़ी की प्रायिकता का पता लगाना चाहिए जिसमें पहला तत्व सरणी 1 का अधिकतम तत्व होगा और दूसरा तत्व सरणी 2 का अधिकतम तत्व होगा इसलिए अधिकतम भारित जोड़ी का निर्माण होगा।
इनपुट
arr1[] = { 2, 23 } arr2[] = { 10, 3, 8 }
आउटपुट
probability of maximum pair : 0.166667
स्पष्टीकरण
set of pairs from both the arrays are -: {(2, 10), (2, 3), (2, 8), (23, 10), (23, 3), (23, 8)} Maximum weighted pair from the given set is: (23, 8) Probability is : 1 / 6 = 0.166667
इनपुट -
arr1[] = { 4, 5, 6 } arr2[] = { 6, 2, 6 }
आउटपुट -
probability of maximum pair : 0.222222
स्पष्टीकरण
set of pairs from both the arrays are -: {(4, 6), (4, 2), (4, 6), (5, 6), (5, 2), (5, 6), (6, 6), (6, 2), (6, 6)} Maximum weighted pair from the given set is (6, 6) which is occurring twice. Probability is : 2 / 9 = 0.2222
दृष्टिकोण
-
सरणी तत्वों को इनपुट करें
-
दोनों सरणियों से अधिकतम तत्व खोजें और इस प्रकार गठित अधिकतम भारित युग्मों की कुल संख्या की गणना करें
-
सेट में जोड़े की कुल संख्या के साथ अधिकतम भारित जोड़े की कुल संख्या को विभाजित करके संभावना की गणना करें
-
परिकलित प्रायिकता प्रिंट करें
एल्गोरिदम
Start Step1→ declare function to calculate maximum weighted pair double max_pair(int arr1[], int arr2[], int size_1, int size_2) declare int max_pair1 = INT_MIN, count_1 = 0 Loop For int i = 0 and i < size_1 and i++ IF arr1[i] > max_pair1 Set max_pair1 = arr1[i] Set count_1 = 1 End Else IF arr1[i] = max_pair1 Set count_1++ End End Declare int max_pair2 = INT_MIN, count_2 = 0 Loop For int i = 0 and i < size_2 and i++ IF arr2[i] > max_pair2 Set max_pair2 = arr2[i] Set count_2 = 1 End Else IFarr2[i] = max_pair2 Set count_2++ End End return (double)(count_1 * count_2) / (size_1 * size_2) Step 2→ In main() Declare int arr1[] = { 2, 23 } Declare int arr2[] = { 10, 3, 8 } Calculate int size_1 = sizeof(arr1) / sizeof(arr1[0]) Calculate int size_2 = sizeof(arr2) / sizeof(arr2[0]) Call max_pair(arr1, arr2, size_1, size_2) Stop
उदाहरण
#include <bits/stdc++.h> using namespace std; // Function to return probability double max_pair(int arr1[], int arr2[], int size_1, int size_2){ //pair from array 1 int max_pair1 = INT_MIN, count_1 = 0; for (int i = 0; i < size_1; i++){ if (arr1[i] > max_pair1){ max_pair1 = arr1[i]; count_1 = 1; } else if (arr1[i] == max_pair1){ count_1++; } } //pair from array 2 int max_pair2 = INT_MIN, count_2 = 0; for (int i = 0; i < size_2; i++){ if (arr2[i] > max_pair2){ max_pair2 = arr2[i]; count_2 = 1; } else if (arr2[i] == max_pair2){ count_2++; } } return (double)(count_1 * count_2) / (size_1 * size_2); } int main(){ int arr1[] = { 2, 23 }; int arr2[] = { 10, 3, 8 }; int size_1 = sizeof(arr1) / sizeof(arr1[0]); int size_2 = sizeof(arr2) / sizeof(arr2[0]); cout <<"probability of maximum pair in both the arrays are "<<max_pair(arr1, arr2, size_1, size_2); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
probability of maximum pair in both the arrays are 0.166667