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}

आउटपुट - तल में समानांतर चतुर्भुजों की संख्या - 3

व्याख्या - हमें (x, y) बिंदु दिए गए हैं और इन बिंदुओं का उपयोग करके हम आकृति में दिखाए अनुसार 3 समानांतर चतुर्भुज बना सकते हैं।

उपयोग किया गया दृष्टिकोण

  • x-निर्देशांक मानों के लिए array_1 और y-निर्देशांक मानों के लिए array_2 इनपुट करें
  • array_1 का आकार गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें
  • एक मैप चर बनाएं जो युग्म बनाएगा और पूर्णांक प्रकार का डेटा संग्रहीत करेगा
  • कुल समानांतर चतुर्भुजों को संग्रहीत करने के लिए एक अस्थायी चर count बनाएं
  • i से 0 से array_1 के आकार तक लूप FOR शुरू करें
  • j से i+1 से array_1 के आकार तक एक और लूप FOR शुरू करें
  • लूप के अंदर, a_mid = a[i] + a[j] और b_mid = b[i] + b[j] सेट करें
  • और array_1 और array_2 के मध्य मानों को 1 से बढ़ाएं
  • एक और लूप शुरू करें जो मैप को शुरुआत से अंत तक पार करेगा
  • लूप के अंदर, युग्म के y मान के साथ एक अस्थायी चर सेट करें
  • और count = temp * (temp - 1) / 2 सेट करें
  • काउंट लौटाएं
  • परिणाम प्रिंट करें।

C++ कार्यान्वयन

#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 na

  1. - C++ में सॉर्टेड बाइनरी ऐरे में 1s गिनें

    इस ट्यूटोरियल में, हम सॉर्टेड बाइनरी ऐरे में 1s खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें केवल 1 और 0 वाला एक ऐरे प्रदान किया जाएगा। हमारा कार्य ऐरे में मौजूद 1s की संख्या गिनना है।उदाहरण#include <bits/stdc++.h> using namespace std; //1 की गिनती लौटाना int countOnes(bool arr[], i

  1. - C++ प्रोग्राम: सरणी में इनवर्जन गिनें

    परिचयइनवर्जन काउंट का अर्थ है सरणी को सॉर्ट करने के लिए आवश्यक स्वैप की संख्या। यदि सरणी सॉर्टेड है तो इनवर्जन काउंट = 0। यदि सरणी रिवर्स ऑर्डर में सॉर्टेड है तो इनवर्जन काउंट = अधिकतम।एल्गोरिदम a[j] तो काउंट 1 बढ़ाएं। अंत में काउंट लौटाएं।उदाहरण कोड#include <iostream> using namespace std; in