前
幾天轉發了一個關於“
自我描述數
”的影片
《數理謎題:自我描述數》
(見下),有朋友說沒太看明白。這確實是一個有點繞的數學概念,並且這個影片的講解者(麻省理工大學的數學家Tanya Khovanova)講得也不太清楚有點跳躍了,我在網上搜了一下似乎也沒有相關的介紹性資料(或者只有一些最簡單的介紹而沒有推理過程),所以寫這篇小文談一下“
自我描述數
”。
(TED-Ed影片:
達芬奇謎題)
以下內容包含5個部分:
1)什麼是“自我描述數”;2)“自我描述數”的特徵;3)低位“自我描述數”的窮舉;4)高位“自我描述數”的一般公式;5)從最小到最大的“自我描述數”
。
1.什麼是“自我描述數”?
第一件事當然是界定定義,所謂的“自我描述數”,漢語一般翻譯成“自描述數”,英文是self-descriptive number (自我描述的數字),或者 autobiographical number(自傳式的數字),顧名思義,即一種能
透過數字本身描述該數字自身特徵的數字
。
用一句話來概括這種透過數字自身來描述自身特徵,即:
這個數字中每一個位數上的數都是該位數的數值所出現的次數
。(位數從0開始計,從左到右以此類推)
這句話有一點繞,舉一個具體的例子就一目瞭然了,就以該影片裡給出的兩個具體數字
1210
和
3211000
來說明它們為什麼是自描述數。
根據上述的位數規則,每個數字的位置編號從左到右分別是0、1、2、3……,所以對於1210來說:第一位數,即0號位上的取值便是該位置號“0”在這個數字中出現的次數,“0”在1210中出現了1次,所以第一個數即0號位上的值是1;第二位數的取值是該位置即1號位的“1”在這個數字裡出現的次數,“1”出現了兩次,所以這個位置上的值是2;以此類推,第三位數字的取值是“2”出現的次數1,第四位數字的取值是“3”出現的次數0。
對於3211000來說:“0”出現了3次,所以第一個數是3;“1”出現了2次,所以第二個數是2;“2”出現了1次,所以第三個數是1;“3”出現了1次,所以第四個數是1;“4”、“5”、“6”均出現了0次,所以最後三個數(4/5/6號位)均是0。
這就是
自身能夠描述自身、自己講述自己的“自我描述數”
。
2.“自我描述數”的重要特徵
從“自我描述數”的定義本身,我們可以立即發現它的一個重要特徵,可以稱其為
“定理一”:一個自我描述數的所有數字的和等於它的位數
。
原因是很簡單的:因為每個數值都是其位置號所出現的次數,是對位數的統計,所以次數的總和必然等於這個數字的總位數。
比如上述中的4位數的自我描述數1210,便有
1+2+1+0=4
;
上述中的7位數的自我描述數3211000,便有
3+2+1+1+0+0+0=7
。
這個
定理一
看似簡單,但對我們下面的推理非常重要。
另外一個也是看似簡單但也很重要的問題是:
自我描述數的第一個數可能是0嗎?(即0號位上的數可能是0嗎?)
假設0號位上的數值是0,這說明該數字中沒有一個“0”,這與“0號位上的0”相悖,所以不能成立,所以
自我描述數的第一個數字不能是0
。所以,0不是自我描述數。
這句話看著很簡單,但它有一個重要的含義:
自描述數的第一個數字一定是大於0的。也就是說,一個自描述數中,一定有“0”,但第一個數一定不能是“0”
。我們可以把這句話界定為
“定理二”
。
搞清楚定理一和定理二,下面的推理就比較簡單了。
3.低位“自我描述數”的窮舉
在清楚了“自我描述數”的定義後,我們可以試著窮盡十進位制中的自我描述數。自然是從小到大來嘗試。
根據“
定理一
”,我們可以立即斷定:
個位數中沒有自描述數
。因為一個數據要滿足既要有0但第一個數又不能是0,它必須至少是個兩位數。
那麼兩位數中有沒有自描述數呢?
對於兩位數來說,要滿足既要有“0”但第一個數不能是“0”,它就只能是“x0”,其中“x”的值是對“0”出現次數的描述,所以它只能是“1”;這個數里既然有“1”,那麼“1號位”上的數就應該是“1”,這與“1號位”上的“0”相悖,所以
兩位數中也沒有自描述數
。
對於三位數來說,能符合定理一和定理二的三位數只有如下5個:300,201,210,102,120,而這5個數均不是自我描述數(簡單的排除法:300中0沒有出現3次,201、210中0沒有出現2次,102中2沒有出現2次,120中1沒有出現2次),所以
三位數中也沒有自我描述數
。
對於四位數來說,我們可以做如下窮盡過程:1)假設第一個數字如果是4,後面要有4個0,這就變成五位數了,所以排除;2)假設第一個數字如果是3,說明後面3個數字都是0,而這不符合定理一,所以排除;
3)假設第一個數字如果是2,說明後面三個數中有2個0,根據定理一另外一個數也是2,只有2200和2020兩種可能,透過檢驗2200排除,2020是自描述數;4)假設第一個數字是1,後面只能有1個0,而另外兩個數加起來得是3,所以另外兩個數是1和2,所以這是一個由兩個“1”、一個“2”、一個“0”組成數字,沒有出現“3”,所以“3號位”也就是最後一位數是“0”,出現了一個“2”,所以在“2號位”上的數是“1”,所以這個數字是1210
,這與上述影片中給出的例子是相符的。
也就是說,在
四位數中有兩個自我描述數:1210和2020
。
上面我們透過窮盡法確定了一位數、兩位數、三位數中不存在“自我描述數”,併成功找出四位數中的兩個“自我描述數”。那麼,更高位數的“自我描述數”如何尋找呢?比如這個影片中要求找出十位數的“自我描述數”,如果用這種窮盡法尋找,那就太辛苦了,找是能找得出來的,但是耗時肯定太長了。
所以我們要尋找一般性的方法。
4.高位“自我描述數”的一般公式
透過上述窮盡的過程,尤其是對四位數中的“自我描述數”窮盡尋找的過程,我們可以知道,對於一個多位“自我描述數”的尋找,第一個數字的確定非常重要,這對我們探尋一般性方法非常重要,即
“自我描述數”的第一個數和它的總位數是什麼關係
?這是找到一般性公式的核心焦點。
即要回答兩個問題:
1)一個n位數的自我描述數,它的第一個數m的取值範圍與n有什麼關係?2)m如果確定,其他位置上的數與n、m是什麼關係?
以下,我們來逐漸縮小m的取值範圍。
首先,m不可能等於n,因為如果m=n,它後面需要有n個0,這就變成n+1位數了,所以m的取值一定是小於n;
其次,m有可能等於n-1嗎?如果m=n-1,說明它後面的所有n-1個位置上全部都是0,而這串數的總和是n-1,並不等於n,與定理一相悖,所以m的取值一定是小於n-1;
再次,m有可能等於n-2嗎?如果m=n-2,說明它後面有n-2個0,以及另外一個非零的數x,也就是說,這串數中
只有兩個數非0,一個是m,一個是x
,根據定理一(m+x=n),所以x=2,即
當m=n-2時,另外一個非0的數只能是2
。這是什麼意思呢?這句話的意思是
這兩個非0的數是相同的(出現了2次)
,即m=n-2=2,所以n=4,m=2,即:
只有在四位數的時候,m可以等於n-2,這時的自描述數是上面透過窮盡法找出來的2020
。這是
m可以等於n-2的唯一特殊情況
,在
其他任何情況,m都不可以等於n-2
。
即,透過上述推理,我們可以得到
m取值的最大可能值:m≤n-3
。
那麼m的最小可能值是多少呢?這要從另外一個思路來分析。
一個自描述數的第一個數字是m,表示這列數中有m個0,和n-m個非0。n-m個非0中,一個是m本身,及另外n-m-1個非0。根據定理一,m加上這n-m-1個非0的數之和是n,即:
除首數字後的n-m-1個數的和是n-m
,所以只能是n-m-2個1,和1個2。(舉例:5個非零數的和是6,那必然是4個1和1個2)
所以,
一個自描述數必然由這麼幾個數字組成:m、0、1、2
(其中0有m個,1有n-m-2個,2有1個)。
由於m表示的是“0”出現的次數,1表示的是“m”出現的次數,所以2表示的只能是“1”出現的次數。所以,如果一個自描述數中有“2”,那麼說明這個資料中有兩個“1”,即“1”出現的次數最多可能是2個,即:
n-m-2≤2
(見上,n-m-2是“1”出現的次數)。把這個式子略作變換,即
m≥n-4,這就是m的最小取值
。
所以,
一個n位自我描述數的“0”位數m的取值範圍是:
n-4≤m
≤n-3
即:
m的取值只可能是n-3,或n-4
。
當m=n-3時,該自我描述數中有
n-3個“0”、1個“1”、1個“2”
(注:根據定理一的要求,另外兩個數加起來必須是3,所以只能1個“1”及1個“2”),而此時,“2”要能夠成立,必須要求該資料中有兩個相同的數,即必須要求m等於1或者2。當m=1時,n=4,此時對應的自我描述數由
1個“0”、2個“1”、1個“2”
組成,即在前面窮盡找出的四位自我描述數
1210
;當m=2時,n=5,此時對應的自我描述數由
2個“0”、 1個“1”、2個“2”
組成,便是五位數中的自我描述數
21200
。
因為有且只有上述兩種情況,所以,
只有在n等於4或5的時候,m才可以等於n-3,這時m可以取值n-3的唯二情況,在其他任何情況下,m都不可以等於n-3
。
再依據前面推出的m取值範圍(n-4≤m≤n-3),我們可以得到當n大於五位數時m的具體取值(不是範圍而是取值了)。
因為:n-4≤m<n-3
所以m=n-4(當n≥6時)
即,
在所有六位及以上的自我描述數中,其“0號位”上的數字m永遠等於n-4
。
而另外三個非零數之和必須是4(還是定理一要求),所以只能是兩個“1”和一個“2”。
所以,
所有n位(n≥6)自我描述數由如下幾個數字組成:有1個等於n-4的“m”、n-4個“0”、2個“1”、1個“2”
。
但是這裡面有一個特殊情況需要討論,即當n-4=2時,這個結論無法成立。即當n=6時,
m=6-4=2
,於是這個資料變成了2個“0”、2個“1”、2個“2”, “0”、 “1”、“2”出現的次數是二次,所以要有3個“2”來完成自描述,這又與整個資料中有2個“2”相悖,所以不能成立。所以
六位數中不存在自描述數
。
所以,上述結論要調整成:
所有n位(n≥7)自我描述數由如下幾個數字組成:1個等於n-4的“m”、n-4個“0”、2個“1”、1個“2”
。
這就完全正確了,因為此時n≥7,保證了n-4≥3,即m永遠大於2,與其他的數字不再有重複的可能性。
但這還不是最後的結果,距離最後結果只差一步:
確定位置
。
首先m的位置是早就確定的,它是對m個“0”的描述,它在“0號位”,它的值等於n-4;
其次,“2”是對2個“1”的描述,所以它的位置在“1號位”,即緊貼著m;
再次,兩個“1”中,一個是對“m”的描述,一個是對“2”的描述,所以一個在“2號位”,另一個在“m號位”即“n-4號位”。
必須要注一下:由於位數是從0號開始排序,所以第二個“1”所在的位置“n-4”號位便是整個資料的第“n-3”個數,它的後面有3個“0”,所以它的前面(即兩個“1”之間)有n-7(即n-4-3)個“0”。
所以,
一個n位(n≥7)自我描述數的一般式便是:
n-4,2,1
,……,1,0,0,0
(其中省略號表示n-7個0)
所以,
我們只需要根據位數,就可以立即寫出這個位數的自我描述數
。
而每個自我描述數之間的區別僅僅是:
第一個數“n-4”根據位數“n”變化,兩個“1”之間的“0”的個數(n-7)根據位數“n”變化,其他6個位置的數沒有任何變化
。這就是自我描述數的真正秘密。
所以,我們能立即寫出七位數的自我描述數是:
3211000
;
(第一個數是7-4=3,兩個“1”之間有7-7=0個0,其他6個數不變)
以及十位數的自我描述數是:
6210001000
;
(第一個數是10-4=6,兩個“1”之間有10-7=3個0,其他6個數不變)
這兩個數便是開篇影片中談到的兩個自描述數(其中的十位自我描述數便是影片中要解答的謎題)。
5.從最小到最大的“自我描述數”
基於以上推理,我們可以
迅速地
從最小到最大
寫出十進位制中全部的自我描述數。
如下。
1
位數:不存在
2
位數:不存在
3
位數:不存在
4
位數:1210和2020
5
位數:21200
6
位數:不存在
7
位數:3211000
8
位數:42101000
9
位數:521001000
10
位數:6210001000
11
位數:72100001000
12
位數:821000001000
13
位數:9210000001000
由於單個位置上的最大阿拉伯數字只能是9,所以用阿拉伯數字表示的
最大十進位制自我描述數便是13位的9210000001000
。
當然,如果超越阿拉伯數字的範疇,第一個數字用其他符號來表示,比如用英文字母abcd……來表示10/11/12/13……,那麼十進位制的自我描述數的範疇可以
繼續擴大、無限擴大
。
舉例而言,用英文字母中的第16個字母
“
p
”來表示25(=9+16)
,用第8個字母
“
h
”來表示17(=9+8)
,我們就可以分別得到一個29位
自我描述
數和一個21位自我描述數:
p2100000000000000000000001000
(29位自我描述數,第一個數為p=29-4=25,兩個1之間有29-7=22個0,其他6個位置的數無變化)
h21000000000000001000
(21位自我描述數,第一個數為h=21-4=17,兩個1之間有21-7=14個0,其他6個位置的數無變化)
以上便是對此前所轉影片“
自我描述數
”的全部解讀。能讀到這裡的人都是熱愛知識熱愛數學的人,謝謝。
(該封面圖來自於TED-Ed影片截圖)
(完)