हमें एक समतल दिया गया है जिसमें समांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य समांतर चतुर्भुजों की गणना करना है जो दिए गए बिंदुओं का उपयोग करके बनाए जा सकते हैं। समांतर चतुर्भुज में एक चतुर्भुज के विपरीत पक्ष समानांतर होते हैं और इसलिए विपरीत कोण बराबर होते हैं।
इनपुट -
int a[] = {0, 2, 5, 5, 2, 5, 2, 5, 2} Int b[] = {0, 0, 1, 4, 3, 8, 7, 11, 10}
आउटपुट − समतल में समांतर चतुर्भुजों की संख्या − 3
स्पष्टीकरण - हमें (x, y) बिंदुओं के साथ दिया गया है और इन बिंदुओं का उपयोग करके हम 3 समांतर चतुर्भुजों की गणना कर सकते हैं जैसा कि चित्र में दिखाया गया है।
इनपुट -
a[] = {0, 3, 1, 4, 1, 5} b[] = {0, 1, 3, 4, 4, 4}
आउटपुट - समतल में समांतर चतुर्भुजों की संख्या - 1
स्पष्टीकरण - हमें (x, y) बिंदुओं के साथ दिया गया है और इन बिंदुओं का उपयोग करके हम 1 समांतर चतुर्भुज की गणना कर सकते हैं जैसा कि चित्र में दिखाया गया है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
x-निर्देशांक मानों के लिए array_1 और y-निर्देशांक मानों के लिए array_2 इनपुट करें
-
array_1 के आकार की गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें
-
मानचित्र प्रकार का एक वैरिएबल बनाएं जो जोड़ी बनाएगा और पूर्णांक प्रकार डेटा संग्रहीत करेगा
-
बनाए जा सकने वाले समांतर चतुर्भुजों की कुल संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना बनाएं
-
मैं के लिए 0 से एक सरणी के आकार तक के लिए लूप प्रारंभ करें_1
-
i+1 से एक सरणी_1 के आकार तक j के लिए एक और लूप प्रारंभ करें_1
-
लूप के अंदर, a_mid को a[i] + a[j] के साथ सेट करें और b_mid को b[i] + b[j]
के साथ सेट करें -
और array_1 और array_2 के मध्य मानों को 1 से बढ़ाएं
-
एक और लूप शुरू करें जो मानचित्र को शुरू से अंत तक पार करेगा
-
लूप के अंदर, जोड़ी के y मान के साथ एक अस्थायी चर सेट करें
-
और सेट गिनती के साथ अस्थायी * (अस्थायी -1 )/2
-
वापसी की संख्या
-
परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; //Count of parallelograms in a plane int parallelogram(int a[], int b[], int size){ map<pair<int, int>, int> um; int count = 0; for (int i=0; i<size; i++){ for (int j=i+1; j<size; j++){ int a_mid = a[i] + a[j]; int b_mid = b[i] + b[j]; um[make_pair(a_mid, b_mid)]++; } } for (auto it = um.begin(); it != um.end(); it++){ int temp = it->second; count+= temp*(temp - 1)/2; } return count; } int main(){ int a[] = {0, 3, 1, 4, 1, 5}; int b[] = {0, 1, 3, 4, 4, 4}; int size = sizeof(a) / sizeof(int); cout<<"Count of parallelograms in a plane: "<<parallelogram(a, b, size) << endl; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of parallelograms in a plane: 1