मान लीजिए कि हमारे पास bn नामक संख्याओं का एक क्रम है, इसे b1=1 और bn+1/bn=2n जैसे पुनरावर्ती संबंध का उपयोग करके दर्शाया जाता है। हमें दिए गए n के लिए log2(bn) का मान ज्ञात करना है।
इसलिए, यदि इनपुट 6 जैसा है, तो आउटपुट 5 होगा क्योंकि log2(bn) =(n * (n - 1)) / 2 =(6*(6-1))/2 =15
इस संबंध को हल करके हम इस समस्या को हल कर सकते हैं -
bn+1 /बी<उप>एनउप> =2 n
बी<उप>एनउप> /बी<उप>एन-1उप> =2 n-1
…
ख<उप>2उप> /बी<उप>1उप> =2 1 , यदि हम उपरोक्त सभी को गुणा करते हैं, तो हम प्राप्त कर सकते हैं
(बी<उप>एन+1उप> /बी<उप>एनउप> ).(बी<उप>एनउप> /बी<उप>एन-1उप> )……(बी<उप>2उप> /बी<उप>1उप> ) =2 n + (n-1)+……….+1
तो, bn+1 /बी<उप>1उप> =2 n(n+1)/2
1 + 2 + 3 + ……… के रूप में। + (n-1) + n =n(n+1)/2
तो, bn+1 =2 n(n+1)/2 * ख<उप>1उप>; हम मान रहे हैं कि प्रारंभिक मान b1 =1पी>
तो, bn+1 =2 n(n+1)/2
n के लिए (n+1) प्रतिस्थापित करने पर, हम प्राप्त करते हैं,
बी<उप>एनउप> =2 n(n-1)/2
दोनों पक्षों का लॉग लेने पर, हम प्राप्त करते हैं,
लॉग<उप>2उप> (बी<उप>एनउप> ) =n(n-1)/2
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def add_upto_n(n): res = (n * (n - 1)) / 2 return res n = 6 print(int(add_upto_n(n)))
इनपुट
6
आउटपुट
15