इस समस्या में, हमें 2 सरणियाँ x[] , y[] इस प्रकार दी गई हैं कि (x,y) 2D समतल में एक बिंदु का निर्देशांक देता है। हमारा काम सभी बिंदुओं को उनकी आवृत्ति के साथ प्रिंट करना है।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं
Input: x[]={0, 1, 1, 0, 0} ; y[]={1, 2, 2, 2, 1} Output (0, 1) = 2 (1, 2) = 2 (0, 2) = 1
इस समस्या को हल करने के लिए, हमें प्रत्येक बिंदु की आवृत्ति की आवृत्ति को संग्रहीत करने की आवश्यकता है। तो इसके लिए हमें मानचित्र डेटा-संरचना का उपयोग करने की आवश्यकता है। मानचित्र की कुंजी है (x[i], y[i]), मैप किया गया मान घटना की पूर्णांक आवृत्ति है।
कार्यक्रम हमारे समाधान के कार्यान्वयन को दिखाएगा,
उदाहरण
#include <bits/stdc++.h> using namespace std; void printFrequencyofPoint(int x[], int y[], int n){ map<pair<int, int>, int> pFreq; for (int i = 0; i < n; i++) pFreq[make_pair(x[i], y[i])]++; map<pair<int, int>, int>::iterator i; for (i = pFreq.begin(); i != pFreq.end(); i++) { cout<<"("<<(i->first).first <<", "<< (i->first).second <<") -> "; cout<<i->second << "\n"; } } int main() { int x[]={0, 1, 1, 0, 0}; int y[]={1, 2, 2, 2, 1}; int n=5; cout<<"The points and their frequency of occurance is :\n"; printFrequencyofPoint(x, y, n); return 0; }
आउटपुट
The points and their frequency of occurance is : (0, 1) -> 2 (0, 2) -> 1 (1, 2) -> 2