python - 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
压力测试()
解决方案
推荐阅读
- excel - 在彼此下方生成数据透视表。VBA
- next.js - Nextjs Image 增加了第二个?图片网址的问号
- performance - WiFi 网速慢,但在 LAN 上还可以
- python - 如何对数据透视图中的列值进行排序
- flutter - 修改颤振默认计数器模板
- flutter - 构建 SpinKitCircle(state: _SpinKitCircleState#590ee(ticker active)): No Directionality widget found 时抛出了以下断言
- java - 如何通过通知进入活动?
- php - 如何在没有 vue.js 的情况下使用推送器 laravel“实时”计算未读通知数据
- android - 无法从文件选择器中获取所选文件并显示在列表视图中
- javascript - Webpack DevServer 加载列表目录而不是 main.html