《数学与泛型编程:高效编程的奥秘》一3.4 完美数

简介: 本节书摘来自华章出版社《数学与泛型编程:高效编程的奥秘》一 书中的第3章,第3.4节,作者:丹尼尔E.罗斯(Daniel E. Rose),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 完美数

正如3.1节所说,古希腊人对数字的各种属性都很感兴趣。他们所提出的一个概念叫做完美数(perfect number),也就是其值等于所有真因子之和的数。古希腊人知道下面这四个完美数:

  6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064
有人认为完美数与自然及宇宙的结构有关。例如28这个完美数就与月亮绕地球旋转所经历的天数相近。
古希腊人真正想要知道的是有没有一种方式能够推测出其他的完美数。他们对已知的完美数做了素因子分解(prime factorization):

  6 = 2·3 = 21·3
28 = 4·7 = 22·7

496 = 16·31 = 24·31
8128 = 64·127 = 26·127
并且观察到下列规律:
6 = 2·3 = 21·(22-1)
28 = 4·7 = 22·(23-1)
120 = 8·15 = 23·(24-1)不是完美数
496 = 16·31 = 24·(25-1)
2016 = 32·63 = 25·(26-1)不是完美数
8128 = 64·127 = 26·(27-1)
如果一个数可以写成上述形式,而且其中的第二项是素数,那么这个数就是完美数。欧几里得在公元300年左右证明了这个结论。
定理3.3 (《几何原本》第9卷第36号命题)
如果是素数,那么是完美数。
有用的公式
开始证明该定理之前,大家应该先记住两个代数公式。首先是幂差(difference of powers)公式:
(3.1)
这个公式很容易就能通过下面两个等式推导出来:
x(xn + xn-1y + … + xyn-1 + yn) = xn-1 + xny + xn-1y2 + … + xyn(3.2)
y(xn + xn-1y + … + xyn-1 + yn) = xny + xn-1y2 + … + xyn + yn-1(3.3)
根据分配律,等式(3.2)与等式(3.3)的左右两侧是分别相等的。用等式(3.2)减去等式(3.3),就可以得到等式(3.1)。
第二个有用的公式,是奇数次幂的求和(sum of odd powers)公式:
x2n-1 + y2n-1 = (x + y)(x2n-x2n-1y + …-xy2n-1 + y2n)(3.4)
要想推导出这个公式,我们可以先把求和转化为求差,然后套用前面所得到的等式(3.1):
x2n+1 + y2n+1 = x2n+1--y2n+1
= x2n+1-(-y)2n+1
= (x-(-y))(x2n + x2n-1(-y)+…+(-y)2n)
= (x + y)(x2n-x2n-1y +…-xy2n-1+ y2n)
在刚才的推导过程中,之所以能够把-y2n+1变为(-y)2n+1,是因为-1的奇数次方依然是-1,因此可以把-y2n+1写成(-1)2n+1y2n+1,进而写成(-y)2n+1。我们在证明定理3.3的时候,亟须使用这两个公式。
我们知道,当n大于0时:
screenshot

上面这个式子可以通过幂差公式推导出来:
2n-1 =(2-1)(2n-1 + 2n-2 + … + 2 + 1)
或者你也可以这么想:用二进制数的形式来对2的幂进行连加。
习题3.5 通过等式(3.1)来证明:如果2n-1是素数,那么n就是素数。
我们现在要按照德国著名数学家高斯(Carl Gauss)的办法来证明定理3.3。(本书第8章还会谈到高斯。)首先,把定理中的n写为n-1,并利用等式(3.5),把其中的两个都替换为2n-1,于是定理就变成:
如果2n-1是素数,那么2n-1(2n-1)就是完美数。
接下来定义一个函数σ(n),用它来表示n的所有因子之和。如果n的素数分解形式是:
screenshot

那么,我们就把指数ai的每一种组合方式都列出来,并将其运用到相应的素因子上面,这样就可以得到n的全部因子。比方说,24的素数分解形式是23·31,因此,其各个因子是{20·30, 21·30, 22·30, 23·30, 20·31, 21·31, 22·31, 23·31}。于是,这些因子之和就是:
2030 + 2130 + 2230 + 2330 + 2031 + 2131 + 2231 + 2331 = (20 + 21 + 22 + 23)(30 + 31)
因此,我们可以把任何一个数n的所有因子之和,写为连乘的形式:
screenshot

在推导最后一步的时候,我们运用幂差公式,对分子进行了化简。(本例中的整数变量p,指的是素数,在本书接下来的各种证明过程中,除非另做说明,否则也将遵循这一惯例。)
习题3.6 证明:如果n与m互质(coprime,也就是没有共同的素因子),那么
σ(nm)= σ(n)σ(m)
(这个命题的另外一种表述方式为:σ是积性函数(multiplicative function)。)
现在我们定义这样一个名为真因子总和(aliquot sum)的函数α(n):
α(n)= σ(n)-n
换句话说,n的真因子总和就是其所有的真因子之和,也就是除去n自身之外的那些因子之和。
现在,我们已经做好了证明定理3.3所需的准备工作,这条定理也称为《几何原本》第9卷第36号命题:
如果2n-1是素数,那么2n-1(2n-1)就是完美数。
证明 设q = 2n-1(2n-1)。我们已经知道,2是个素数,而根据该定理所列出的条件,2n-1也是个素数,因此,2n-1(2n-1)就可以视为一种形式的素数分解,其中 m = 2, p1 = 2, a1 = n-1, p2 = 2n-1, a2 = 1。套用因子求和公式(参见等式(3.6)),可以得出:
screenshot

