Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

एक यादृच्छिक जोड़ी की संभावना सी ++ में अधिकतम भारित जोड़ी है

दो अलग-अलग सरणियों के साथ दिया गया है और कार्य अधिकतम भारित जोड़ी के लिए चुने गए यादृच्छिक जोड़े की संभावना को खोजना है।

एक जोड़ी में मान लीजिए कि सरणी 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

  1. C++ . में भूलभुलैया III

    मान लीजिए कि खाली जगह और दीवारों के साथ एक भूलभुलैया है और उस भूलभुलैया में एक गेंद भी है। गेंद ऊपर (यू), नीचे (डी), बाएं (एल) या दाएं (आर) दिशाओं को लुढ़क कर खाली जगहों से जा सकती है, लेकिन यह दीवार से टकराने तक लुढ़कती रहती है। जब गेंद रुकती है, तो वह अगली दिशा चुन सकती है। उस भूलभुलैया में एक छेद

  1. सी++ में एक सरणी में अधिकतम जीसीडी के साथ जोड़ी खोजें

    मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी है। हमारा काम सरणी से पूर्णांकों की जोड़ी को खोजना है, जहां GCD मान अधिकतम है। मान लीजिए A ={1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) में GCD 2 है, अन्य GCD मान 2 से कम हैं। इस समस्या को हल करने के लिए, हम प्रत्येक तत्व के भाजक की गिनती को

  1. सी ++ प्रोग्राम एक ग्राफ में अधिकतम कट खोजने के लिए

    इस प्रोग्राम में ग्राफ में अधिकतम कट खोजने के लिए, हमें ग्राफ की एज कनेक्टिविटी को खोजने की जरूरत है। ग्राफ़ के ग्राफ़ की एक एज कनेक्टिविटी का अर्थ है कि यह एक पुल है, इसे हटाने से ग्राफ़ डिस्कनेक्ट हो जाएगा। डिस्कनेक्ट किए गए अप्रत्यक्ष ग्राफ़ में पुल को हटाने के साथ जुड़े घटकों की संख्या बढ़ जाती