一款分解质因数的软件 大数分解质因数的方法

一款分解质因数的软件




最近偶然需要把一个19位数分解质因数,于是到网上去找现成的计算程序,结果令人失望。找到了几个,其中最好的一个限时收费,但却只能分解至16位数;其余的最多只能有效分解9位数,而且运算速度慢得像蜗牛。

没办法,只好自己来做。做成的结果是:可以有效分解27位数,在16
一款分解质因数的软件 大数分解质因数的方法
位数以内计算速度不输于下载的那个最好的限时收费的东东。看来,一切都挺好。但接下来就有问题了,原来,随着被分解数位的增加,计算所需的时间增长更快。下面是几条测试记录:

(1)10位数:9999999999 = 3^2 × 11× 41 ×271 × 9091
耗时0.00分

(2)16位数:9999999999999999= 3^2 × 11 ×17 × 73× 101 ×137 × 5882353
耗时0.48分

(3)20位数:99999999999999999999= 3^2 × 11 ×41 × 101× 271 ×3541 × 9091 × 27961
耗时46.96分

(4)21位数:99999999999999999999 = 3^2× 11 ×41 × 101× 271 ×3541 × 9091 × 27961
耗时172.40分

从以上记录可以看出,对21位以上的数进行测试已经没有意义,因为那耗时将不是我们可以接受的时间。

原本我以为高耗时是因为所给的算法不够好,于是绞尽脑汁构思了一个“更优”算法,上机去试,那知道这个“更优”其实“更劣”——当分解20位数时,“优化”后的程序比“优化”前其耗时硬是增加了10分钟以上!看来,未“优化”的算法有可能就是最优的。

进入一些算法论坛去打探,才知道这个问题没有好的解决办法。一旦被分解数超过16位,高耗时将是不可避免的。除非,我们的计算机有了更高端的硬件——我想。

这样的结果也就彻底打消了我的一个念头:去做位数更多的质因数分解程序,使可分解数的位数达到数万位。我自信这样的程序在算法上并无原则困难,但对PC机而言却毫无意义,因为其计算耗时可能会以天、月来计!

鉴于对大整数的质因数分解在密码设计中有着极为重要(或许是第一重要)的位置,我想必然应该已经有现成的大整数质因数分解的程序了,但这样的程序只能在巨型机上运行。

在这篇文章写完之际,我忽然有了一个新的想法:事先制作一个已知素数的数据库,我们的程序在运行中调用这数据库中的数据,如此将会几十倍甚至百倍地提高计算速度。而这样的数据库的制作并不很困难。

不过,如此的方案在大幅度节省时间的同时,程序本身的结构却会复杂起来,并且在运行中将会占用更多的空间资源——这很像当年抗日战争时白崇禧所说的“以空间换取时间”。呵呵,这倒挺有趣……

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/204338.html

更多阅读

一款颇具特色的DMR数字对讲机 颇具

一款颇具特色的DMR数字对讲机          ――介绍杭州宏睿公司的数字芯片杭州宏睿通信技术有限公司开发的数字芯片HR_C5000,是我国数字对讲机器件中首款的DMR数字专用ASIC芯片,其设计独具特色,电路结构简单、功能充分、灵活

女孩使用的手机推荐/女生用什么手机好 推荐一款女生用的手机

女孩使用的手机推荐/女生用什么手机好——简介在如今智能手机市场爆炸的年代,想要给自己换一款好手机实在不易,收集品种虽然齐全,种类虽然多样,但是一般筒子们看起来大同小异,实在没什么差别。小编自认为对性价比比较高的手机多少有些见

向网管们推荐一款好用的网管软件 推荐一款翻墙软件

向网管们推荐一款好用的网管软件[Friendly Pinger]2009-06-09 11:05为了提高网络管理效率,我们有必要及时为自己单位的局域网生成一个方便、直观的网络拓扑图,巧妙地使用这张网络拓扑图,我们能够快速地找到网络故障的源头。现在,笔者就

声明:《一款分解质因数的软件 大数分解质因数的方法》为网友男霸分享!如侵犯到您的合法权益请联系我们删除