而根据α函数的定义,我们可以得出:
α(q)= σ(q)- q = 2q - q = q
因此,q是完美数。□
我们可以把欧几里得的这条定理解读为:如果某数具备特定的形式,那它就是完美数。值得思考的地方在于,该定理的逆命题是否成立:如果某数是完美数,那么它是否必定具备2n-1(2n-1)的形式?欧拉(Euler)在18世纪已经证明,偶完美数必定具备该形式,然而他并没有证明那个更加通用的命题,也就是:每一个完美数都具备这样的形式。这个问题直到今天也没有解决,我们无法确定奇完美数是否存在。
习题3.7 证明每一个偶完美数都是三角形数。
习题3.8 证明偶完美数每个因子的倒数之和,必定是2。例如6是偶完美数,对它的4个因子分别取倒数,并将其相加,就得到:
screenshot

相关文章
|
负载均衡 5G
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
NR 单载波最大支持 275 个 RB,即 3300 个子载波。这相应也约束了不同Numerology 下 NR 的最大工作带宽。NR 须通过合理设置保护带宽来降低误差矢量幅度、抑制相邻频道泄漏。
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
|
网络架构 网络协议 网络安全
带你读《计算机网络问题与解决方案:一种构建弹性现代网络的创新方法》之三:网络传输建模
本书分为三个主要部分,涵盖了数据传输、控制平面,以及具体设计(或者更确切地说是技术)场景。
恭喜这715位选手,入围2022阿里巴巴全球数学竞赛决赛!
恭喜这715位选手,入围2022阿里巴巴全球数学竞赛决赛!
986 0
|
搜索推荐 网络安全 C#
一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
这是一个C#开发的Windows远程桌面开源项目,它支持RDP、SSH、VNC、Telnet、(S)FTP、RemoteApp、NoMachine和其他应用。
1207 0
一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
|
算法 关系型数据库 5G
前几代移动通信的演进 | 带你读《5G-NR信道编码》之二
本章节介绍了前几代移动通信的演进,带你感受移动通信的进化之路。
前几代移动通信的演进  | 带你读《5G-NR信道编码》之二
LDPC 的产生和发展 | 带你读《5G-NR信道编码》之六
低密度校验码(LDPC)是在1963年由Gallager发明的线性分组码 [1-2]。 由于该码的校验矩阵 H 具有很低的密度(H 只有少量的“1”,大 部分是“0”,即 H 的密度很低;H 是一个稀疏矩阵),故,Gallager 称 其为低密度校验码。经过 50 多年的发展,LDPC 码的构造、编码、译 码等方法已相当完备。LDPC 码已广泛应用到数据存储、光通信和无线 通信等系统中。
LDPC 的产生和发展  | 带你读《5G-NR信道编码》之六
|
数据采集 监控 5G
部分带宽 | 带你读《5G 空口设计与实践进阶 》之二十一
部分带宽(BWP)是在给定载波和给定 Numerology 条件下的一组连续的PRB。由于 NR 支持小至 5 MHz、大至 400 MHz 的工作带宽,如果要求所有UE 均支持最大的 400 MHz 带宽,无疑会对 UE 的性能提出较高要求,也不利于降低 UE 的成本。同时,由于一个 UE 不可能同时占满整个 400 MHz 带宽,且高带宽意味着高采样率,而高采样率意味着更高功耗,如果 UE 全部按照支持 400 MHz 的带宽进行设计,无疑是对性能的极大浪费。因此,NR 引入了带宽自适应(Bandwidth Adaptation)技术,针对性地解决上述问题。
部分带宽 | 带你读《5G 空口设计与实践进阶 》之二十一
|
5G 定位技术 虚拟化
空域结构 | 带你读《5G 空口设计与实践进阶 》之二十二
在 NR 物理层中,来自上层的业务流进行信道编码后的数据,称之为码字(Code Word)。不同的码字可以区分不同的数据流,其目的是通过 MIMO 发送多路数据,实现空分复用。由于码字数量与发射天线数量不一致,需要通过层映射和预编码将码字流映射到不同的发射天线上。层映射首先按照一定的规则将码字流重新映射到多个层(新的数据流),预编码再将数据映射到不同的天线端口上,再在各个天线端口上进行资源映射,生成 OFDM 符号并发射。
空域结构 | 带你读《5G 空口设计与实践进阶 》之二十二
|
存储 数据采集 编解码
第五代移动通信系统(5G-NR)的系统要求 | 带你读《5G-NR信道编码》之三
与前四代不同的是,5G 的应用十分多样化 [4],峰值速率和平均小区频谱效 率不再是唯一的要求。此外,体验速率、连接数、低时延、高可靠、高能效都 将成为系统设计的重要因素。应用场景也不止有广域覆盖,还有密集热点、机 器间通信、车联网、大型露天集会、地铁等,这也决定了 5G 中的技术是多元的。
第五代移动通信系统(5G-NR)的系统要求  | 带你读《5G-NR信道编码》之三