• 算法竞赛中的数论经典定理


    素数定理:为小于等于的素数个数,那么有

    定理:,那么有

    定理:,那么

    定理:,那么的值为

         (1)为素数,那么答案就是

         (2)有多个素因子,那么答案就是

         (3)只有一个素因子,那么答案就是该素因子

     定理:Fib数,那么有

    定理:给定两个互素的正整数,那么它们最大不能组合的数为,不能组合的数的个数为

    定理:

     

        (满足积性函数)

    定理:

     

    定理:任何个连续的正整数的乘积均可被整除

     

    关于上述定理的两个结论

     

    (1)如果是素数,那么均能被整除

     

        证明:如果,那么有,由于素数,那么有

     

             ,所以对所有的

     

             

     

             很明显能被整除。

     

    Euler函数及其证明:

    1.p^k的欧拉函数
    对于给定的一个素数p,我们知道φ(p) = p-1。(φ(n)是Euler函数,表示和n互素的小于n的正整数的个数。) 
    假设一个整数n是p的k次幂,也就是n = p^k,k∈N+
    容易证明 φ(n) = p^k - p^(k-1)  
    证明:已知小于p^k的正整数个数为p^k-1个,其中 
    和p^k不互质的正整数有{p×1,p×2,...,p×(p^(k-1)-1)}共计p^(k-1)-1个 
    所以φ(n) = p^k -1 - (p^(k-1)-1) = p^k - p^(k-1)
    2.pq的欧拉函数
    假设p,q是两个互质的正整数,则pq的欧拉函数为 
    φ(pq) = φ(p)φ(q),gcd(p,q)=1(gcd(p,q)表示p与q的最大公约数,gcd(p,q)=1即表示p与q互质)
    证明: 
    ∵m= pq, gcd(p,q) =1 
    ∴根据中国余数定理,有Zm和Zp×Zq之间存在一一映射 
    所以M的完全余数集中元素的个数等于集合Zp×Zq元素的个数 
    而后者的元素个数为φ(p)φ(q),所以有 φ(pq) = φ(p)φ(q)
    3.任意正整数的欧拉函数
    φ(n)=n∏(1-1/p),其中p为能够被n整除的质数

     

    Euler定理及其证明:
    对于互质的整数a和n,有a^φ(n) ≡ 1 (mod n) (1 (mod n)表示除以n后余1的整数)
    证明:首先证明下面这个命题:
    对于集合Zn={x_1,x_2,...,x_φ(n)},考虑集合
    S = {ax_1(mod n),ax_2(mod n),...,ax_φ(n)(mod n)}
    则S = Zn
    1) 由于a,n互质,x_i也与n互质,则ax_i也一定于n互质,因此
    任意x_i,ax_i(mod n) 必然是Zn的一个元素
    2) 对于Zn中两个元素x_i和x_ j,如果x_i ≠ x_ j
    则ax_i(mod n) ≠ ax_ j(mod n),这个由a、n互质和消去律可以得出。
    所以,很明显,S=Zn
    既然这样,那么
    (ax_1 × ax_2×...×ax_φ(n))(mod n)
    = (ax_1(mod n) × ax_2(mod n)× ... × ax_φ(n)(mod n))(mod n)
    = (x_1 × x_2 × ... × x_φ(n))(mod n)
    考虑上面等式左边和右边
    左边等于(a^φ(n) ×(x_1 × x_2 × ... × x_φ(n))mod n)(mod n)
    右边等于x_1 × x_2 × ... × x_φ(n))(mod n)
    而(x_1 × x_2 × ... × x_φ(n))(mod n)和n互质
    根据消去律,可以从等式两边约去,就得到:
    a^φ(n) ≡ 1 (mod n)(≡表示恒等于)

    (2)如果是素数,那么有

     

        证明:由结论(1)很容易得到,一般性的结论可以重复此结论而得到。

     

     

    小贴士:  对于任意的n>=1,b>1  有如下结论

  • 相关阅读:
    C# 串口通信总结
    配置文件的读写
    配置文件入门
    锁机制与原子操作 <第四篇>
    线程池 异步I/O线程 <第三篇>
    线程池之ThreadPool类与辅助线程
    这一篇sigmoid和softmax的比较,讲的不错
    今天看到的关于深度学习的一篇文章,可以好好学习下
    git各种命令 & git merge和git rebase的区别
    ORA-19815,ORA-19809 :limit exceeded for recovery files
  • 原文地址:https://www.cnblogs.com/logichandsome/p/4060005.html
Copyright © 2020-2023  润新知