您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页怎样实现大数快速模运算?

怎样实现大数快速模运算?

来源:叨叨游戏网

有网友碰到这样的问题“怎样实现大数快速模运算?”。小编为您整理了以下解决方案,希望对您有帮助:

解决方案1:

内存9999999999999999999999G,CPU9999999999999999999999999999999999999999999999GHZ,
就可以了```~

解决方案2:

搞过数据结构的人应该知道。大数运算有独特的方法的。。。呵呵。
大数,弄成字符串形式的。然后用数组,把这个数分为N段。都存到数组里,再被运算的数也这样放到数组里。再逐个进行运算。
当然,运算也是有很多技巧的。
比如。相加。加了以后,有进位。就要划上去。。。。
你说的大数模运算。呵呵。有点麻烦了。不过原理是一样的。以前我也写过类似的。C800一样,算起来快得很。。。

解决方案3:

NTL大数库,GMP大数库,都可以做大数运算

NTL库:网页链接

GMP库:网页链接

解决方案4:

大多数的编译器只能支持到位的整数运算,即我们在运算中
所使用的整数必须小于等于位,即:0xffffffffffffffff
也就是18446744073709551615,这远远达不到RSA的需要,于是
需要专门建立大数运算库来解决这一问题。

最简单的办法是将大数当作字符串进行处理,也就是将大数用
10进制字符数组进行表示,然后模拟人们手工进行“竖式计算”
的过程编写其加减乘除函数。但是这样做效率很低,因为1024
位的大数其10进制数字个数就有数百个,对于任何一种运算,
都需要在两个有数百个元素的数组空间上做多重循环,还需要
许多额外的空间存放计算的进位退位标志及中间结果。当然其
优点是算法符合人们的日常习惯,易于理解。

另一种思路是将大数当作一个二进制流进行处理,使用各种移
位和逻辑操作来进行加减乘除运算,但是这样做代码设计非常
复杂,可读性很低,难以理解也难以调试。

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务