我被要求找出一个循环序列的第30个值,该序列遵循以下方程:x(n) = 2*x(n-1) - x(n-2)
,其中n >= 3,并且 x(1) = 0
且 x(2) = 1
。
按照斐波那契迭代的逻辑,我想出了以下代码:
def loop(n):
a = 0
b = 1
for i in range(30):
a, b = b, 2 * b - a
return a
在执行
loop(30)
后返回值为30,但我知道从数学上来看应该是29。这段代码似乎多进行了一步操作。有谁能帮忙指出我的代码哪里出错了吗?