如何用循环解这个方程?

2024-09-25 16:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这是顺序:

1, 2, 3, -1, 7, -10, 3, -73, …

实际上是这样的:

t(n) = (t(n-3) * t(n-2)) - t(n-1)

例如:-10 = (3 * -1) - 7

我使用了这个代码,但它不像我提供的这个等式

n1 = 1
n2 = 2
n3 = 3
m = eval(input("number: "))
if m < 4:
    if m == n1:
        print(n1)
    elif m == n2:
        print(n2)
    elif m == n3:
        print(n3)
elif m >= 4:
    n4 = (n1 * n2 - n3)
    print(n4)

Tags: 代码numberinputif顺序evalprintelif
3条回答
sequence=[1,2,3]

def find_value(n):
    if n < 4:
        return sequence[n-1]
    else:
        count=3
        while count<n:
            sequence.append(sequence[0]*sequence[1]-sequence[2])
            sequence.pop(0)
            count=count+1
        return sequence[-1]

if __name__=="__main__":
    n=int(input("Enter digit"))
    print(find_value(n))

这是我找到t(m)的解决方案

n = [1,2,3]
m = int(input("number: ")) #eval is a big security risk!!!
while len(n) < m:
    n.append((n[-3] * n[-2] - n[-1]))
print(n[m-1])

其中n[负数]是列表末尾的数字

结果:

1, 2, 3, -1, 7, -10, 3, -73, 43, -262, -2877, -8389, 762163, 23372990, etc.

这就是你能做到的。这类似于斐波那契序列

n1 = 1
n2 = 2
n3 = 3
m = int(input("number: "))
if m < 4:
    if m == n1:
        print(n1)
    elif m == n2:
        print(n2)
    elif m == n3:
        print(n3)
    
else:
    for i in range(3, m):
        temp1, temp2 = n2, n3
        n3 = n1 * n2 - n3
        n1, n2 = temp1, temp2
    print(n3)

相关问题 更多 >