हमें 3 रेखाओं पर मौजूद कई बिंदु दिए गए हैं; अब हमें निकालना है कि ये बिंदु कितने त्रिभुज बना सकते हैं, उदाहरण के लिए
इनपुट: m = 3, n = 4, k = 5 आउटपुट: 205 इनपुट: m = 2, n = 2, k = 1 आउटपुट: 10
हम इस प्रश्न पर कॉम्बिनेटोरिक्स लागू करेंगे और कुछ सूत्र बनाकर इस समस्या को हल करेंगे।
समाधान खोजने का दृष्टिकोण
इस दृष्टिकोण में, हम वर्तमान स्थितियों पर कॉम्बिनेटोरिक्स लागू करके एक सूत्र तैयार करेंगे, और यह सूत्र हमें हमारे परिणाम देगा।
उपरोक्त दृष्टिकोण के लिए C++ कोड
यहां C++ सिंटैक्स है जिसका उपयोग हम दी गई समस्या को हल करने के लिए इनपुट के रूप में कर सकते हैं -
उदाहरण
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; long long fact(long long n) { if(n <= 1) return 1; return ((n % MOD) * (fact(n-1) % MOD)) % MOD; } long long comb(int n, int r) { return (((fact(n)) % MOD) / ((fact(r) % MOD) * (fact(n-r) % MOD)) % MOD); } int main() { int n = 3; int m = 4; int r = 5; long long linen = comb(n, 3); // n का 3 के साथ कॉम्बिनेशन long long linem = comb(m, 3); // m का 3 के साथ कॉम्बिनेशन long long liner = comb(r, 3); // r का 3 के साथ कॉम्बिनेशन long long answer = comb(n + m + r, 3); // n, m, r सभी का 3 के साथ संभावित कॉम्बिनेशन answer -= (linen + linem + liner); cout << answer << "\n"; return 0; }आउटपुट
205
उपरोक्त कोड की व्याख्या
इस दृष्टिकोण में, हम n+m+r के सभी संभावित कॉम्बिनेशन 3 के साथ निकालते हैं, यानी comb(n+m+r, 3)। अब जैसा कि आप जानते हैं, 3 बिंदुओं के त्रिभुज होने की शर्त है कि वे संरेखी न हों, इसलिए हम सभी संभावित संरेखी बिंदु निकालते हैं जो n, m, r के 3 के साथ कॉम्बिनेशन का योग है, और जब हम इस योग को n+m+r के 3 के साथ कॉम्बिनेशन से घटाते हैं तो हमें उत्तर मिलता है, और हम इसे प्रिंट करते हैं।
निष्कर्ष
इस लेख में चर्चा की गई कि तीन रेखाओं पर बिंदुओं के समुच्चय से कितने त्रिभुज बन सकते हैं कॉम्बिनेटोरिक्स लागू करके। हमने इस समस्या के लिए C++ प्रोग्राम और पूरा दृष्टिकोण (सामान्य) भी सीखा जिससे हमने इस समस्या को हल किया। हम यही प्रोग्राम C, Java, Python आदि अन्य भाषाओं में भी लिख सकते हैं। आशा है आपको यह लेख उपयोगी लगा होगा।