zoukankan      html  css  js  c++  java
  • 同余

    同余

    定义:设m是一个正整数,设a,b是两个整数,则a(equiv)b (mod m),当且仅当 m | (a-b),称a, b模m同余。
    换句话说,a, b模m同余当且仅当a, b用欧几里得除法除以m得到的余数相等。

    同余的保运算性:设m是一个正整数,设(a_1,b_1,a_2,b_2)有:
    (a_1equiv b_1)(mod m)
    (a_2equiv b_2)(mod m),则:
    (a_1+a_2equiv b_1+b_2)(mod m)
    (a_1cdot a_2equiv b_1cdot b_2)(mod m)

    同余的性质:
    设m是一个正整数,设(dcdot aequiv dcdot b) (mod m),如果(d, m)=1,则a(equiv)b (mod m)

    设m是一个正整数,设a(equiv)b (mod m),d > 0,则(dcdot aequiv dcdot b) (mod m)

    设m是一个正整数,设a(equiv)b (mod m),如果d(mid)m,则a(equiv)b (mod d)

    (m_1,cdots, m_k)是k个正整数,设a(equiv)b (mod (m_i)) 其中(i=1cdots k)
    则a(equiv)b (mod[(m_1,cdots m_k)])

    剩余类

    设m是一个正整数,对任意整数a,令
    (C_a=lbrace c|cin Z, cequiv a (modspace m) brace),则不难证明:
    i.任意一个整数必然包含在一个(C_r)中,(0le rle m)
    ii.(C_a=C_b)的充分必要条件是:a(equiv)b (mod m)
    iii.(C_a)(C_b)的交集非空的充分必要条件是:a( e)b (mod m)

    Notation:(C_a)叫做模m的a的剩余类,一个剩余类中的任意一个数叫做该类的剩余或代表元。

    完全剩余系

    (r_0, cdots r_{m-1})是m个整数,并且其中人恶化两个数都不在同一个剩余类里,则称(r_0,cdots r_{m-1})为模 m 的一个完全剩余系。

    完全剩余系的性质:
    设m是一个正整数,a是满足(a, m)=1的整数,b是任意一个整数,若集合k是遍历模m的一个完全剩余系,则ak+b也是遍历模m的一个完全剩余系。

    (m_1, m_2)是两个互素的正整数,若(k_1, k_2)分别遍历模(m_1, m_2)的完全剩余系,则(m_2k_1+m_1k_2)是遍历模(m_1·m_2)的一个完全剩余系。

    证明.
    要证明(m_2k_1+m_1k_2)是遍历模(m_1m_2)的一个完全剩余系,只需要证明(m_2k_1+m_1k_2)中的任意两个数不同余
    反证法:设存在正整数(k_1,k_2)(k_1', k_2')满足:
    (m_2k_1+m_1k_2equiv m_2k_1'+m_1k_2') (mod (m_1m_2))
    则由同余的性质可以得到:
    (m_2k_1+m_1k_2equiv m_2k_1'+m_1k_2') (mod (m_1))
    (m_2k_1equiv m_2k_1') (mod (m_1))
    ( herefore m_1mid (m_2k_1-m_2k_1'))
    (m_1mid m_2(k_1-k_1'))
    (ecause (m_1,m_2)=1)
    ( herefore m_1mid (k_1-k_1'))
    ( herefore k_1equiv k_1') (mod (m_1))
    同理可得(k_2equiv k_2') (mod (m_2))
    这与一个完全剩余系中的任意两个数不同余的事实相反

    简化剩余系

    简化剩余系就是把一个模m的完全剩余系中与m互素的数挑出来组成一个新的剩余系,称为简化剩余系。
    形式化的定义就是设m是一个正整数,若(r_1,cdots, r_t)是t个与m互素的正整数且两两模m不同余,则(r_1,cdots, r_t)是模m的一个简化剩余系。

    简化剩余系的性质:
    设m是一个正整数,a是满足(a,m)=1的整数,如果k是遍历模m的一个简化剩余系,则(acdot k)也是遍历模m的简化剩余系

    (m_1,m_2)是两个互素的正整数,如果(k_1,k_2)分别遍历模(m_1)和模(m_2)的简化剩余系,则(m_2k_1+m_1k_2)也是遍历模(m_1cdot m_2)的简化剩余系

    欧拉函数

    设m是一个正整数,则m个整数(1,cdots,m-1,m)中与m互素的整数的个数,记作(varphi(m)),叫做欧拉函数
    欧拉函数的性质:
    1)显然,当m是一个素数的时候(varphi(m)=m-1)

    2)设m, n是互素的两个正整数,则(varphi(mcdot n)=varphi(m)cdotvarphi(n))

    3)对于素数幂(m=p^a)有:
    (varphi(m)=p^a-p^{a-1}=p^a(1-frac{1}{p}))

    证明.
    (1,2,cdots p^a)划分成(p^{a-1})份长度为p的数组,则每个数组可以按照剩余系的概念等价于(1,2,cdots p)
    (1,2,cdots p)中,只有p与p不互素,那么也只有p与(p^a)不互素
    ( herefore 1,2,cdots, p^a)中与(p^a)不互素的整数个数为:
    (varphi(p^a)=p^a-p^{a-1}=p^a(1-frac{1}{p}))

    欧拉定理

    设m是大于1的整数,如果a是满足(a,m)=1的整数,则(a^{varphi(m)}equiv 1(modspace m))

    证明.
    (r_1,r_2,cdots r_{varphi(m)})是模m的一个最小简化剩余系
    (ecause (a,m)=1)
    ( herefore ar_1,ar_2,cdots ar_{varphi(m)})也是模m的一个简化剩余系
    ( herefore ar_1cdot ar_2cdots ar_{varphi(m)}equiv r_1cdot r_2cdots r_{varphi(m)}) (mod m)
    (a^{varphi(m)}r_1cdot r_2cdots r_{varphi(m)}equiv r_1cdot r_2cdots r_{varphi(m)}) (mod m)
    ((a^{varphi(m)}-1)r_1cdot r_2cdots r_{varphi(m)}equiv 0) (mod m)
    (ecause r_1,r_2,cdots r_{varphi(m)})是模m的最小简化剩余系
    ( herefore (r_1,m)=(r_2,m)=cdots=(r_{varphi(m)},m)=1)
    ((r_1cdot r_2cdots r_{varphi(m)},m)=1)
    ( herefore a^{varphi(m)}-1equiv 0)(mod m)
    (a^{varphi(m)}equiv 1)(mod m)

    费马小定理

    设p是一个素数,则对任意整数a,有
    (a^pequiv a) (mod p)

    证明.
    i)若(a,p) ( e) 1
    (ecause)p是素数
    ( herefore pmid a)
    即a(equiv) 0 (mod p)
    (a^pequiv) 0 (mod p)
    (a^pequiv aequiv) 0 (mod m)
    ii)若(a,p) = 1
    (ecause)p是素数
    ( hereforevarphi(p)=p-1)
    由欧拉定理知(a^{varphi(m)}equiv 1) (mod p)
    (a^{p-1}equiv) 1 (mod p)
    (a^pequiv) a (mod p)

    Wilson定理

    设p是一个素数,则(p-1)! (equiv) -1 (mod p)

    想要证明上面的定理需要先证明另一个定理:设m是一个正整数,a是满足(a,m)=1的整数,则存在唯一的整数a',1 (le) a'<m,使得a·a' (equiv) 1 (mod m)

    证明.
    存在性:设(r_1,r_2,cdots ,r_{varphi(m)})是模m的一个最小简化剩余系
    (ecause (a,m)=1)
    ( herefore ar_1,ar_2,cdots ar_{varphi(m)})也是模m的一个简化剩余系
    显然,模m的简化剩余系中必然存在(ar_n equiv) 1 (mod m)
    唯一性:假设模m的最小简化剩余系中有a', a'', 1 (le) a',a''<m 使得
    a·a' (equiv) 1 (mod m)
    a·a'' (equiv) 1 (mod m),则
    a(a'-a'') (equiv) 0 (mod m)
    a'-a'' (equiv) 0 (mod m)
    a' (equiv) a'' (mod m)

    有了上述的定理后,可以开始证明Wilson定理:

    证明.
    设p是一个素数,则任意1 (le) a < p,存在唯一的1 (le) a' < p
    使得a·a' (equiv) 1 (mod p)
    而a=a'的充要条件是(a^2equiv) 1 (mod m)
    则a=1或a=p-1
    ( herefore (p-1)!equiv1cdot2cdots (p-1)equiv1cdot(p-1)Pi acdot a')
    (equiv1(p-1)equiv(-1)) (mod m)

    模重复平方计算

    问题:如何计算 (b^n) (mod m)其中n是一个大的整数。
    由于n是一个大整数,所以无法直接通过欧几里得除法计算(b^n)模m的余数

    首先可以通过欧拉定理将n缩小成一个小于(varphi(m))的整数
    如果(b^n)还是大到无法直接计算,那么就采用下面的方法进行计算:
    将n写成一个二进制形式,即:
    (n=n_0+n_1cdot 2+n_2cdot 2^2+cdots +n_{k-1}2^{k-1})
    由科学计数法的性质可知(n_{k-1})必然等于1
    令整数a=1
    1.如果(n_0=1),则(a_0equiv(acdot b)) (mod m),否则(a_0equiv a) (mod m)
    (b_1equiv b^2) (mod m)
    2.如果(n_1=1),则(a_1equiv(a_0cdot b_1)) (mod m),否则(a_1equiv a_0) (mod m)
    (b_2equiv b_1^2) (mod m)
    (cdots)
    k.因为(n_{k-1}=1),所以(a_{k-1}equiv (a_{k-2}cdot b_{k-1})) (mod m)

    最终(b^nequiv a_{k-1}) (mod m)

  • 相关阅读:
    [tip]build x86+x64 parrelly for your VS solution
    float double的内存表示及比较大小的方法
    [Problem 13]欧拉
    Interface Project
    [复习]内存对齐
    [tip]VS online Gallery in Extention Manager
    [Problem 14]欧拉
    “火柴棍式”程序员面试题打破惯性思维
    [复习]时间复杂度及计算
    ModuleCatalog配置文件
  • 原文地址:https://www.cnblogs.com/TheFutureIsNow/p/12079248.html
Copyright © 2011-2022 走看看