zoukankan      html  css  js  c++  java
  • 同余运算及其基本性质

    取模:

    a%b b定是正整数,尽管语言上b<0合法。/b=0出现除0错 

    (a+b)mod n=((a mod n)+(b mod n)) mod n

    (a-b)mod n=((a mod n)-(b mod n)+n)mod n     //注意减法, a mod n 可能小于 b mod n 结果需加上n

    ab mod n=(a mod n)(b mod n)mod n

    注意乘法,注意(a mod n)(b mod n)是否会溢出,用long long 保存中间结果

    1 int mul_mod(int a,,int b,int n)
    2 {
    3     a%=n;b%=n;
    4     return (int)((long long)a*b%n);
    5 }

    除法不可直接取模,用到乘法逆元

    同余运算:

    (a-b)%m==0,就称a,b关于m同余/a,b对模数m同余

    e.g. (100-60)%8==0,我们就说100和60对于模数8同余

    它的另一层含义就是说,100和60除以8的余数相同

    a和b对m同余,我们记作a≡b(mod m)

    你会发现这种记号到处都在用,比如和数论相关的书中就经常把a mod 3 = 1写作a≡1(mod 3)

    性质:

    如果a≡b(mod m),x≡y(mod m),则a+x≡b+y(mod m)//两边分别相加也是
    如果a≡b(mod m),x≡y(mod m),则ax≡by(mod m)//两边分别相乘也是
    如果ac≡bc(mod m),且c和m互质,则a≡b(mod m)//c,m互质时,去掉c也是

    模线性方程组:

    输入正整数a,b,n 解方程ax≡b(mod n).a,b,n<=10^9

    方程可理解为ax-b是n的正整数倍,设倍数为y,则ax-b=ny;即ax-ny=b  解此不定方程----扩展欧几里得算法

    同余方程的解是一个同余等价类

    b=1时,ax≡1(mod n)的解称a关于模n的逆invers----乘法逆元

    有解条件,a,n互质gcd(a,n)=1,此时,方程只有唯一解

  • 相关阅读:
    1503: [NOI2004]郁闷的出纳员
    2049: [Sdoi2008]Cave 洞穴勘测
    2301: [HAOI2011]Problem b
    BZOJ 1923: [Sdoi2010]外星千足虫
    BZOJ 2115: [Wc2011] Xor
    POJ 1830 开关问题
    欧拉函数基础
    BZOJ 2186 沙拉公主的困惑
    POJ 1845
    逆元基础知识整理
  • 原文地址:https://www.cnblogs.com/kimsimple/p/6391572.html
Copyright © 2011-2022 走看看