• 欧拉函数讲解


     1.0 欧拉函数的定义

    1.1 欧拉函数解决的问题

    任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?

    比如说: 

    n=10   与n互质的数就有 : 1,3,7,9. 

    所以φ(10)=4;

    1.2 欧拉函数的计算公式

     n 需要被拆成诸如此类的形式:

    其中 p 均为质数.

    然后如图,这就是欧拉函数的计算公式. 

    2.0 欧拉函数公式的推导

    虽然公式会显得比较简单,但是欧拉函数公式需要一步一步去推导.

    对此,我们需要分情况讨论.

    2.1  n=1

    此时 φ(1)=1 . 因为 1 与任何数都互质  (包括自身) .

    2.2  n为质数

    此时 φ(n)= n-1 ; 很显然.

    2.3 n=p^k.

    此时则 有如下公式 :

    如何去思考这种情况呢 ?

    易知,若 k=1 则 φ(n) = n-1;

    那么,若 k=2 则在原来的 n-1 的数列中 会多了一个 k 与其不互质.

    那么也就是说,我当前这个序列中,与n互质的当且仅有 p 的倍数.

    所以 p^k 中含有的 p 的倍数的个数(包括自己) 即为 p^k / p ,也就是 p^(k-1).

    2.4 n 可以写成两个互质的数的乘积.

    这个证明是整个公式的关键所在.

    此时即 n 可以写成 

    p1 X p2

    此时我们则有公式 :

    φ(n) = φ(p1 X p2) = φ(p1) X φ(p2)

    此时我们是怎么推导出来的呢 ?

    此时可以知道只有那些既满足 p1 与其互质且满足 p2 与其互质的数满足条件.

    根据乘法原理.这样的数可以互相组合.那么就有 φ(a)⋅φ(b) 个.

    2.5 最后公式的推导.

    引理 :

    任意一个大于 1 的正整数, 都可以写成诸如 p1^k1 X p2^k2 ... pi^ki 的形式.

    然后根据 2.4 我们有:

    再根据 2.3 我们有:

    于是再化简,我们便有了 1.1 开头的式子.

    2.6 例题

    这里就有一道,是比较裸的欧拉函数.不过要看的出来才行.

    本蒟蒻也有题解在此.

    3.0 后续

    这一篇只介绍了欧拉函数及欧拉函数的求法.

    日后更多的性质及运用蒟蒻博主会填坑的.

  • 相关阅读:
    charles修改响应体
    charles重发网络请求&模拟慢速网络&过滤网络请求
    charles修改请求体内容
    monkeyrunner环境搭建以及实例(转)
    django模型中的抽象类(abstract)
    Linux启动/停止/重启Mysql数据库的方法
    ava.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (解决思路)
    unix PS命令和JPS命令的区别
    mysql:表注释和字段注释
    mysql-关于Unix时间戳(unix_timestamp)
  • 原文地址:https://www.cnblogs.com/Kv-Stalin/p/9033404.html
Copyright © 2020-2023  润新知