如何解决Spyder 重新启动内核,这似乎是整数溢出问题
我一直在尝试对我上面写的 3 个函数进行压力测试,以找到阶乘。我通常使用无限循环运行压力测试,在我得到 100 个好的结果后会中断。但是对于这些,我最多只能运行 5 次循环(我将 while True 替换为 for i in range(5)。如果我想运行它超过 5 次,内核会重新启动并且不会执行代码。
我的问题是:
- 是否由于整数溢出而发生?如果是,那么python中溢出的限制是多少?
- 还是我的 spyder IDE 有问题?
- 整数溢出限制是否取决于我的系统配置?还是所有系统都一样?
def factorial_naive(n):
if n==1:
return 1
return n*factorial_naive(n-1)
def factorial_loop(n):
mul=1
for i in range(1,n+1):
mul= mul*i
return mul
def factorial_list(n):
f= [1]
for i in range(1,n+1):
f.append(i*f[i-1])
return f[n]
压力测试:
def stresstest():
import random
random.seed(5)
for i in range(5):
n= random.randint(0,10)
print(f' factorial of {n},Result1= {factorial_naive(n)}')
print(f' factorial of {n},Result2= {factorial_loop(n)}')
print(f' factorial of {n},Result3= {factorial_list(n)}')
if factorial_naive(n) == factorial_loop(n) == factorial_list(n):
print('ok\n')
else:
print('Error')
break
压力测试()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。