在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中不存在的]?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