在Python中找到给定递归关系的第n个项
假设我们有一个称为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
通过记录双方,我们得到
对数2(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