当前位置: 首页 > news >正文

【快速幂】

【快速幂】

推荐视频链接
推荐好文
注:只是新手的笔记,慎看!!!欢迎大佬指错

求 an怎样写呢?
可以先定义一个cns=1再用一个for循环每次让cns*=a对吧
但是这样时间复杂度就是**O(n)**了,毕竟只是一个小运算,时间复杂度还是有点高了对吧
于是,便引出了快速幂

啥是快速幂?
我们知道,一个数可以转为二进制,如13=1101
怎么来的?
13=1x23+1x22+0x21+1x20=8+4+0+1
于是,213便可以写成21101进一步写成 28+4+0+1即28x24x21

那问题就来了,怎样把一个数弄成二进制?
我们可以对一个数 如13进行位运算&1
位运算&1可以把一个二进制最低位的数表示出来,1&1=1,0&1=0

于是,只要这一位为1,我就得乘这一位的对应2的次方
然后再通过右移运算符>>来逐位查看
代码:

#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;inta,n,p;//p为取余intmi(inta,intn){intcns=1;while(n){if(n&1)cns=(cns*a)%p;a=(a*a)%p;n>>=1;}returncns;}signedmain(){cin>>a>>n>>p;return0;}
http://www.cnnetsun.cn/news/74682.html

相关文章:

  • SCS 59.单细胞空间转录组空间度量(SPATA2)
  • 【毕业设计】基于springboot高校体育运动会比赛系统运动项目、运动论坛(源码+文档+远程调试,全bao定制等)
  • 干货收藏:AI大模型进化史,从ChatGPT到智能体的三次关键跃迁
  • Docker Compose编排LLama-Factory多节点训练集群详细配置示例
  • Wan2.2-T2V-A14B模型部署指南:从VSCode配置C/C++环境说起
  • 计算机Java毕设实战-基于springboot公寓管理系统基于Springboot的公寓报修管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 如何制作支持离线地图的GPS自行车码表:从硬件选型到功能实现的完整指南
  • 计算机Java毕设实战-基于springboot国风彩妆网站springboot国风彩妆化妆品网站电商销售商城系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Honey Select 2 HF Patch技术架构深度解析与模块化部署指南
  • 【课程设计/毕业设计】基于springboot的自习室预订系统设计与实现基于springboot高校自习室预约系统的设计与实现【附源码、数据库、万字文档】
  • 大学计算机基础系列(合集)
  • 【课程设计/毕业设计】基于Web的高校大学生奖学金评定系统设计与实现基于springboot高校学生奖学金评定系统的设计与实现【附源码、数据库、万字文档】
  • 【爬虫框架-8】其他
  • Vue-next-admin终极指南:打造现代化后台管理系统的完整解决方案
  • vgmstream终极指南:游戏音频转换与播放全攻略
  • vgmstream音频解码神器:游戏音频格式转换终极指南
  • 印象大红袍通过上市聆讯:上半年营收5588万 利润678万
  • 蔡东青创办的奥动冲刺港股:靠换电半年营收3.2亿同比降32% 亏1.57亿 蔚来资本是股东
  • 基于Next.js的LobeChat为何成为GitHub星标项目?技术架构全拆解
  • 广合科技冲刺港股:前9个月营收38亿净利7亿 刚斥资3.2亿买楼
  • Vue Signature Pad电子签名组件完整使用指南:快速集成步骤与实用配置技巧
  • Joy-Con Toolkit终极指南:如何轻松自定义你的游戏手柄
  • 暗黑破坏神II存档编辑器:多版本兼容的角色定制解决方案
  • [自动化办公] 【Python】【低代码】在明道云中实现无需 pandas 的数据聚合与 HTML 表格生成技巧
  • OpenFace完整指南:从零开始掌握面部行为分析终极工具
  • Python协同过滤算法 音乐推荐系统_731w447o 论坛 浏览历史
  • 17、图像深度处理技术:从理论到实践
  • GitHub项目Star暴涨:Stable Diffusion 3.5 FP8成AIGC开发者新宠
  • Windows显示器亮度控制终极方案:Twinkle Tray完整使用手册
  • VideoDownloadHelper 终极使用指南:轻松下载网页视频资源