'稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?'

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

自提櫃

有經驗的同學都知道,自提櫃是這麼一套操作流程:

• 快遞到了之後,物流系統會給你發一個提貨碼,例如D333EA。

• 你在自提櫃的屏幕上輸入提貨碼,則對應的儲物盒會打開。

• 你拿到快遞。

這套流程很好理解,但是,你有沒有想過一個問題:

一排自提櫃有好幾百個,如果我在自提櫃前反覆輸入嘗試,或者,我按自提碼時,按錯了幾個數字,那麼我會不會碰巧打開別人的櫃子?

不會!

為什麼呢?

概率分析

假設,這個自提櫃有1000個櫃子,每個櫃子有一個6位密碼。

密碼的每一位只包含數字0~9或字母A~Z。

假設,你隨機亂按,那麼,

你按多少次,可以打開一個櫃子呢?

這是一個概率問題。

首先,6位密碼,每位的可能性有36種,那麼,胡亂按一次,按中的概率為:

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

自提櫃

有經驗的同學都知道,自提櫃是這麼一套操作流程:

• 快遞到了之後,物流系統會給你發一個提貨碼,例如D333EA。

• 你在自提櫃的屏幕上輸入提貨碼,則對應的儲物盒會打開。

• 你拿到快遞。

這套流程很好理解,但是,你有沒有想過一個問題:

一排自提櫃有好幾百個,如果我在自提櫃前反覆輸入嘗試,或者,我按自提碼時,按錯了幾個數字,那麼我會不會碰巧打開別人的櫃子?

不會!

為什麼呢?

概率分析

假設,這個自提櫃有1000個櫃子,每個櫃子有一個6位密碼。

密碼的每一位只包含數字0~9或字母A~Z。

假設,你隨機亂按,那麼,

你按多少次,可以打開一個櫃子呢?

這是一個概率問題。

首先,6位密碼,每位的可能性有36種,那麼,胡亂按一次,按中的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

那麼,一次能打開1000個櫃子中一個的概率為:

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

自提櫃

有經驗的同學都知道,自提櫃是這麼一套操作流程:

• 快遞到了之後,物流系統會給你發一個提貨碼,例如D333EA。

• 你在自提櫃的屏幕上輸入提貨碼,則對應的儲物盒會打開。

• 你拿到快遞。

這套流程很好理解,但是,你有沒有想過一個問題:

一排自提櫃有好幾百個,如果我在自提櫃前反覆輸入嘗試,或者,我按自提碼時,按錯了幾個數字,那麼我會不會碰巧打開別人的櫃子?

不會!

為什麼呢?

概率分析

假設,這個自提櫃有1000個櫃子,每個櫃子有一個6位密碼。

密碼的每一位只包含數字0~9或字母A~Z。

假設,你隨機亂按,那麼,

你按多少次,可以打開一個櫃子呢?

這是一個概率問題。

首先,6位密碼,每位的可能性有36種,那麼,胡亂按一次,按中的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

那麼,一次能打開1000個櫃子中一個的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

現在我們來計算一下,需要按多少次,你才可以有10%的概率打開其中一個櫃子。

這個次數n的計算公式是這樣的的:

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

自提櫃

有經驗的同學都知道,自提櫃是這麼一套操作流程:

• 快遞到了之後,物流系統會給你發一個提貨碼,例如D333EA。

• 你在自提櫃的屏幕上輸入提貨碼,則對應的儲物盒會打開。

• 你拿到快遞。

這套流程很好理解,但是,你有沒有想過一個問題:

一排自提櫃有好幾百個,如果我在自提櫃前反覆輸入嘗試,或者,我按自提碼時,按錯了幾個數字,那麼我會不會碰巧打開別人的櫃子?

不會!

為什麼呢?

概率分析

假設,這個自提櫃有1000個櫃子,每個櫃子有一個6位密碼。

密碼的每一位只包含數字0~9或字母A~Z。

假設,你隨機亂按,那麼,

你按多少次,可以打開一個櫃子呢?

這是一個概率問題。

首先,6位密碼,每位的可能性有36種,那麼,胡亂按一次,按中的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

那麼,一次能打開1000個櫃子中一個的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

現在我們來計算一下,需要按多少次,你才可以有10%的概率打開其中一個櫃子。

這個次數n的計算公式是這樣的的:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

計算得,

n ≈ 210720

大概是二十一萬次。

假設小明10秒鐘按完一次,那麼,小明就是不吃不喝,得在那按超過一年半,

還只是達到10%的概率。

稀疏性是什麼

我們拋開上面的複雜計算,來重新思考一下:

為什麼概率這麼低呢?

向量空間的角度來看,提取櫃6位的提取碼,是6維空間中的一個點。

這1000個提取櫃的提取碼,是這6維空間中的1000個點。

