我最近尝试在 python 中运行 Project Euler 问题。我相信它会执行 100^5 步之类的操作。
在看到我的解决方案耗时太长(它应该在一分钟内运行)后,我问自己任何运行这么多步骤的 python 程序是否可行(在一分钟内)
所以,我设计了一个愚蠢的小测试
def fun():
l=range(1,100)
for x in l:
for y in l:
for k in l:
for n in l:
for h in l:
s=1
>>> t = timeit.Timer('demorado.fun()','import demorado')
>>> t.timeit(1)
1202.484529018402
>>>
有意义吗?它是否证明具有这么多步骤(在本例中,我猜有 2*(100^5))的任何程序总是需要大约 20 分钟?
请您参考如下方法:
Euler 项目的问题不应该在一分钟内运行,因为您的编程语言足够快,但因为存在比蛮力更聪明的解决方案。
但是在你的情况下,是的,你会得到一个循环 99^5 次的函数(不是 100^5 因为 range(1,100) 是 1, 2, ..., 99)...
