是否有任何预先制作的程序可以对10 ^ 6 +位的数字进行乘法运算?

时间:2017-03-31 04:35:57

标签: math numbers multiplication discrete-mathematics largenumber

如上所述,我对用于乘法和除数的程序感兴趣。我不是一个新手编码器所以我自己还不能准备这样的算法,我在谷歌上找不到任何东西。作为一个附带问题,对于两个数字乘以一百万个数字的时间有多大的时间估计?

1 个答案:

答案 0 :(得分:3)

内置大整数的编程语言很方便。这是Python,例如:

SELECT

乘法本身在我的设备上大约需要半秒钟(使用i5-7500处理器)。将结果转换为存储在内存中的十进制字符串需要更长的时间,大约需要48秒。 (如果你不需要十进制,使用一个基于Python内部表示的高效转换将会更快;例如,>>> import random >>> a = random.randrange(10**(10**6), 10**(10**6 + 1)) >>> b = random.randrange(10**(10**6), 10**(10**6 + 1)) >>> c = a * b 是即时的。)如果你将结果写入磁盘大约需要30秒使用两个1.44 MB的软盘,弹出/插入时速度不是很快。

这背后的算法通常是Schönhage–Strassen