热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

莫比乌斯函数详解

在讲这个函数之前。最好先了解欧拉函数。我们用\记为整除。记得小学的时候整除和整除以的概念么?别混淆。2整除4记作2\4。欧拉函数用来表示。那么根据法里级数的展开(这个感觉和ACM关系不大

在讲这个函数之前。最好先了解欧拉函数。

我们用 \  记为整除。 记得小学的时候整除和整除以的概念么?别混淆。 2整除4 记作 2\4。

欧拉函数用来表示。

那么根据法里级数的展开(这个感觉和ACM关系不大就先不介绍了。大概讲的就是构造所有最简分数的一种树。而法里级数n定义分母<=n的最简分数。)

比如对于分母为12.

化简后:

分别为:

1/12  1/6    1/4   1/3   5/12   1/2   7/12   2/3   3/4   5/6   11/12 1/1

观察这些式子。你会发现分母都是能整除12的.也就是说分母为d。  d\m

分母为1的集合 1/1 

分母为2的集合 1/2

分母为3的集合 1/3  2/3

分母为4的集合 1/4  3/4

分母为6的集合 1/6  5/6

分母为12的集合 1/12 5/12 7/12 11/12

会发现对于每个m的除数(也就是分母啦)的集合的分子都是和分母是互素的。并且穷举了。

比如4   1 和 3 是和4互素的。

那么

1+1+2+2+2+4 = 12 (其实这里是废话!在推导中间就能得到了。因为我们列了12个分式嘛,重点在于是穷举了每个除数的互素数。)

不过我们可以从这得到一个和式:

重点在于这个形式的公式:

 

有一个结论:如果f(d) 让g(m)是积性函数。那么f(d) 是积性函数(这个结论很重要。)

同时如果我们能够证明这个结论的话。也可以通过这个结论去证明欧拉函数的积性。

因为根据上面我们推出的和式。对于欧拉函数的对应g(m)为m.m明显是积性的函数。

如果我们的结论成立。那么欧拉函数是积性的。(这里的积性不代表完全积性。我们知道欧拉函数的积性必须两个数互素的情况下才有。)

 

证明:

 因为g(m)为积性函数,所以有:

扩展左边:

扩展右边:

 

即可得:

如果进一步细分左边和右边。会发现左边是

若该等式对于任意m恒成立.那么

根据上面的等式的话就是一个项一个项对应起来。而从这也能看出其逆命题也是正确的。就是当f(d) 为积性函数的时候 g(m)也为积性函数。

在此,欧拉函数的积性就算证明成功了。

对于上述的研究似乎没有提到莫比乌斯函数。但是以上的研究是贯彻整个莫比乌斯函数的。包括其积性的证明。和反演。

思考一个这样的问题:

                 对比       

  欧拉函数是比较复杂的。而其对应的g(m) 是简单的。为m。

  我们是否可以通过g(m)的函数能够获得f(m)的函数呢?(这里f(m)自变量变成m了。不过小小思考后明显不用在意。)

  而我们有这样的一个反演原理

   

   其中莫比乌斯函数。

   

  莫比乌斯函数满足一个极其重要的性质。或者说是因为这个性质而定义了这个函数!

  

  其中 [m=1]代表m=1的时候为1. m不等于1的时候为0

  这个性质很神奇。但是却又不神奇。因为其实是认为构造出有这样的性质。使得莫比乌斯反演得以成立。

  但是我们要计算其反演后的结果。我们又不得不知道具体的的值如何。其值我们先放着。先证明反演:

  证明反演之前有两个步骤最好先需要有预备知识:

第一个:

  

  这个其实思考一下就知道了。我们不过就是把计算顺序发生了改变。

第二个:

  

  

  

  这个和式确实看起来复杂。而且我是直接搬其证明过程中遇到的这个和式。

不过我们从一个例子上去理解:

  对于m = 12来说:                                 

d 1 2 3 4 6 12
m/d 12 6 4 3 2 1
k 1 1 2 1 3 1 2 4 1 2 3 6 1 2 3 4 6 12

  μ(12)f(1)

  μ(6)f(1)+μ(6)f(2)

  μ(4)f(1)+      μ(4)f(3)

  μ(3)f(1)+μ(3)f(2)+      μ(3)f(4)

  μ(2)f(1)+μ(2)f(2)+μ(2)f(3)+      μ(2)f(6)

  μ(1)f(1)+μ(1)f(2)+μ(1)f(3)+μ(1)f(4)+μ(1)f(6)+μ(1)f(12)

+

----------------------------------------------------------------------------- 

                           明显的求这个式子之和。

我们的排列是以μ的自变量排列的。那假如按f的自变量(k)进行排列呢? 我们上面的式子竖着都已经对应好了。

不难得出下表:(不根据式子。直接跟上)      

d 12 12 6 12 4 12 6 3 12 6 4 2 12 6 4 2 1
k 12 6 4 3 2 1
m/d 1 1 2 1 3 1 2 4 1 2 3 6 1 2 3 4 6 12

细心对比上表:

d 1 2 3 4 6 12
m/d 12 6 4 3 2 1
k 1 1 2 1 3 1 2 4 1 2 3 6 1 2 3 4 6 12

 会发现有意思的是m/d和k换了个位置而已。其实这并不是巧合。但是这并不是重点。

我们要用一个式子描述出这种情形。其实我们不过是把式子处理成以k为规整的。

而描述成和式其实就是上述恒等式的右边:

值得注意的是 d 已经不是原来的d了。只是一个从1开始的循环量而已。一旦满足d\(m/k) 就有意义。所以我本来第2个表不想统计d的。不过最后还是统计了。出于容易研究吧。

因为我们还得一点细节才能解释这个恒等式右边的表达式。

我们有:

k\d

d\m

所以对于指定的k,d的集合为k的倍数。

设l = m/d. (这里的l就是上述表达式的d!)

也就是我们要证明指定k 那么l的集合为 l\(m/k)

l = m/nk. n为整数。 (m/k) / l  = n 所以l\(m/k).得证。

也许我的证明有点繁琐。如果你一眼看出来。那也没事。

其实就是寻找指定k  m/d应该满足怎么样的条件。 其中k\d且d\m。

 

有了这2个恒等式我们可以接下来证明莫比乌斯反演:

证明过程:

  

 PS:

其反证类似的。具体数学中的习题啊。也当作大家的习题好了。

就是第二个恒等式。具体数学中是分了2步。那个用拉斐尔证明的4.9虽然说原理并不难。但是具体数学上用得简直有点出神入化让我有点摸不着头脑。

之后一步是利用第一个恒等式然后证出上述的第二个恒等式。

 

让我们看看 具体是一个什么样的函数。

首先:[m=1]这个函数是积性的。所以μ(d)这个函数必然也是积性的。利用我们一开始证明的那个结论。

 也就是说要求μ(m).我们只要计算μ(p^k). 根据算术基本定理理所当然的。且p代表素数。

根据其性质:

 

m = p^k.

那么有 μ(1)+ μ(p^1) + μ(p^2) + μ(p^3)+...μ(p^k) = [p^k=1].

假如p = 1.(其实1不是素数,我们这样的假设是不成立的,这里只是为了运算出μ(1))

那么。 μ(1)= 1.

假如p != 1.

那么 μ(1)+ μ(p^1) + μ(p^2) + μ(p^3)+...μ(p^k) = 0.

当k=1.

μ(1)+ μ(p^1) = 0 

可知μ(p^1)=μ(p)= -1.

当k=2.

 μ(1)+ μ(p^1) + μ(p^2) = 0 .

 即μ(p^2)  = 0

同理。

μ(p^(3~k)) = 0

也就是说。

μ(1) = 1 , μ(p) = -1  , μ(p^k)  = 0  (k>=2)

 

推广到m:(m为任意实数)

 

 

下面0的情况。是存在p^2整除m.也就是m存在p^2因子的时候。

 注意:μ(1) = 1

好了。反演和莫比乌斯的函数我们都理解透彻了。具体应用可以看这里


推荐阅读
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 本文探讨了随着并发需求的增长,MySQL数据库架构如何从简单的单一实例发展到复杂的分布式系统,以及每一步演进背后的原理和技术解决方案。 ... [详细]
  • 热璞数据库与云宏达成兼容性互认证,共筑数据安全屏障
    热璞数据库与云宏信息技术有限公司近期宣布完成产品兼容性互认证,旨在提升数据安全性与稳定性,支持企业数字化转型。 ... [详细]
  • 掌握字符间距调整技巧,提升办公文档美观度
    了解如何调整字符间距,这是一种能够显著提升文档视觉效果的技术。通过简单的步骤学习在Microsoft Word中调整字符间距的方法,这对于提升文档的专业性和阅读体验至关重要。 ... [详细]
  • 本文探讨了Java中char数据类型的特点,包括其表示范围以及如何处理超出16位字符限制的情况。通过引入代码点和代码单元的概念,详细解释了Java处理增补字符的方法。 ... [详细]
  • 本文深入探讨网页游戏的开发流程,涵盖从程序框架设计到具体实现的技术细节,旨在为开发者提供全面的指导。 ... [详细]
  • C语言入门精选教程与书籍推荐
    本文精选了几本适合不同水平学习者的C语言书籍,从基础入门到进阶提高,帮助读者全面掌握C语言的核心知识和技术。 ... [详细]
  • 本文介绍了如何使用Gradle和gdx-setup.jar工具来创建LibGDX项目,包括详细的步骤和注意事项,适合初学者和有经验的开发者。 ... [详细]
  • Spring Boot 入门指南
    本文介绍了Spring Boot的基本概念及其在现代Java应用程序开发中的作用。Spring Boot旨在简化Spring应用的初始设置和开发过程,通过自动配置和约定优于配置的原则,帮助开发者快速构建基于Spring框架的应用。 ... [详细]
  • 将Laravel China教程转换为PDF格式
    介绍如何将从Laravel China购买的教程,例如《PHP扩展包实战教程》和《L06 Laravel教程 - 电商进阶》(基于Laravel 5.7),转换为PDF文件,以便于离线阅读和保存。 ... [详细]
  • Python 中使用 Pyecharts 绘制雷达图详解
    本文将详细介绍如何在 Python 环境中利用 Pyecharts 库来创建美观且功能丰富的雷达图。适合需要图形化展示多维度数据的开发者和研究人员。 ... [详细]
  • 精通C++并非易事,为何它比其他语言更难掌握?这主要归因于C++的设计理念,即不强迫用户接受特定的编程风格或限制创新思维。本文探讨了如何有效学习C++,并介绍了几本权威的学习资源。 ... [详细]
  • 本文整理了一系列Java面试问题,涵盖Java开发环境的分类、Java语言的核心特性、Linux环境下Java SE的安装步骤、常用的Java开发工具介绍,以及类与对象的基本概念等。 ... [详细]
  • 深入理解设计模式之观察者模式
    本文详细介绍了观察者模式,这是一种行为设计模式,适用于当对象状态发生变化时,需要通知其他相关对象的场景。文中不仅解释了观察者模式的基本概念,还通过Java代码示例展示了其实现方法。 ... [详细]
author-avatar
余陈辉syllabear
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有