मान लीजिए हमारे पास bn नामक संख्याओं का एक क्रम है, जिसे b1=1 और bn+1/bn=2n जैसे पुनरावृत्ति संबंध द्वारा दर्शाया गया है। हमें दिए गए n के लिए log2(bn) का मान ढूंढना है।
तो, यदि इनपुट 6 की तरह है, तो आउटपुट 15 होगा क्योंकि log2(bn) = (n * (n - 1)) / 2 = (6*(6-1))/2 = 15।
हम इस समस्या को इस संबंध को हल करके हल कर सकते हैं -
bn+1/bn = 2n
bn/bn-1 = 2n-1
...
b2/b1 = 21, यदि हम उपरोक्त सभी को गुणा करते हैं, तो हम प्राप्त कर सकते हैं
(bn+1/bn).(bn/bn-1)...(b2/b1) = 2n + (n-1)+...+1
तो, bn+1/b1 = 2n(n+1)/2
चूंकि 1 + 2 + 3 + ... + (n-1) + n = n(n+1)/2
तो, bn+1 = 2n(n+1)/2 * b1; हम मान रहे हैं कि प्रारंभिक मान b1 = 1 है
तो, bn+1 = 2n(n+1)/2
(n+1) को n के लिए प्रतिस्थापित करने के बाद, हमें मिलता है,
bn = 2n(n-1)/2
दोनों तरफ लॉग लेने पर, हमें मिलता है,
log2(bn) = 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