学习总结——快速幂

阅读 70

2022-03-12

快速幂

一. 原理

将某个数字多次自乘化为它的若干次幂的少次相乘,从而减少计算量,提高效率。转化的方法如下:将指数写成二进制之后,从右到左,如果为0则跳过,如果为1则乘底数的2次幂,如:100^10D = 100^1010B= 100^10B * 100 ^ 1000B=100^2D * 100^8D。

二. 取余运算重要性质

  • (a + b) % p = (a % p + b % p) % p
  • (a - b) % p = (a % p - b % p) % p
  • (a * b) % p = (a % p * b % p) % p          使用在快速幂中
  • a ^ b % p = ((a % p)^b) % p
  1. 结合律:

  • ((a+b) % p + c) % p = (a + (b+c) % p) % p
  • ((a*b) % p * c)% p = (a * (b*c) % p) % p
  1. 交换律:

  • (a + b) % p = (b+a) % p
  • (a * b) % p = (b * a) % p
  1. 分配律:

  • (a+b) % p = ( a % p + b % p ) % p
  • ((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p

精彩评论(0)

0 0 举报