Advertisement

牛客网 a^b 题解(位运算 | 快速幂)

阅读量:

原题链接:https://ac.nowcoder.com/acm/contest/996/A
算法:快速幂 + 位运算
1、本题所涉及的位运算部分并不复杂(《算法指南》将此题归类为位运算的做法似乎不太合理)
位运算
①通过b & 1可以判断b的奇偶性,若为奇数则返回1,若为偶数则返回0,相较于直接使用%2运算,这种方式在速度上可能具有一定优势(不过本人尚未进行实际验证)
②将b >> 1操作可使二进制表示的b向右移动一位,其效果等同于除以2(但执行效率更高)
快速幂
本题中真正难以理解的部分在于快速幂这一算法,我花费了较长时间才彻底弄清楚其原理
基于基础数学知识可知:

请添加图片描述
在这里插入图片描述

(引用:dongji1920的解释)
在该表达式的基础上,还需理解快速幂运算中的一项基本公式
**(a * b) % p = (a %

全部评论 (0)

还没有任何评论哟~