下面的内容主要来源于 Matrix67 博客内一篇文章

文章内有这么一句话:

不断取数字英文表达的字符数,最后总会得到数字 44

1111 为一个栗子,他的英文表达是 eleven。

eleven 有 66 个 字符,66 的英文表达是 six,six有 33 三个字符,33 的英文表达是 three…

我们可以画出 1111 变成 44 的全过程:

1111(eleven)6\to6(six)3\to3(three)5\to5(five)4\to4(four)

你会发现,无论是什么数字,它最终都会变成 44

人类的古老智慧

如果要证明,你会怎么证明?

其实稍加思索,你会发现其实挺好解释的。

古时候的人们,用一竖代表 11,用两竖代表 22,用三竖代表 33…但他们意识到,写 10001000 的时候,总不可能写一千个竖吧,于是人们就想到了用特殊符号代表一个数,例如古罗马人就用 V 代表 55,中国人用代表 100100

所以说,将数字写成英文的过程中,字符数一定比原数字要小(对于大部分数字来说,这是对的)。如果你花点时间尝试一下,对于 1010 以内的数字,最后也会变成 44。实际上,44 是唯一一个字符数与数字本身相等的数字。

从英文到其他语言

当然,这种聪明的计数方法并不是英文的权利。世界各国的语言,恐怕没有哪个语言在表示 1000010000 的时候要写一万个竖吧。

在知名数列网站 oeis.org 数列号 A005589 中的 COMMENTS 一段可以看到这么一句话:

戴安娜·卡洛夫(Diane Karloff)对上面的观察结果的解释:

在许多语言中,都有一个数字 N,在 N 以后所有数字都用比数字本身少的字母书写。N在英语,德语和保加利亚语中为 4,在俄语中为 11。

如果在间隔 [1,N] 中存在等于其字母数的数字,则它们是吸引子

在英语和德语中,唯一的吸引子是 4,在保加利亚语中是 3,在俄语中是 2、3 和 11。

在区间 [1,N] 中,也可能存在数字循环,例如保加利亚语中的 4(6 个字母)和 6(4 个字母)或俄语的 4、5 和 6(分别为 6、4 和 5 个字母)。英文没有循环,因此上述观察是正确的。

另外,我研究了一下中文(计算其笔画),发现有三个吸引子:一、二和三。以及一个循环:四和五。

数字之和?数字之积?

这让我联想起大概是小学时,曾经试过将数字的每一位求和或求积。

数字之和

不断取数字每一位的和,最后总会小于 1010

每一位的和,还有一个好听的名字:数字根

还记得小学学习整除的时候,是怎么判断一个数是否能被三整除的吗?

如果一个数字的每一位的和能被三整除,整个数字就能被三整除。

这个判断法则,我们曾经用过无数遍,加起来是因为数字变小了,数字也更好判断能否被三整除了。可是为什么数字会变小呢?

证明很简单,任何一个数字 nn 都能写成 (+100a2+10a1+a0)(\dots+100a_2+10a_1+a_0) 的形式,其中 a0,a1,a2a_0,a_1,a_2\dotsnn 从右往左的每一位数字。那么每位数字之和为 (+a2+a1+a0)(\dots+a_2+a_1+a_0),我们将每一个对应项进行比较:

  • a0=a0a_0=a_0
  • a110a1a_1\le10a_1,并且只有当 a1=0a_1=0a1=10a1a_1=10a_1
  • a2100a2a_2\le100a_2,并且只有当 a2=0a_2=0a2=100a2a_2=100a_2
  • 后面的项以此类推。

所以说,数字 nn 一定大于等于它的每一位数字之和,并且只有当 a1=a2==0a_1=a_2=\dots=0 时相等,此时 n<10n<10

番外:为什么「如果一个数字的数字根能被三整除,整个数字就能被三整除」

拿上面的 nn 继续讲,如果你用 nn 减去它的数字根,你会得到+99a2+9a1\dots+99a_2+9a_1,而这个大块头一定能被 33 整除,因为它每一项系数全都是九构成的。那么因为 nn 等于大块头加上它的数字根,如果数字根能被三整除,那 nn 就能被整除了。

了解更多:A031286A10888

数字之积

不断取数字每一位的积,最后总会小于 1010

举个栗子, 7287×2×81121×1×22728\xrightarrow{7\times2\times8}112\xrightarrow{1\times1\times2}2

假设一个数字 nnmm 位,它同样可以写成 10m1am1+10m2am2++102a2+10a1+a010^{m-1}a_{m-1}+10^{m-2}a_{m-2}+\dots+10^2a_2+10a_1+a_0 的形式。此时每位数字之积为 am1×am2××a2×a1×a0a_{m-1}\times a_{m-2}\times\dots\times a_2\times a_1\times a_0

注意到数字表达式的第一项 10m1am1=am1×10××10(m1)1010^{m-1}a_{m-1}=a_{m-1}\times\underbrace{10\times\dots\times10}_{(m-1)个10},将其与每位数字之积对应项进行比较:

  • am1=am1a_{m-1}=a_{m-1}
  • am2<10a_{m-2}<10,因为 am2a_{m-2} 只是一位数字(即 0am290\le a_{m-2}\le9)。
  • 后面的项以此类推。

所以,我们可以知道数字 nn 一定大于等于它的每一位数字之积,并且只有当 nn 只有一位数字时相等。

了解更多:A031346A031347