微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spyder 重新启动内核,这似乎是整数溢出问题

如何解决Spyder 重新启动内核,这似乎是整数溢出问题

我一直在尝试对我上面写的 3 个函数进行压力测试,以找到阶乘。我通常使用无限循环运行压力测试,在我得到 100 个好的结果后会中断。但是对于这些,我最多只能运行 5 次循环(我将 while True 替换为 for i in range(5)。如果我想运行它超过 5 次,内核会重新启动并且不会执行代码

我的问题是:

  1. 是否由于整数溢出而发生?如果是,那么python中溢出的限制是多少?
  2. 还是我的 spyder IDE 有问题?
  3. 整数溢出限制是否取决于我的系统配置?还是所有系统都一样?
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 举报,一经查实,本站将立刻删除。