gpt4 book ai didi

Python fermat 程序仅适用于低数字

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:26 24 4
gpt4 key购买 nike

我用 Python 编写了这段代码,它应该找到符合方程 a^2 + b^2 = c^2 的数字。它适用于低数字 - 最多大约 14 - 然后就会变得困惑(无限递归)。我不会问它是否不起作用,但我很困惑为什么只是偶尔起作用。要使用它,我输入例如。费马(12,1,1)

def fermat(a,b,c):
if a==1:
print('finished')
return
elif b==a:
a=a-1
b=1
c=1
fermat(a,b,c)
elif c==a:
b=b+1
c=1
fermat(a,b,c)
elif (a**2)-(b**2)==c*c:
print(a,b,c,'fermat')
b=b+1
c=1
fermat(a,b,c)
elif (a**2)-(b**2)!=c*c:
c=c+1
fermat(a,b,c)

最佳答案

发生这种情况是因为深度递归太多。函数可以反复调用自身的次数是有限制的。

我建议你用一个简单的循环来删除递归。

关于Python fermat 程序仅适用于低数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com