gpt4 book ai didi

python - 作业: never ending loop 5**200000

转载 作者:行者123 更新时间:2023-11-30 23:31:48 26 4
gpt4 key购买 nike

我有一个作业:求数字 5**200,000 中 50,000 个连续数字的最大和。我知道如果我对这个数字进行 for 循环,它不会在可行的时间内结束。我尝试将这个数字放入列表中并迭代该列表,但我不明白它是如何工作的?为什么它不像第一种情况那样?是什么让它更快?这是我的代码:

def maxdigits(number,digits):
s=str(number) #conversting the number to a string
l = [int(char) for char in s]
maximum = current = sum(l[:digits])
for i in range(0,len(l)-digits):
current = current-l[i]+l[i+digits]
if current > maximum: maximum = current
return maximum

最佳答案

我想您是在问为什么对数字 5**200000 的数字进行循环会很快完成,而对 0 范围内的所有数字进行循环到 (5**200000)-1(含)需要很长时间。

我认为这对您来说不明显的唯一原因是因为这些数字很大,很难写下来。再想一想。循环遍历 1000000 的七位数字,还是遍历从 0999999 的百万个数字会更快吗? 5**200000 中有 139795 位数字。执行一个简单的循环 139795 次并不是一个巨大的工作量。执行一个简单的循环 5**200000 次是一项巨大的工作量。这是一个荒谬的数字。如果宇宙中的每个原子都是一台计算机,并且每个原子都在宇宙的生命周期中运行,我怀疑它们是否会成功执行任何 5**200000 次。

关于python - 作业: never ending loop 5**200000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com