搜索
编程论坛
→
开发语言
→
『 VB6论坛 』
→ 各位老师好!求助编辑一个大整数的快速乘除法可调用程序
标题:
各位老师好!求助编辑一个大整数的快速乘除法可调用程序
只看楼主
ysr2857
等 级:
贵宾
威 望:
28
帖 子:767
专家分:65
注 册:2020-2-10
第
161
楼
得分:0
明白了,人家的乘法还调用了加法,我的不调用加法,乘法没有我的快,加法比我的快。同样的数据我的加法需要3秒,人家的是不到1秒:2444位加2444位,用时6.30000000019777E-02秒
2020-02-27 11:10
xianfajushi
等 级:
黑侠
威 望:
8
帖 子:527
专家分:690
注 册:2007-9-8
第
162
楼
得分:0
就比傅里叶的,其他的不用比,有傅里叶的拿出来比比看。暂时用4千*8位的,4千*4千的尚未动手,若4千*8位的比不过傅里叶就不费心去设计了,目前只是尝试实现了思路,我说过会尝试的。
2020-02-27 11:16
ysr2857
等 级:
贵宾
威 望:
28
帖 子:767
专家分:65
注 册:2020-2-10
第
163
楼
得分:0
回复 162楼 xianfajushi
不会傅里叶变换,继续学习,没法比了,编不了程序。谢谢您!等十几天至少,才可能弄出来。
2020-02-27 11:30
xianfajushi
等 级:
黑侠
威 望:
8
帖 子:527
专家分:690
注 册:2007-9-8
第
164
楼
得分:0
复制了一个迭代型:https://blog.
使用4千*8位
2020-02-27 13:22
xianfajushi
等 级:
黑侠
威 望:
8
帖 子:527
专家分:690
注 册:2007-9-8
第
165
楼
得分:0
傅里叶比较快,因此,没兴趣再去设计了。4千*4千
[此贴子已经被作者于2020-2-27 13:50编辑过]
2020-02-27 13:22
ysr2857
等 级:
贵宾
威 望:
28
帖 子:767
专家分:65
注 册:2020-2-10
第
166
楼
得分:0
回复 165楼 xianfajushi
您好!你的程序速度很快了,不懂vc学不了,你的原理是啥?vb可能不支持,我研究学习傅立叶变换的乘法除法程序。
2020-02-27 14:21
xianfajushi
等 级:
黑侠
威 望:
8
帖 子:527
专家分:690
注 册:2007-9-8
第
167
楼
得分:0
分段多位数乘法4千乘以4千与4千乘以8位的原则是一样的,从左到右相乘,最高位相乘后,往后位的进位与前位相加。不想再设计了,这里只做描述和一个8位相乘的代码例子记录,估计的虽说堪舆傅里叶变换快速乘法媲美,还是觉得稍逊一点。同样的道理可用加法、减法、除法,其重点就是对进位用加法进行处理,而一次可以处理多位,受数据类型位数的限制,只能取其位数的一半-1位作为乘法,加法、减法、除法则可达18位推理的位数。
从低位往高位算也是一样的原则,有一点区别就是要让进位暂存,等运算完成后再用加法计算进位。从程序写作来说,从高位往低位进行运算写程序比较方便。
说白了就是传统的算法把多位数当作1位数看待即可,原来的模拟传统算法程序稍加修改就可以了,不过还是要注意对0的处理。
[此贴子已经被作者于2020-2-27 16:12编辑过]
2020-02-27 14:36
ysr2857
等 级:
贵宾
威 望:
28
帖 子:767
专家分:65
注 册:2020-2-10
第
168
楼
得分:0
这种方法占内存,以前做的是4位一个数组,速度提高不明显,但是到不了1万位就会显示内存溢出了。
[此贴子已经被作者于2020-2-28 12:42编辑过]
2020-02-28 09:06
wmf2014
等 级:
贵宾
威 望:
216
帖 子:2039
专家分:11273
注 册:2014-12-6
第
169
楼
得分:0
经过对你的加解密函数qksmimo部分改进,判断速度已经提升至7秒以内,估计如果我完全用vb写那个快速积模和快速密模函数,应该可做到一秒内完成50至100位的判断。我记得我当时用c做的,素数都在150位以上,加解密汉字超过50个(相当于英文字符100个,不像你才用个“123”做明文),都是瞬间完成的,尽管vb没有速度优势,但也不至于慢许多。
发现后来你们的讨论都是在变态的1万位以上的乘法运算,用vb就毫无价值了,即使用当今最快的算法,大概也比不上c的传统算法。在传统竖式乘法算法中vb最多可以使用到7位数,相当于一千万进制,除法最多用8位(一亿进制),加减法可用到9位,这些都要定义long型数组;用纯粹的16进制计算则只能定义byte数组,属256进制,只有byte类型是无符号的。这些算法肯定比一个个的字符十进制运算快。
能编个毛线衣吗?
2020-02-28 16:20
xianfajushi
等 级:
黑侠
威 望:
8
帖 子:527
专家分:690
注 册:2007-9-8
第
170
楼
得分:0
C++写个DLL文件供VB调用算了,是很快又不错的方案.
2020-02-28 17:00
401
17/41页
12
13
14
15
16
17
18
19
20
21
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-499181-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.100082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved