ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

快速幂&&龟速乘&&快速乘

2019-07-26 10:01:18  阅读:199  来源: 互联网

标签:龟速 QAQ 复杂度 long && 大佬 快速


背景

  今天有一道题死活过不去,然后看大佬的博客,发现需要用到龟速乘。

  然鹅我并不知道什么是龟速乘,于是就去查了QAQ

  然后还被安利了快速乘。


  做题的时候经常需要求解形如 ab mod c 的式子。

  当b的值比较小的时候,我们可以使用 循环乘【基本挂掉 或者 快速幂。

快速幂

  我知道大家都会,所以放个代码滚了

  

   算法时间复杂度 O(log n)。

龟速乘

  快速幂多么优秀的复杂度啊。

  然鹅总是会有很多很多的毒瘤出题人,会造诸如一下这组数据的一大堆数据点。

19260817 2333333 1234567654321

快速幂爆了QAQ【当模数>1e9的时候,在相乘的时候爆long long了

????手写高精度????

不,我们选择龟速乘。

 

比起计算机自带的乘法,龟速乘的的运行速度要慢上一些。

但是,它可以保证快速幂不会boom的一声炸掉,然后送给你一个神奇的数字。

 

把龟速乘和快速幂放在一起看,可以发现,造成快速幂爆掉,而龟速乘没事的原因就是

  快速幂里的x是指数级增长,而龟速乘变成了翻倍

快速乘

  被旁边的大佬安利了快速乘,于是去学了。

人们在研发出上面龟速乘以后,再也不用为了次方运算+取模的题型烦恼了……

然而,总是有人不满足:

 那就是复杂度为O(1)的,一行可以打完的,快速乘的诞生。

从大佬的博客里面看到了这个

  这是2009国家集训队论文:

    骆可强:《论程序底层优化的一些方法与技巧》

 

顺便%%%%%%%%%%%%%%一发

其实上面那一坨术语意思就是:

  long double 存下会爆 long long 的值,完成运算之后,再把不会爆 long long 的值塞回去。

 

不过再好的算法都会有漏洞,快速乘的缺点就在于,可能会产生由于long long和long double互相转换而产生的精度损失。

总结

  每个算法都有利有弊,还是根据情况选择使用吧QAQ

标签:龟速,QAQ,复杂度,long,&&,大佬,快速
来源: https://www.cnblogs.com/qxyzili--24/p/11235649.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有