在 Python 中查找给定递归关系的第 n 项

pythonserver side programmingprogramming更新于 2025/10/10 22:04:17

假设我们有一个名为 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/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

相关文章


有用资源