這6維空間的所有的可能的點,我們是完全知道的(無非就是10個數字和26個字母的組合,這1000個點都逃不出這個空間。

但之所以難試出來,就是因為空間太大,而這1000個點太稀疏了。

可謂是滄海一粟。

稀疏性,就是提取碼可靠的關鍵。

其實,稀疏性無處不在。

中國有一句古話,叫,

大道至簡;

還有一句話叫,

道生一,一生二,三生萬物。

這些思想都是說:

很多看起來複雜現象的背後,其規律,是稀疏而簡單的。

大家聽說過歐氏幾何吧,就是我們中學接觸的相似三角形、射影定理之類的理論。

歐氏幾何一共有五條公設和五個公理,這其實是歐幾里得的硬性規定

然後,他的整個幾何世界和所有定理,都是從這幾條公設和公理中推導出來的。

就這麼幾條公理,竟能一路推推推,推出厚厚的前六卷《幾何原本》來。幾何世界千變萬化,大自然中的幾何圖形更是無窮無盡,都逃不過上面這簡單的幾句話。

還有我們學過的牛頓三定律

牛頓的力學定律非常簡單,就三句話,初中生就能學會。但是,這簡單的三句話,卻可以解釋小到一塊石子、大到一顆星球的運動規律,而且,以當時的觀測條件,理論計算的結果很精確。

圖像處理

關於圖像的稀疏性,我來舉個例子。

如果我們要存儲很多高清圖片,而又想節約存儲設備,那麼,我們可以:

對圖像進行奇異值分解。

然後,在儘可能保證圖像可被識別的前提下,只保留奇異值較大的若干項,捨去奇異值較小的項即可。

比如,這個小女孩的灰度圖的例子,

"

(文:劉雪峰)

​我經常去學校的自提櫃拿快遞。

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

自提櫃

有經驗的同學都知道,自提櫃是這麼一套操作流程:

• 快遞到了之後,物流系統會給你發一個提貨碼,例如D333EA。

• 你在自提櫃的屏幕上輸入提貨碼,則對應的儲物盒會打開。

• 你拿到快遞。

這套流程很好理解,但是,你有沒有想過一個問題:

一排自提櫃有好幾百個,如果我在自提櫃前反覆輸入嘗試,或者,我按自提碼時,按錯了幾個數字,那麼我會不會碰巧打開別人的櫃子?

不會!

為什麼呢?

概率分析

假設,這個自提櫃有1000個櫃子,每個櫃子有一個6位密碼。

密碼的每一位只包含數字0~9或字母A~Z。

假設,你隨機亂按,那麼,

你按多少次,可以打開一個櫃子呢?

這是一個概率問題。

首先,6位密碼,每位的可能性有36種,那麼,胡亂按一次,按中的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

那麼,一次能打開1000個櫃子中一個的概率為:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

現在我們來計算一下,需要按多少次,你才可以有10%的概率打開其中一個櫃子。

這個次數n的計算公式是這樣的的:

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

計算得,

n ≈ 210720

大概是二十一萬次。

假設小明10秒鐘按完一次,那麼,小明就是不吃不喝,得在那按超過一年半,

還只是達到10%的概率。

稀疏性是什麼

我們拋開上面的複雜計算,來重新思考一下:

為什麼概率這麼低呢?

向量空間的角度來看,提取櫃6位的提取碼,是6維空間中的一個點。

這1000個提取櫃的提取碼,是這6維空間中的1000個點。

這6維空間的所有的可能的點,我們是完全知道的(無非就是10個數字和26個字母的組合,這1000個點都逃不出這個空間。

但之所以難試出來,就是因為空間太大,而這1000個點太稀疏了。

可謂是滄海一粟。

稀疏性,就是提取碼可靠的關鍵。

其實,稀疏性無處不在。

中國有一句古話,叫,

大道至簡;

還有一句話叫,

道生一,一生二,三生萬物。

這些思想都是說:

很多看起來複雜現象的背後,其規律,是稀疏而簡單的。

大家聽說過歐氏幾何吧,就是我們中學接觸的相似三角形、射影定理之類的理論。

歐氏幾何一共有五條公設和五個公理,這其實是歐幾里得的硬性規定

然後,他的整個幾何世界和所有定理,都是從這幾條公設和公理中推導出來的。

就這麼幾條公理,竟能一路推推推,推出厚厚的前六卷《幾何原本》來。幾何世界千變萬化,大自然中的幾何圖形更是無窮無盡,都逃不過上面這簡單的幾句話。

還有我們學過的牛頓三定律

牛頓的力學定律非常簡單,就三句話,初中生就能學會。但是,這簡單的三句話,卻可以解釋小到一塊石子、大到一顆星球的運動規律,而且,以當時的觀測條件,理論計算的結果很精確。

圖像處理

關於圖像的稀疏性,我來舉個例子。

如果我們要存儲很多高清圖片,而又想節約存儲設備,那麼,我們可以:

對圖像進行奇異值分解。

然後,在儘可能保證圖像可被識別的前提下,只保留奇異值較大的若干項,捨去奇異值較小的項即可。

比如,這個小女孩的灰度圖的例子,

稀疏的世界:亂按多少次能碰巧打開別人的快遞櫃?

用奇異值分解的前100項之和復原的圖像

該照片原始文件的分辨率為1600*1200(文中展示的並非原始文件),如果直接存儲,則我們需要一個1600*1200的矩陣,消耗的存儲容量為1600*1200,接近200萬個格子。

而如果我們只保留奇異值分解的前100項,那麼,需要存儲的元素僅為,

100*( 1600+1200)

僅相當於直接存儲所需容量的15%。

這就是奇異值分解在圖像壓縮中的一個應用。

而圖像(照片)之所以能夠被壓縮,是因為圖像本身的模式,也是稀疏的。

"