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

C++ में समतल में समांतर चतुर्भुजों की संख्या


हमें एक समतल दिया गया है जिसमें समांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य समांतर चतुर्भुजों की गणना करना है जो दिए गए बिंदुओं का उपयोग करके बनाए जा सकते हैं। समांतर चतुर्भुज में एक चतुर्भुज के विपरीत पक्ष समानांतर होते हैं और इसलिए विपरीत कोण बराबर होते हैं।

इनपुट -

int a[] = {0, 2, 5, 5, 2, 5, 2, 5, 2}
Int b[] = {0, 0, 1, 4, 3, 8, 7, 11, 10}

C++ में समतल में समांतर चतुर्भुजों की संख्या

आउटपुट − समतल में समांतर चतुर्भुजों की संख्या − 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

  1. C++ में सभी बढ़ते क्रमों की गणना करें

    इस ट्यूटोरियल में, हम बढ़ते क्रमों की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें 0 से 9 अंकों वाली एक सरणी प्रदान की जाएगी। हमारा कार्य सरणी में मौजूद सभी अनुक्रमों को इस तरह से गिनना है कि अगला तत्व पिछले तत्व से बड़ा हो। उदाहरण #include<bits/stdc++.h> using namespa

  1. सी ++ में क्रमबद्ध बाइनरी सरणी में 1 की गणना करें

    इस ट्यूटोरियल में, हम एक क्रमबद्ध बाइनरी एरे में 1 को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें केवल 1 और 0 वाली एक सरणी प्रदान की जाएगी। हमारा कार्य सरणी में मौजूद 1 की संख्या को गिनना है। उदाहरण #include <bits/stdc++.h> using namespace std; //returning the count of 1 int coun

  1. सी++ प्रोग्राम एक ऐरे में व्युत्क्रम की गणना करने के लिए

    काउंट इनवर्जन का अर्थ है किसी सरणी को सॉर्ट करने के लिए आवश्यक स्विच की संख्या। उलटा गिनती =0, जब सरणी को क्रमबद्ध किया जाता है। उलटा गिनती =अधिकतम, जब सरणी को उल्टे क्रम में क्रमबद्ध किया जाता है। आइए एक सरणी में उलटा गिनने के लिए एक C++ प्रोग्राम विकसित करें। एल्गोरिदम Begin    Function