2013-08-01 197 views
1

我希望能找到加两个8位数A和B的计算时间,并且用A + B之和继续加B,继续加B,直到结果为止是一个4百万位数字。将两个8位数字加到400万位的计算时间

+0

在什么语言/平台?请提供更多信息。 – dorchard

+0

请给出你如何试图自己解决这个问题,并在你的解释中加入一个例子。 – Dukeling

回答

2

达到400万位数意味着达到/超过M=10^(4*10^6),这是第一个有400万位数的数字。任何8位数字的数字在10^8到10^9-1之间,因此您必须添加大约10 ^(4 * 10^6)/ 10^8次的B才能达到M,因为8(或9 )与4 * 10^6相比非常小,您可以忽略它,并且可以获得10 ^(4 * 10^6)的附加值。现在,如果您认为标准PC每秒执行10^9条指令,它将花费大约10 ^(4 * 10^6-9)秒,这又因为9很小,您会得到〜10 ^(4 * 10^6)秒。

注意:这是关于这里的复杂性,而不是编程语言。

+0

感谢您的回答,我同意这是一个复杂的问题。但我不确定PC速度单位指令/秒。我使用的单位是FLOPS,在某些游戏GPU中,它可以达到1万亿FLOPS。我的意思是PC肯定比10^6指令/秒好得多,你觉得呢? –

+0

是的,我已将其修正为10^9的粗略值,但似乎并未改变渐近结果(事件发生在10^12或10^20)。 –

+0

好吧,我仍然不确定,下面有用户casevh的两个亿位数字乘法的评论,它需要约3秒,我的意思是除了它不应该这么长。 @yi_H:快速测试:在一台快速的64位机器上,将100万位数字提高到100次方大约需要4秒。乘以两个1亿位数字需要大约3秒钟。 - casevh 11月1日在20:48 –

相关问题