WinPython 3.3.2 64位(Win 8.1 64位)上的伪和()溢出

2024-05-29 07:04:01 发布

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

在Win 8.1 64位上,使用WinPython 3.3.2 64位[仅在此版本上!]解欧拉问题#10, 两个函数prob10和prob10i产生不同的结果:

def no_primes():
    return {j for i in range(2,5000) for j in range(i*2, 10000000,i)}

def primes():
    return \[i for i in range(2,10000000) if i not in no_primes()\]  


def prob10():    
        return int(sum(list(map(float,\[i for i in primes() if i<2000000\]))))

def prob10i():    
        return sum(\[i for i in primes() if i<2000000\])][1]

换句话说,如果在求和之前将它们转换为float,则结果是正确的。 如果只求和,结果就不到正确结果的1%(溢出?)。你知道吗

所有涉及的数字都在下面系统最大尺寸,那么问题出在哪里呢? 是否有某种系统最大值[Python3中不存在的]?你知道吗


Tags: noinforreturnif系统defrange

热门问题