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

एक सरणी में जोड़े की गणना करें जैसे कि LCM(arr[i], arr[j])> min(arr[i],arr[j]) C++ में

हमें सकारात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य एआर [] के तत्वों के जोड़े की संख्या का पता लगाना है जैसे कि एलसीएम (एआर [i], एआर [जे])> न्यूनतम (एआर [i], एआर [जे])। अर्थात्, किसी युग्म में तत्वों का न्यूनतम सामान्य गुणज दोनों के न्यूनतम से अधिक होता है।

नोट - जोड़ी ( arr[i], arr[j] ) एक ही है ( arr[j],arr[i] )। इसे दो बार मत गिनें।

आइए उदाहरणों से समझते हैं।

इनपुट - गिरफ्तारी [] =[ 1,5,4,2 ]

आउटपुट − एक सरणी में युग्मों की संख्या जैसे LCM(arr[i], arr[j])> min(arr[i],arr[j]) हैं − 6

स्पष्टीकरण − कुल 6 जोड़े हैं -

Pair 1 (1,5) LCM is 5 > 1
Pair 2 (1,4) LCM is 4 > 1
Pair 3 (1,2) LCM is 2 > 1
Pair 4 (5,4) LCM is 20 > 4
Pair 5 (5,2) LCM is 10 > 2
Pair 6 (4,2) LCM is 4 > 2

इनपुट - गिरफ्तार [] =[ 3,3,6 ]

आउटपुट - एक सरणी में जोड़े की संख्या जैसे LCM(arr[i], arr[j])> min(arr[i],arr[j]) हैं − 2

स्पष्टीकरण − कुल 2 जोड़े हैं -

Pair 1 (3,6) LCM is 6 > 3
Pair 2 (3,6) LCM is 6 > 3
है

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

उपरोक्त शर्त केवल झूठी होगी जहां गिरफ्तारी [i] ==गिरफ्तारी [जे]। अद्वितीय तत्वों के बीच जोड़े बनेंगे। सरणी के अद्वितीय तत्वों की आवृत्तियों वाला एक अनियंत्रित नक्शा लें। अब सभी समान तत्व जोड़े को हटाने के लिए। प्रत्येक आवृत्ति के लिए अधिकतम जोड़े की गणना करें ( freq * (freq-1)/2 )। ऐसी सभी गणनाओं को गिनने के लिए जोड़ें।

कुल सरणी में आकार तत्व होते हैं तो अधिकतम जोड़े =आकार (आकार -1) / 2।

परिणाम जोड़े-गिनती होगा। (सभी जोड़े - एक ही तत्व के साथ जोड़े)।

पूर्णांकों की एक सरणी लें।

  • पूर्णांकों की एक सरणी लें।

  • फंक्शन conditional_pair(int arr[], int size) सरणी और उसका आकार लेता है और जोड़े की गिनती देता है जैसे कि शर्त पूरी होती है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • arr[] के तत्वों और उनकी आवृत्तियों के लिए unordered_map um लें।

  • प्रत्येक आवृत्ति के लिए और के लिए उपयोग कर ट्रैवर्स नक्शा अस्थायी =it.second; (it=iterator) गिनने के लिए temp*(temp-1)/2 जोड़ें। तत्वों की अस्थायी संख्या के लिए सभी संभावित जोड़े।

  • अब गिनती में समान तत्वों के सभी जोड़े हैं जिन पर हमारे मामले में विचार नहीं किया जाएगा।

  • सरणी तत्वों के लिए कुल संभावित जोड़े की गणना temp=size*(size-1)/2 के रूप में करें।

  • गिनती को गिनती के रूप में अपडेट करें - अस्थायी।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int conditional_pair(int arr[], int size){
   int count = 0;
   unordered_map<int, int> um;
   for (int i = 0; i < size; i++){
      um[arr[i]]++;
   }
   for (auto it : um){
      int temp = it.second;
      count = count + temp * (temp - 1) / 2;
   }
   int temp = (size * (size - 1)) / 2;
   count = temp - count;
   return count;
}
int main(){
   int arr[] = { 4, 1, 7, 3, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs in an array such that LCM(arr[i], arr[j]) > min(arr[i],arr[j]) are:
"<<conditional_pair(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs in an array such that LCM(arr[i], arr[j]) > min(arr[i],arr[j]) are: 10

  1. सरणी के सभी युग्मों का अधिकतम मॉड्यूल जहाँ arr[i]>=arr[j] C++ . में होता है

    इस समस्या में, हमें एक सरणी दी गई है, जो n तत्वों की है। हमारा काम एक =arr[j]. के सभी युग्मों के अधिकतम मॉड्यूलो का पता लगाया जा सके। =arr[j]। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - गिरफ्तारी [] ={3, 5, 9} आउटपुट -4 स्पष्टीकरण - All possible Pairs arr[i] and arr[j], 5, 3 => 5%3 =

  1. एक सरणी में जोड़े (x, y) की संख्या पाएं जैसे कि x^y> y^x C++ . में

    y^x, जहाँ x, X का एक अवयव है और y, Y का एक अवयव है। मान लीजिए X =[2, 1, 6], और Y =[1, 5] , तो आउटपुट 3 होगा। चूंकि तीन जोड़े हैं, ये हैं (2, 1), (2, 5) और (6, 1) y^x कुछ अपवादों के साथ। तो यह है ट्रिक। सरणी Y को क्रमबद्ध करें X में प्रत्येक अवयव x के लिए, हमें Y में x से बड़ी सबसे छोटी संख्या

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc