标题:各位老师好!求助编辑一个大整数的快速乘除法可调用程序
只看楼主
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
2的400000-1次方
二次方数据400000.txt (124.15 KB)

二次方数据700000.txt (217.24 KB)

格式化为18位,好像写入文本变为17位,有数据文件发来对比?
二次方数据400000.txt (117.62 KB)

二次方数据700000.txt (205.81 KB)

都是-1次方
二次方数据3700000.txt (1.06 MB)

从文件保存时间可以看出位数越大运行时间间隔越长.



运行6小时还在6百万,到9千万次方尚早.不过发挥愚公移山精神,总能达到2^99368963这个数,今天仅仅小试这个分治法能跑多快.
若按平均每小时运算1000000次方初略计算的话99百万预计4天时间,再按翻倍来算用8天应该能运算出2^99368963这个数。
从文本文件的大小大概可以估算出是多少位数字了.速度快的电脑达到百万次方用实际分钟更少.

[此贴子已经被作者于2022-2-25 08:55编辑过]

2022-02-24 10:44
ysr2857
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:767
专家分:65
注 册:2020-2-10
得分:0 
回复 361楼 xianfajushi
这个速度够快,非常好!能不能算一下2^99368963-1是否可以被198737927整除?
2022-02-25 09:30
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
当然可以运算了,上面给出的运算时间包括在W7电脑上还做其它事情运行其它程序,目前没条件一台电脑单独只做运算,否则会无聊憋闷坏人的;
首先要设计一个可以不影响电脑做其它事情,能断续运算的程序,获取2^99368963这个整数,看来似乎为期不远了,时间也在可以接受范围;
昨晚用另一台W10电脑运算百万次方的速度更快耗时更少,因此,可以这样期望着运算验证梅森素数可以在家用电脑上进行了,也设计出了速度较快的2次方乘法了.
接下来就是获得整数并验证是否正确,才能进行下一步.
2022-02-25 10:54
ysr2857
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:767
专家分:65
注 册:2020-2-10
得分:0 
回复 363楼 xianfajushi
期待您的运行结果,非常感谢!就是看看2^99368963-1除以198737927的余数是几?是否是0?
这个速度用卢卡斯莱墨法判断是算不完的,但仅仅试除这一个除数是可以的,按您的预测应该在一个礼拜内出来结果。
程序一般都是在后台运行的吧?开的程序多了是会影响速度的。
2022-02-25 11:08
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
不要抱太大期望一周内能够完成,因为除法还没设计呢,设计除法比较麻烦,写除法也需要时间,虽然加法减法草稿已经写出来了,但是有些细节还需要修改和验证并优化.
2022-02-25 11:44
ysr2857
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:767
专家分:65
注 册:2020-2-10
得分:0 
回复 365楼 xianfajushi
谢谢您!辛苦了!效果不错,效率高啊!期待您的结果!
除数很小,利用妨手工计算的除法速度就很快,当然要建立在快速乘法的基础上。有更快更高效的除法更好!
2022-02-25 13:08
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
在开玩笑?难道真的相信我那时间预测?时间有可能也是按2的次方增长,从文件生成间隔看出一些端倪,虽然数据量不多还是有些端倪的.有可能时间大大超出预想,到时就会大跌眼镜说三道四的,不管怎样还是有条不紊地写该写的程序,之前说过的发扬愚公移山精神,要写出可以接续运算的程序,相信总有一天能运算出来.至于时间到底会多长还是以实际为准.
不过我感觉好像和一个不是很有科研精神严谨态度的人在讨论.

[此贴子已经被作者于2022-2-25 17:40编辑过]

2022-02-25 17:39
ysr2857
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:767
专家分:65
注 册:2020-2-10
得分:0 
回复 367楼 xianfajushi
我对电脑程序其实是个外行,谢谢您的关心和帮助,让我看到了一点希望!非常感谢!
2022-02-25 21:05
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
好吧,这样说让我觉得很坦诚,那么,擅长什么?为何要研究这个?能确定不被198737927整除就是质数?什么道理。
我觉得用另外一种算法可能比这个乘法更快,这个要写程序验证一下,有比较大可能实现更快速度。
W10每200万增加1小时,如400万到600万历时3小时600万到800万历时4小时依此类推。

[此贴子已经被作者于2022-2-26 06:07编辑过]

2022-02-25 21:31
ysr2857
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:767
专家分:65
注 册:2020-2-10
得分:0 
回复 369楼 xianfajushi
基本可以这样确定,因为专家确认的是4x+3型的指数p,若p是素数,且2p+1也是素数,则2^p-1就能被2p+1整除。
若是不能整除呢?那必然是素数。

此法你得知道梅森数的各种类型的分解规律。比如99368963是素数,而99368963*2+1=198737927也是素数。
2022-02-25 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499181-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.175479 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved