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

在此列出了优化方向,并在接下来的几篇博客中贴出每一个的代码。
前言:
大整数运算的核心思想是利用数组保存数据进行模拟运算,优化思想均是二分优化,还有一个小技巧优化。
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条;
利用相同的得数减小运算量。
附:最大公因数利用辗转相除。
最小公倍数利用两数相乘除以最大公因素和或者其中一个因数自增。
模板见下文。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值