Python中求解給定遞推關係的第n項
假設我們有一系列數字稱為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
廣告