【发布时间】:2018-12-15 22:47:45
【问题描述】:
知道如何估计这个程序需要多长时间吗?我已经运行了 8 个小时的程序,不知道还要等多久。
print (9 ** ((9 ** 9) + 9))
我知道答案是巨大的(我知道它会溢出数十亿位数)。我只是想知道需要多长时间。
【问题讨论】:
-
打印所需的时间是精明的。到控制台的 IO 是 s l o w 。 - 你正在测量控制台的输出 - 而不是计算它所需的时间。
-
好的,但是为什么要计算这个呢?
-
时间取决于您的机器,即您的 CPU、RAM、硬盘(因为不,我认为您的 RAM 不够大)、您的操作系统...我不认为任何人都为此程序制定了基准;)
-
嗯,这应该小于 10**10 位。 Python 每个数字需要大约 0.45 个字节。这意味着最终数字约为 5 GB 内存。预计约。 2个临时变量需要计算相同的大小。所以大约 15 GB。因此,只需开始计算并监控您的 RAM 使用情况。然后推断达到该数字需要多长时间。这应该给你一个数量级的估计......
-
在基数 9 中,您的答案是 1 后跟 0 387,420,498 次。
标签: python performance number-theory