zoukankan      html  css  js  c++  java
  • 欧拉函数

    欧拉函数为什么是积性函数?
    // 下面是百度上找的错误证明
    函数的积性即:若m,n互质,则φ(mn)=φ(m)φ(n)。由“m,n互质”可知m,n无公因数,

    所以φ(m)φ(n)=m(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)·n(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),//这里已经用了欧拉公式,而欧拉公式是需要先有积性前提才推导的

    其中p1,p2,p3...pn为m的质因数,p1',p2',p3'...pn'为n的质因数,而m,n无公因数,
    所以p1,p2,p3...pn,p1',p2',p3'...pn'互不相同,
    所以p1,p2,p3...pn,p1',p2',p3'...pn'均为mn的质因数且为mn质因数的全集,
    所以φ(mn)=mn(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),
    所以φ(mn)=φ(m)φ(n)。

    http://hi.baidu.com/qifeiyixue77/item/26fdc54834a32c1c6dc2f085

    查了很多资料会证明了:
    // 证明
    在证明前先了解下以下知识:
    (a,b)代表最大公约数,[a,b]代表最小公倍数
    VIP: m|(a-b) <=> a≡b (mod m)
    a=pm+r (0<=r<m)
    b=qm+r (0<=r<m)
    由此可以推出:
    性质1:a≡a(mod m),(反身性)
    这个性质很显然.因为a-a=0=m·0。
    性质2:若a≡b(mod m),那么b≡a(mod m),(对称性)。
    性质3:若a≡b(mod m),b≡c(mod m),那么a≡c(mod m),(传递性)。
    性质4:若a≡b(mod m),c≡d(mod m),那么a±c≡b±d(mod m),(可加减性)。
    性质5:若a≡b(mod m),c≡d(mod m),那么ac≡bd(mod m)(可乘性)。
    证明 :m|(a-b) , m|(c-d) 设 a-b=km c-d=lm (ac-bd)=klm^2+(b+d)m =>m|(ac-bd)
    性质6:若a≡b(mod m),那么an≡bn(mod m),(其中n为自然数)。
    证明 : m|(a-b) => m|n*(a-b)
    性质7:若ac≡bc(mod m),(c,m)=1,那么a≡b(mod m),(记号(c,m)表示c与m的最大公约数)。
    证明 : m|c(a-b) d=(m,c)=>m/d|(a-b) => a≡b(mod m/d)=>当 d=1时 即(c,m)=1上面结论成立
    性质8:若a≡b(mod m),那么a的n次方和b的n次方也对于m同余
    证明 :a^n-b^k=(a-b)(a^(n-1)+a^(n-2)b.....b^(n-1)) +m|(a-b) ==>m|(a^n-b^n)
    性质8 :若 a≡b(mod m1) a≡b(mod m2).... a≡b(mod mi) 则 a≡b(mod [m1,m2,..mi])
    证明:m1 |(a-b) m2|(a-b) ..mi|(a-b) =>[m1,m2...mi]|(a-b) (因为 a-b里面含了 m集合的所有因子和每个因子的最大个数)
    推论 m1,m2..mi两两互质 则 a≡b(mod m1m2..mi);

    定义 : X 代表 M 简化剩余系 个数φ(M) (有关简化正余系含义,百度吧)
    Y 代表 N 简化剩余系 个数φ(N)
    xi 代表X的元素 yj代表Y的元素

    下面证明: φ(MN)=φ(M)φ(N) 其中(M,N)=1
    我们需要证明 A: (xiN+yjM,MN)=1,xiN+yjM 代表的集合元素两两不在同一剩余系里 这样个数肯定是φ(M)φ(N)个了 B: xiN+yM 可以代表 MN 的简化剩余系每个元素就可以了;
    证明 A:
    (xi,M)=1; => (xiN,M)=1; =>(xiN+yiM,M)=1; ....1
    (yi,N)=1; => (yiM,N)=1; =>(yiM+xiN,N)=1; ....2
    由 1,2 => (xiN+yiM,MN)=1; 上面都是由数之间互质才推导的

    xiN+yjM≡xkN+ylM (mod MN)
    => xiN+yjM≡xkN+ylM (mod M)
    => xiN≡xkN (mod M)
    由性质 7 =>xi≡xk (mod M)=> i=k 同理 j=l 所以 xiN+yjM 代表的集合元素两两不在同一剩余系里
    B:
    设 Z 是MN 的简化剩余系的集合的任意某个元素
    由于 (N,M)=1 => 存在 x0,y0 --> Mx0+Ny0=1 => Mx0Z+Ny0Z=Z
    =>存在 x,y --> Mx+Ny=Z ......1
    (Z,MN)=1; =>(Mx+Ny,M)=1; =>(Ny,M)=1; =>(y,M)=1 =>y≡xi (mod M) 同理可得 x=yj (mod N)
    y≡xi (mod M) => Ny≡Nxi (mod MN) 同理 Mx=Myj (mod MN)
    根据同余性质
    Ny+Mx=Myj+Nxi (mod MN)
    => Z=xiN+yjM (mod MN)
    MN 的简化剩余系每个元素都可以用 xiN+yjM表示
    综上 xiN+yjM 有 φ(M)φ(N)个元素 且每个与 MN互质,xiN+yjM两两不在同一剩余系里面
    可得 φ(MN)=φ(M)φ(N) 其中(M,N)=1
    http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin

    E(x)表示比x小的且与x互质的正整数的个数。
    *若p是素数,E(p)=p-1*E(p^k)=p^k-p^(k-1)=(p-1)*P^(k-1) 证:令n=p^k,小于n的正整数数共有n-1即(p^k-1)个,其中与p不质的数共[p^(k-1)-1]个(分别为1*p,2*p,3*p...p(p^(k-1)-1))。 所以E(p^k)=(p^k-1)-(p^(k-1)-1)=p^k-p^(k-1).得证。 *若ab互质,则E(a*b)=E(a)*E(b),欧拉函数是积性函数. *对任意数n都可以唯一分解成n=p1^a1*p2^a2*p3^a3*...*pn^an(pi为素数). 则E(n)=E(p1^a1)*E(p2^a2)*E(p3^a3)*...*E(pn^an) =(p1-1)*p1^(a1-1)*(p2-1)*p2^(a2-1)*...*(pn-1)*pn^(an-1) =(p1^a1*p2^a2*p3^a3*...*pn^an)*[(p1-1)*(p2-1)*(p3-1)*...*(pn-1)]/(p1*p2*p3*...*pn) =n*(1-1/p1)*(1-1/p2)*...*(1-1/pn) * E(p^k) =(p-1)*p^(k-1)=(p-1)*p^(k-2)*p E(p^(k-1))=(p-1)*p^(k-2) ->当k>1时,E(p^k)=E(p*p^(k-1))=E(p^(k-1))*p. (当k=1时,E(p)=p-1.) 由上式: 设P是素数, 若p是x的约数,则E(x*p)=E(x)*p. 若p不是x的约数,则E(x*p)=E(x)*E(p)=E(x)*(p-1).
    小记:

    d=gcd(a,b); a'd=a b'd=b (a',b')=1
    要 d=gcd (b,a-qb) 要成立 则(b',a'-qb')=1
    证明 (b',a'-qb')=1;
    假设 b',a'-qb' 不互质 则 设 b'=kd' a'-qb'=ld' d'>1
    则 a'-q(kd')=ld' a'=(qk+l)d' 与 (a',b')矛盾

    问题描述:
    给出一个N,求1..N中与N互质的数的和

    if gcd(n,i)=1 then gcd(n,n-i)=1 (1<=i<=n)

    反证法:
    如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0
    而n%k=0
    那么必须保证i%k=0
    k是n的因子,如果i%k=0那么
    gcd(n,i)=k,矛盾出现;
    于是问题变的非常简单
    ANS=N*phi(N)/2
    i,n-i总是成对出现,并且和是n
    于是可能就有人问了,如果存在n-i=i那不是重复计算?
    答案是不会
    因为:
    n=2*i->i=n/2
    1.如果n是奇数,那么n!=2*i,自然也不存在
    n-i=i和重复计算之说
    2.如果n是偶数,n=2*i成立,gcd(n,n/2)必然为n的一个因子,这个因子为1当且仅当n==2
    于是对于n>2的偶数,绝对不存在gcd(n,n/2)=1所以更别说什么重复计算了
    对于n==2
    ans=2*1/2=1
    正好也满足

    练习:
    hdu 3501
    待续、、、

  • 相关阅读:
    PHP
    PHP
    密码修改机制
    PHP
    PHP
    PHP
    PHP
    Java并发编程:进程和线程的由来(转)
    Java获取文件大小的正确方法(转)
    J2EE开发中常用的缓存策略
  • 原文地址:https://www.cnblogs.com/372465774y/p/2726282.html
Copyright © 2011-2022 走看看