同余学习笔记

sjp大佬让我写同余那就只能硬着头皮按学长的ppt来写了,咕咕咕

数学符号

不想一个一个打了,凑合着看吧

快速幂

输入b,p,k的值,求b^p mod k的值。

方法一

直接反复平方,复杂度是$O(n)$基本没戏会TLE的,不用看了

方法二

如果$a$自己乘一次就变成了$a^2$,$a^2$再自乘一次就变成了$a^4$.....乘$n$次就变成了$2^n$

我们将b分解成二进制看一下下

假设b=$11$,分解成二进制就是$(1011)$,从左到右这些 $1$分别代表十进制的 $8$,$2$,$1$,也就是$a^b=a^8 \times a^2 \times a^1$这就是快速幂的原理

int quick_pow(int a, int b)
{
    int ans = 1, base = a;
    while(b > 0)
    {
        if(b & 1)//和b%2!=0一样的效果
            ans *= base;//把ans乘上对应的a^(2^n)

        base *= base;//base自乘
        b >>= 1;//位运算,b右移一位,如101变成10(把最右边的1移掉了),10010变成1001。现在b在二进制下最后一位是刚刚的倒数第二位。
    }
    return ans;
}

同余

概念

若 $m | (a − b)$,则称$ a $与$ b $对模$ m$ 同 余,记作$ a ≡ b (mod m)$

同余的性质

1.自反性:$a ≡ a$
2.对称性:若 $a ≡ b$,则$ b ≡ a$
3.传递性:若$ a ≡ b$,$b ≡ c$,则$ a ≡ c$
4.同余式相加:若 $a ≡ b$,$c ≡ d$,则 $a ± c ≡ b ± d$
5.同余式相乘:若 $a ≡ b$,$c ≡ d$,则 $ac ≡ bd$

乘法逆元

概念:

若 $ap ≡ 1 (mod m)$,则称 $a$ 和 $p$在模 $m $意义下互为乘法逆
元。简称$ a $是 $p$ 的逆元或$ p$ 是$$ 的逆元。为了方便我们常把 $a$
的乘法逆元记做$ a^{-1}$ 。
}
因为 $a \times a^{-1} ≡ 1$,所以我们可以把$ a^{−1} $看作$\frac{1}{a} $。但请注意在模意义下不存在除法操作。乘法逆元可能不存在

求逆元的方法

扩展欧几里得

没更新完

猜你喜欢

转载自www.cnblogs.com/pyyyyyy/p/10884521.html
0条评论
添加一条新回复