| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 31038 人关注过本帖
标题:各位老师好!求助编辑一个大整数的快速乘除法可调用程序
取消只看楼主 加入收藏
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 314楼 xianfajushi
实际可能是仅仅减少了一步乘法,而增加了两步减法,如果减法速度不快的话就得不偿失,很难提高速度的,我的感觉就是这样的,仅仅供参考,请多看看高手的指点!
2021-12-08 21:42
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 318楼 xianfajushi
谢谢您的关注和指导,我的最快速度是几个小时算出来2^n其中的n是几不记得了,是个70万位多一点的数,这个速度是不行的,想要找到巨大的素数和孪生素数对,这个速度不能破解世界纪录。

世界纪录最大的素数是第51个梅森素数,有3千万位。目前发现的最大的孪生素数对是约38万位。
2021-12-17 14:59
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 318楼 xianfajushi
想要破解世界纪录,几十万位,甚至几千万位的整数,其乘法除法都必须在1秒内算一步,甚至更快,在几十毫秒内完成,可能是普通电脑不行?
破解纪录一般都是分布程序,就是并行程序,是成千上万台电脑联网的。

我想用普通电脑,用特殊算法试试,但速度太慢了,不行,不能实现。(特殊算法就是指,仅仅算一步除法,进行初步判断,比如:一般人认为对于梅森数若指数p是4x+3型的奇数,指数p若是素数,且2p+1也是素数,则该梅森数可以被2p+1整除,若是不能整除呢?那就基本可以确定是素数了,这样的情况是很稀少的。比如99368963是个素数,2*99368963=198737927也是素数,2^99368963-1是否能被198737927整除呢?如果不能被整除,那就可能是素数,几乎是确定的。第51个梅森素数没有这个数大呢,如果这个数是素数就是第52个梅森素数。)

谢谢您的支持和指导!欢迎沟通和探讨!
2021-12-17 15:21
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 321楼 xianfajushi
要判定梅森素数,是用的卢卡斯莱默测试法,该法一般要算到第p-1项,一般是若第p-1项的余数为0则可以确定为素数,就是有p-1步除法,一年才3千多万秒,该值是99368963,就是9千多万,如果1秒算一步除法,那么要算3年,普通电脑行吗?速度低于这个行吗?再低了,怕是算到宇宙的年龄也算不完了,行吗?

所以,用这个法的话,普通电脑可能是无法达到的。

[此贴子已经被作者于2021-12-19 08:33编辑过]

2021-12-18 02:19
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 321楼 xianfajushi
奖金是真的,如果超过1亿位了奖金就是15万美元了。

从48~51个都是美国人发现的,如果是别国人先发现的,还给人家奖金吗?
这个道是不能确定的,美国人说话不能信任的,为啥都是美国人发现的,别国人没有参与还是搞鬼了?这个都不清楚,
总之,你就是找到了第52个梅森素数,也可能人家不承认不给奖金。

如果是真的有这个能力,那就是为国争光了!起码中国专家会给你验证结果,并给你个答复或者给你个荣誉奖!
2021-12-18 02:29
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 324楼 xianfajushi
对,不过,加法减法也是要尽量采用快速的算法,比如把多位数字当一位来算就可以快了一点。
2021-12-19 08:35
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 326楼 xianfajushi
理论上除法也可以分段的,只不过分段后速度不会提高还可能降低了,而且容易出错。分段试商的时候要采用特殊算法不能一个一个试,否则速度就降低了,还要注意补0,商的位数不够的高位补0,所以,容易出错还不容易提高速度。

[此贴子已经被作者于2021-12-19 10:46编辑过]

2021-12-19 10:45
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 328楼 xianfajushi
不用考虑容纳,数据类型设为string 型,一般内存足够大就行,输出的时候若用控件text那最多输出65535位,要想完整输出得选其他文本设备,比如电脑自带的笔记格式等。

我算的最大的数是70万位的,没有输出来,中间计算都没有显示内存溢出等情况,只是程序慢,算了几个小时。
2021-12-19 17:19
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 328楼 xianfajushi
内存足够大的话,几千万位都没问题,上亿的行不行不知道,这么大数据一般不必输出,仅仅知道个结果(比如是素数还是合数等),特殊数据可以选择有用的或者有意义的一段字符串输出来就行。

[此贴子已经被作者于2021-12-19 17:27编辑过]

2021-12-19 17:26
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 331楼 xianfajushi
对,想法挺好,谢谢您关注和支持!
2021-12-25 09:20
快速回复:各位老师好!求助编辑一个大整数的快速乘除法可调用程序
数据加载中...
 
   



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

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