Loading... 我们知道 $x^y$ 其实就是 x 乘了 y 次,但是我们如何减少乘的次数来节省时间复杂度呢? 其实可以让 y 每次都减半,x 基数变大即可。 比如 $2^{32}=4^{16}=16^8=256^{4}=...$ 这样实际上就减少了很多次乘法,从原先的 $y$ 次变成了 $log2y$ 次乘法 这其实就是快速幂的思想,可以应用在单个实数乃至矩阵乘法上。 将这个思路化作代码就如同下面这样: ```go for y > 0 { if y % 2 == 1 { res *= x // 当前这位是 1,乘进结果 } x *= x // 底数平方 y /= 2 // 指数右移 } ``` Last modification:July 7, 2025 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的文章对你有用,请随意赞赏