快速幂——二进制

快速幂是一种高效的幂运算算法,通过二进制表示法减少运算次数。原理是将指数分解为二进制形式,逐步计算底数的平方并取模。文章详细介绍了快速幂的原理,并提供了C++代码模板,适用于解决需要大数模幂运算的问题。
摘要由CSDN通过智能技术生成

一、引言

快速幂是一种快速进行幂运算的算法,顾名思义,快速幂就是快速算底数的n次幂,时间复杂度

变为了(\logn),比O(n)要快不少.

二、原理

所以,快速幂变快的原理是什么?
 

众所周知,任何一个正整数都可以用不同的二进制数来表示,而二进制中每一位的前一位都是该位的两倍,则我们可以减少运算次数。

例如:要计算^{_{}}2^10,10在二进制中为“1010”

           则我们可以用2*2算出2^2接着用(2^2)*(2^2)算出2^4

           接着用(2^4)*(2^4)算出2^8

           最后将2^8与2^2相乘,即可得出2^10

三、代码

因为幂算完后值往往会很大,所以题经常会让模上一个很大的质数,类似于1e9+7这种

模版题题目如下:

题目描述

给你三个整数a,b,p  求a^b mod p=s.

输入格式

输入只有一行三个整数,分别代表 a,b,p.

输出格式</

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值