इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य श्रृंखला का योग ज्ञात करना ?3 + ?12 + ... n पदों तक है। ।
श्रृंखला $\sqrt3 + \sqrt12 + \sqrt27 + \sqrt48 + ...$
हैअर्थात। यह वर्गमूलों की एक श्रृंखला है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : N = 3 Output : 10.3922
स्पष्टीकरण -
$\sqrt3 + \sqrt12 + \sqrt27 =1.7320 + 3.4641 + 5.1961 =10.3922$
समाधान दृष्टिकोण
समस्या को हल करने का एक सरल तरीका है श्रृंखला का सामान्य पद ज्ञात करना और फिर n पदों तक का योग ज्ञात करना। और सूत्र का उपयोग करके योग की गणना करने से समय कम होकर O(1) हो जाएगा।
श्रृंखला है,
$\sqrt3 + \sqrt12 + \sqrt27 + \sqrt48 + ...$
यहां, हमारे पास सभी शब्दों में $\sqrt3$ सामान्य है। इसे सामान्य रूप में लेने पर हमारे पास,
$\Rightarrow\:\sqrt{3}(\sqrt{1}\:+\:\sqrt{4}\:+\:\sqrt{9} \:+\:\sqrt{16}\:+\ :\dotsm)$
$\Rightarrow\:\sqrt{3}(1\:+\:2\:+\:3\:+\:4+\:\dotsm)$
तो, सामान्य शब्द है,
$\mathrm{T_n\:=\:n*\sqrt{3}}$
इसका उपयोग करके हम श्रृंखला के n पदों तक का योग ज्ञात कर सकते हैं,
$\mathrm{Sum}\:=\:\sum{n}^*\sqrt{3}$
$\mathrm{Sum}\:=\:\sqrt{3}^*\sum{n}$
$\mathrm{Sum}\:=\:(\sqrt{3})^*(n^*(n+1))/2-n$
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include<iostream> #include<math.h> using namespace std; float calcSumNTerms(float n) { return ((sqrt(3)) * ((n*(n+1))/2)); } int main() { float n = 25; cout<<"The sum of series upto n terms is "<<calcSumNTerms(n); return 0; }
आउटपुट
The sum of series upto n terms is 562.917