您的位置:首页 > 其它

高精度 大整数 计算 模板优化方向

2016-03-28 11:29 288 查看
在此列出了优化方向,并在接下来的几篇博客中贴出每一个的代码。

前言:

大整数运算的核心思想是利用数组保存数据进行模拟运算,优化思想均是二分优化,还有一个小技巧优化。

1.加法add:利用数组按位相加,无优化。

2.减法sub:利用数组按位相减,无优化。

分两个版本,s1是判断两个减数的大小进行相应的求值并标明正负,s2是用在除法中,在两个减数大小判断做手脚,只判断正负即可。

3.乘法mul:m1每9个数字划分到一个新的数组当中,即10进制变成1e+9进制,时间复杂度由a*b优化为 a + b + ab/81;//a b 指的是两个字符串的位数。

m2当高精度乘以longlong范围内的数是无需优化,直接按位相乘。

4.除法division:利用1e+9进制,d1,两个高精度,试商,利用m2乘法和s2减法进行,试商2,4,6增长。

d2,高精度除以小整数,直接按位运算。

小整数除以高精度,直接得余数。

5.乘方运算:优化方向,二分优化,例如:a^11 = a^10*a = a^5*a^5*a是否字符串优化见第3条;

利用相同的得数减小运算量。

附:最大公因数利用辗转相除。

最小公倍数利用两数相乘除以最大公因素和或者其中一个因数自增。

模板见下文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: