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

सी ++ में एन गैर-अंतर्विभाजक जीवाओं का उपयोग करके सर्कल को विभाजित करने के तरीकों की गणना करें


2*N अंत बिंदुओं वाले वृत्त में कई जीवाओं के लिए इनपुट के रूप में एक पूर्णांक N दिया गया है। लक्ष्य उन तरीकों को गिनना है जिनसे हम इस तरह के जीवा का उपयोग करके उस वृत्त को विभाजित कर सकते हैं ताकि कोई जीवा एक दूसरे के साथ प्रतिच्छेद न करे।

N=3 के लिए, अंक 6 होंगे, 3 जीवाओं को प्राप्त करने का 1 तरीका 1−2, 3−4, 5−6

के बीच है।

सी ++ में एन गैर-अंतर्विभाजक जीवाओं का उपयोग करके सर्कल को विभाजित करने के तरीकों की गणना करें

अन्य तरीके -

1−6, 2−5, 3−4
1−2, 3−6, 4−5
1−4, 2−3, 5−6
1−6, 2−3, 4−5

कुल 5 तरीके।

उदाहरण के लिए

इनपुट

N=4

आउटपुट

Count of ways to divide circle using N non-intersecting chords are: 14

स्पष्टीकरण

There will be a total 8 points between which we can draw chords. After
drawing the first chord, the rest of the points will be divided into two sets. No chord can be drawn between points from set 1 and set 2 as they will intersect with the first chord.

इनपुट

N=6

आउटपुट

Count of ways to divide circle using N non−intersecting chords are: 132

स्पष्टीकरण

There will be a total 12 points between which we can draw chords. After
drawing the first chord, the rest of the points will be divided into two sets. No chord can be drawn between points from set 1 and set 2 as they will intersect with the first chord.

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम पिछली गणनाओं का उपयोग करके तरीकों की गणना करेंगे। यदि हम 2 बिंदुओं के बीच कोई जीवा खींचते हैं, तो शेष बिंदु दो सेट सेट 1 और सेट 2 में विभाजित हो जाएंगे, यदि हम इन दो सेटों में बिंदुओं के बीच कोई जीवा खींचते हैं तो वे पहली जीवा के साथ प्रतिच्छेद करेंगे।

  • इनपुट के रूप में एक पूर्णांक N लें।

  • फंक्शन डिवाइड_सर्कल (इंट एन) नंबर लेता है और एन नॉन-इंटरसेक्टिंग कॉर्ड्स का उपयोग करके सर्कल को विभाजित करने के तरीकों की गिनती देता है

  • अंकों की कुल संख्या कुल_अंकों के रूप में 2*N होगी।

  • तरीकों की संख्या को संग्रहीत करते हुए एक सरणी Total_cuts[] लें।

  • 0 या 2 अंक के लिए Total_cuts[0], total_cuts[2] को 1 से प्रारंभ करने का केवल 1 तरीका होगा।

  • अंक =4 से शुरू होने वाले अन्य सभी बिंदुओं के लिए, कुल तरीके अंक i और शेष n−i−1 अंक वाले तरीके होंगे।

  • तो Total_cuts[i] +=(total_cuts[j] * Total_cuts[i−2−j])

    लें
  • अंत में हमारे पास टोटल_कट [total_points ] कुल तरीकों की संख्या के रूप में हैं।

  • लूप के अंत में परिणाम के रूप में total_cuts[total_points] लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int divide_circle(int N){
   int total_points = 2 * N;
   int total_cuts[total_points + 1] = { 0 };
   total_cuts[0] = 1;
   total_cuts[2] = 1;
   for (int i = 4; i <= total_points; i += 2){
      for (int j = 0; j < i−1; j += 2){
         total_cuts[i] += (total_cuts[j] * total_cuts[i−2−j]);
      }
   }
   return total_cuts[total_points];
}
int main(){
   int N = 3;
   cout<<"Count of ways to divide circle using N non−intersecting chords are:"<<divide_circle(N);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of ways to divide circle using N non-intersecting chords are: 5

  1. C++ में कुल n अंक के साथ m कोलिनियर वाले त्रिभुजों की संख्या

    हमें दो चर n और m दिए गए हैं जो एक 2D तल पर बिंदुओं की संख्या को निरूपित करते हैं। n बिंदुओं में से, m बिंदु संरेख हैं। लक्ष्य इन n बिंदुओं का उपयोग करके बनाए जा सकने वाले त्रिभुजों की संख्या ज्ञात करना है। समरेख बिंदु - एक ही रेखा पर स्थित बिंदु संरेख कहलाते हैं। बिंदु A और B संरेख हैं। दिया गय

  1. C++ में N कटने के बाद वृत्त के टुकड़ों को गिनें

    हमें एक पूर्णांक N दिया गया है जो 2D-वृत्त पर लगाए गए कटों की संख्या को दर्शाता है। प्रत्येक वृत्त वृत्त को दो भागों में विभाजित करता है। लक्ष्य N कट के बाद वृत्त के टुकड़ों को खोजना है। टुकड़ों की संख्या =2 * नहीं। कटौती की आइए उदाहरणों से समझते हैं। इनपुट -एन=1 आउटपुट - सर्कल के टुकड़े:2 स्पष

  1. C++ में मध्य बिंदुओं का उपयोग करके आयत के कोनों का पता लगाएं

    मान लीजिए हमारे पास एक आयत ABCD है, लेकिन हमारे पास केवल मध्य बिंदुओं P और Q के निर्देशांक और आयत L की लंबाई है। हमारा कार्य P और Q के निर्देशांकों और भुजा L की लंबाई का उपयोग करके A, B, C और D के निर्देशांक ज्ञात करना है। उदाहरण के लिए, यदि P (1, 0) है, और Q (1, 2) है , और L 2 है, तो A, B, C, D