अवधारणा
दो दी गई M पूर्णांकों की सरणियों के संबंध में, मान लें एक सरणी C, जहां i-वां पूर्णांक d*a[i] + b[i] होगा जहां d कोई मनमाना वास्तविक संख्या है। हमारा कार्य d को प्रदर्शित या प्रिंट करना है ताकि सरणी C में शून्य की सबसे बड़ी संख्या हो और शून्य की संख्या भी प्रिंट करें।
इनपुट
a[] = {15, 40, 45} b[] = {4, 5, 6}आउटपुट
Value of d is: -0.133333 The number of zeros in array C is: 1 If we choose d as -0.133333 then we get one zero in the array C which is the maximum possible.
विधियां
हम उपरोक्त समस्या को हल करने के लिए नीचे बताए गए चरणों का पालन करते हैं −
<उल क्लास="सूची"><ली>हम समीकरण को d = -b[i]/a[i] के रूप में लिखते हैंली><ली>किसी भी वास्तविक संख्या की सबसे बड़ी घटना की गिनती करने के लिए हैश-टेबल लागू करें ताकि d का मान प्राप्त हो सके।ली><ली>अब, हम निष्कर्ष निकालते हैं कि शून्य की संख्या सबसे बड़ी गिनती + (a[i] और b[i] के जोड़े की संख्या जहां दोनों 0 हैं) होगी।ली>उल>उदाहरण
<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट">// C++ program to implement the above // approach #include <bits/stdc++.h> using namespace std; // d का मान खोजने वाला फ़ंक्शन // और सरणी में शून्य की संख्या खोजें void findDandZeros1(int a[], int b[], int m){ // हैश टेबल दिखाता है unordered_map<long double, int> mpp1; int count1 = 0; // i-वें तत्व के लिए पुनरावृति करता है for (int i = 0; i < m; i++) { // अब यदि दोनों 0 नहीं हैं if (b[i] != 0 && a[i] != 0) { long double val1 = (long double)(-1.0 * b[i]) / (long double)(a[i]); mpp1[val1] += 1; } // अब यदि दोनों 0 हैं else if (b[i] == 0 && a[i] == 0) count1 += 1; } // अधिकतम बार होने वाले d को खोजने के लिए उपयोग किया जाता है int maxi1 = 0; for (auto it : mpp1) { maxi1 = max(it.second, maxi1); } // अधिकतम बार होने वाले d को प्रिंट करने के लिए उपयोग किया जाता है for (auto it : mpp1) { if (it.second == maxi1) { cout << "Value of d is: " << it.first << endl; break; } } // शून्य की संख्या प्रिंट करने के लिए उपयोग किया जाता है cout << "The number of zeros in array C is: " << maxi1 + count1; } // ड्राइवर कोड int main(){ int a[] = { 15, 40, 45 }; int b[] = { 4, 5, 6 }; int m = sizeof(a) / sizeof(a[0]); findDandZeros1(a, b, m); return 0; }आउटपुट
Value of d is: -0.133333 The number of zeros in array C is: 1