लेख में, सबसे पहले, हमें एक रंगीन त्रिभुज बनाना है। हमें एक बिना रंग का त्रिभुज लेना है और त्रिभुज को चार छोटे समबाहुओं में विभाजित करना है। समान क्षेत्रफल वाले त्रिभुज और इसे nवें चरण तक करते रहें और आकृति में मौजूद समबाहु त्रिभुजों की संख्या ज्ञात करें।
समाधान खोजने के लिए दृष्टिकोण
इस समाधान के लिए दो दृष्टिकोण हैं और वे हैं -
क्रूर फ़ोर्स अप्रोच
हम देख सकते हैं कि त्रिभुजों की संख्या प्रत्येक चरण के बाद किसी न किसी संख्या (3*पिछली_संख्या + 2 की वृद्धि) से बढ़ती रहती है। इसलिए हम n तक एक लूप चला सकते हैं और त्रिभुजों की संख्या की गणना कर सकते हैं।
उदाहरण
#include <iostream>
using namespace std;
int main() {
int n = 2; // number of operations we made
int count = 1; // at first we have only one triangle
for(int i = 0; i < n; i++) { // looping till n
count = 3 * count + 2; // as the triangle count is increasing by 3*prev + 2
}
cout <<count << "\n";
} आउटपुट
17
उपरोक्त कार्यक्रम की समय जटिलता ओ (एन) है, जहां एन प्रदर्शन किए गए कार्यों की संख्या है। अब हम इसकी समय जटिलता में और सुधार कर सकते हैं जो उच्च बाधाओं से निपटने में बहुत मददगार होगी।
कुशल दृष्टिकोण
इस दृष्टिकोण में, हम एक सूत्र बनाएंगे जो हमारे लिए हमारे उत्तर की गणना करेगा।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 2; // number of operations we made
int count;
count = 2 * (pow(3, n)) - 1; // the total number of triangles after nth move
cout << count << "\n";
} आउटपुट
17
उपरोक्त कोड में O(log(N)) की समय जटिलता है, जहां N हमारे द्वारा किए गए चालों की संख्या है।
उपरोक्त कोड की व्याख्या
दिए गए कार्यक्रम में, हम बस अपनी दी गई प्रक्रिया को हल करने के लिए एक सूत्र बना रहे हैं और सूत्र में आवश्यक मान डाल रहे हैं, और परिणाम प्रिंट कर रहे हैं।
निष्कर्ष
यह लेख कुछ प्रेक्षणों और कुछ गणित को लागू करके N चाल के बाद त्रिभुजों की संख्या ज्ञात करता है। हमने इस समस्या के लिए C++ प्रोग्राम और संपूर्ण दृष्टिकोण (सामान्य और कुशल) भी सीखा जिसके द्वारा हमने इस समस्या को हल किया।
हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।