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

C++ में दिए गए N त्रिभुजों में से अद्वितीय त्रिभुजों की संख्या ज्ञात कीजिए

इस समस्या में, हमें तीन सरणियाँ s1[] , s2[] और s3[] आकार N की दी गई हैं, जो N त्रिभुजों को दर्शाती हैं। हमारा कार्य दिए गए N त्रिभुजों में से अद्वितीय त्रिभुजों की संख्या ज्ञात करना है।

एक त्रिभुज के अद्वितीय होने के लिए, उसकी सभी भुजाएँ अद्वितीय होनी चाहिए अर्थात किसी अन्य त्रिभुज की भुजाएँ समान नहीं होनी चाहिए।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

s1[] = {1, 5, 3}
s2[] = {2, 3, 2}
s3[] = {4, 2, 5}

आउटपुट

1

स्पष्टीकरण

1 2 4 भुजाओं वाला त्रिभुज अद्वितीय है।

समाधान दृष्टिकोण

समस्या का एक सरल समाधान अद्वितीय त्रिभुजों की संख्या गिनना है।

इसके लिए, हम पहले प्रत्येक त्रिभुज की भुजा को क्रमबद्ध करेंगे और फिर एक मानचित्र में संग्रहीत करेंगे, यदि इसके मान अद्वितीय हैं तो गिनती बढ़ाएँ।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int countUniqueTriangle(int a[], int b[], int c[], int n) {
   vector<int> triSides[n];
   map<vector<int>, int> m;
   for (int i = 0; i < n; i++) {
      triSides[i].push_back(a[i]);
      triSides[i].push_back(b[i]);
      triSides[i].push_back(c[i]);
      sort(triSides[i].begin(), triSides[i].end());
      m[triSides[i]] = m[triSides[i]] + 1;
   }
   map<vector<int>, int>::iterator itr;
   int uniqueTriCount = 0;
   for (itr = m.begin(); itr != m.end(); itr++) {
      if (itr->second == 1)
         if (itr->second == 1)
            uniqueTriCount++;
   }
   return uniqueTriCount;
}
int main() {
   int s1[] = { 1, 5 ,3 };
   int s2[] = { 2, 3, 2 };
   int s3[] = { 4, 2, 5 };
   int N = sizeof(s1) / sizeof(s1);
   cout<<"The number of unique triangles is "<<countUniqueTriangle(s1, s2, s3, N);
   return 0;
}

आउटपुट

The number of unique triangles is 1

  1. C++ कोड दी गई अभाज्य परिकल्पना का खंडन करने के लिए संख्या ज्ञात करने के लिए

    मान लीजिए कि हमारे पास एक संख्या n है। मान लीजिए कि एक परिकल्पना है एक धनात्मक पूर्णांक n मौजूद है कि प्रत्येक धनात्मक पूर्णांक के लिए m संख्या (n·m + 1) एक अभाज्य संख्या है। इस कथन का खंडन करने के लिए हमें ऐसे m को एक काउंटर उदाहरण के रूप में खोजना होगा। इसलिए, यदि इनपुट n =12 जैसा है, तो आउटपुट 1

  1. C++ प्रोग्राम दिए गए ग्राफ़ में ब्रिज किनारों की संख्या का पता लगाने के लिए

    मान लीजिए, हमें एक अभारित, अप्रत्यक्ष ग्राफ दिया गया है जिसमें n कोने और m किनारे हैं। ग्राफ़ में ब्रिज का किनारा वह किनारा होता है जिसके हटाने से ग्राफ़ डिस्कनेक्ट हो जाता है। हमें दिए गए आलेख में ऐसे आलेखों की संख्या ज्ञात करनी है। ग्राफ़ में समानांतर किनारे या सेल्फ़-लूप नहीं होते हैं। इसलिए, यद

  1. C++ में परिमेय संख्या का LCM ज्ञात कीजिए

    यहां हम देखेंगे कि परिमेय संख्याओं का एलसीएम कैसे ज्ञात करें। हमारे पास परिमेय संख्याओं की एक सूची है। मान लीजिए सूची {2/7, 3/14, 5/3} जैसी है, तो एलसीएम 30/1 होगा। इस समस्या को हल करने के लिए, हमें सभी अंशों के एलसीएम की गणना करनी होगी, फिर सभी हरों की जीसीडी, फिर परिमेय संख्याओं का एलसीएम, जैसा ह