當前位置:
首頁 > 知識 > 為什麼上帝是個程序員——從冪律分布說開去

為什麼上帝是個程序員——從冪律分布說開去

來源:人人網


我不知道上帝抽什麼牌子的香煙,但是有一點我敢肯定,那就是他在寫 hello world 這個程序的第一個版本時用了不少遞歸,原因是這樣可以節省不少力氣。(這個傢伙很懶,在寫 Women 這個 class 的時候繼承了 Man。)


最好的證明就是山河湖泊風花雪月懸崖峭壁中隱藏的那些分形,和現實生活中比比皆是的冪律冪律分布。

關於冪律分布(power-law distribution),生活中有許多有趣的現象,比如我們非常熟悉的長尾理論,80/20 法則和 Zipf 定律。


長尾理論


長尾(The Long Tail)這一概念是由 Wired 雜誌主編 Chris Anderson 在 2004 年十月的 The Long Tail 一文中最早提出,用來描述諸如 Amazon 這類網站的商業和經濟模式。


市場上流通的圖書高達 300 萬種,但能夠登上新華書店暢銷書架上的幸運兒終究是少數,而其他書大多躺在了書店的角落,無人問津。直到 Amazon 的出現,非暢銷書作者們才迎來了他們的春天。Amazon 每年在「小眾」圖書上取得的盈利總和遠遠超過了那幾本暢銷書帶來的利潤。所謂聚沙成塔,就是這個道理。

眾所周知,Google 的搖錢樹 AdSense 就是通過對數以百萬計的中小型網站和個人網站提供廣告個性化的廣告服務,將這群「烏合之眾」彙集在一起,組成了一支規模龐大的正規軍,帶來了巨大的經濟價值。


當互聯網進入 2.0 時代以後,所有用到機器學習演算法做用戶推薦的網站,都可以看成是對長尾理論的很好利用,即尋找長尾端「小眾」用戶的需求。比如在豆瓣上,你發現一本書有 10 個人「在讀」時帶來的驚喜遠比你發現一本書有 1 萬人在看要強烈得多。推薦一部正在熱映的電影的意義也遠不及推薦一部上世紀 60 年代由莫斯科電影廠出品但是很對你口味的片子。


80/20 法則


80/20 法則又稱「二八」定律。是20世紀初義大利統計學家、經濟學家 Vilfredo Pareto 提出的,簡單來說就是:社會上 80% 的社會財富被 20% 的人所擁有。


在猶太人社區中也流傳著類似的說法,叫78∶22 宇宙法則,即世界上許多事物,都是按 78∶22 這樣的比率存在的。比如空氣中,氮氣占 78%,氧氣及其他氣體占 22%。人體中的水分佔 78%,其他為 22%等等。

Bruce Eckel 在 Mythical 5% 這篇文章中指出:5% 的程序員開發效率是其他 95% 程序員的 20 倍。


但也有人說 80/20 法則已經過時了,而另一條新的經驗法則正在逐漸成型,那就是如果在互聯網上的每 100 人中,只有 1 個人會創造內容,10 個人會參與互動而餘下 89 人僅僅是瀏覽。也就說即使是在 web2.0 時代,舞台上的終究是少數,大多數人都在打醬油。


Zipf


1932 年,哈佛大學的語言學專家 Zipf 在研究英文單詞出現的頻率時,發現如果把單詞出現的頻率按由大到小的順序排列,則每個單詞出現的頻率與它的名次的冪次存在簡單的反比關係。這說明:英語單詞中只有少數的詞被經常使用,而絕大多數詞很少被使用。


事實上 Zipf 定律這在漢語中也成立,對於一個普通人來說認識常用字 2500 字就足以完成寫情書、催債信等的艱巨任務了,認識 900 個字也可以看看報紙了。而一篇文章中反覆出現次數最多的漢字可能只有 50~100 個,我小時候就是從寫這些字開始的。

英國的海岸線有多長


1967年,一篇大標題叫 How Long is the Coast of Britain 的 paper 在 Science 上發表,引起了一陣騷動。作者 Beonit Mandelbrot 是一位美籍法裔的數學家和計算機科學家,當時正在紐約的 IBM 公司的 Watson 研究中心工作。 他給出的答案令人瞠目:無論你做得多麼認真細緻,你都不可能得到準確答案,因為根本就不會有準確的答案。英國的海岸線長度是不確定的!


原來,海岸線由於海水長年的沖涮和陸地自身的運動,形成了大大小小的海灣和海岬,彎彎曲曲極不規則。


假如你乘一架飛機在 10000m 的高空沿海岸線飛行,同時不斷拍攝海岸照片,然後按適當的比例尺計算這些照片顯示的海岸總長度,其答案是否精確呢?否!因為,你在高空不可能區別許多的小海灣和小海峽。如果改乘一架小飛機在 500m 高處重複上述的拍攝和測量,你就會看清許多原來沒有看到的細部,所測得的結果就會大大增加。

隨著測量尺度的不斷減小,你觀察到的細節足夠多,海岸線就會越來越長。最終你所需要做的一件事就是拿著一把無窮小的尺,進行無窮多次的測量。


分形


關於分形,Mandelbrot 曾說過:


無論從美學的觀點還是從科學的觀點,許多人在第一次見到分形時都有新的感受。


Wikipedia 的定義是:


分形通常被定義為「一個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都(至少近似地)是整體縮小後的形狀」,即具有自相似的性質。


由於這種自相似的性質,無論我們在哪個尺度上觀察分形,結果都是相同的。


也就是說,無論站在怎樣的尺度上觀察,分形系統的構造都是相同的,這導致觀察者說不出自己究竟在分形的哪個尺度上。而這就是所謂的尺度不變性(scale free)。這恐怕是分形如此迷人的根本原因。


現實世界的很多東西滿足分形的這種自相似性,但前提是,在一定的範圍以內。比如我們在顯微鏡觀察一片葉子,並且不斷提高放大倍數,最後看到的分子,而不再是之前的遞歸結構。


尺度不變性


通過冪律分布公式同樣可以得出尺度不變的結論。


$$ f(cx) = a(ck)^k= c^kf(x)propto f(x) $$


當我們把 x 變為原來的 c 倍時,f(cx) 與 f(x)成正比。


假設人類個體財富滿足這個式子:財富 = 1000 * (人口) ^ -1,那麼它滿足冪律分布,也就是所謂的「80/20 法則」:財富達到 1000¥的人僅有 1 個,而有 1000 人只有 1¥。


當我們從人口數量這個角度去觀察系統的結構時,會發現:無論站在哪個尺度上,觀察到的系統都是相同的。儘管,在不同尺度的人口數量下財富的絕對數量還是發生了明顯的變化,但是相對量卻沒有變。事實上,一旦我們把 CPI、通貨膨脹、匯率問題、攀比心理種種因素考慮進去,財富的絕對數量也就失去了意義。


這說明人類財富的分配存在著某種自相似性,以至於當你變換觀察的尺度時,整個系統看起來都沒有太大的變化。無論你是站在一個人的角度看,還是一戶人家,甚至是一個國家,財產都是這麼分布的。這些分布是如何產生的?除了遞歸,我想不到其他解釋。


相反,如果人類個體財富與人口之間的關係不滿足冪律,而是一個正弦函數(財富數量 = sin (人口數量))的話,情況就截然不同:


當我們不斷改變人口數量的尺度時(每次以之前兩倍的比例尺),觀察到的系統明顯不同。


形而上


縱觀整個世界,物質的構成都是分層次的,大到一個星系,小到一個原子核,莫不如是。如果要為每一種物質的生成和運動規律寫一段代碼,上帝非累死不可,那麼最好的辦法就是用遞歸。於是這個世界在不同的層次上存在著不同程度的自相似,比如物體運動的規律在很大的範圍內都適用。而在很長一段時期我們人類因為沒有望遠鏡,也沒有顯微鏡,所以一直在以一個很有限的尺度觀測周遭的這個宇宙。


Jonathan Swift 在小說 Gulliver"s Travels 中有過這樣的描寫,當 Gulliver 來到巨人國後,他發現沒有一個女人是漂亮的,因為在他小小的眼睛裡,女人每一個猙獰的毛孔他都看得清清楚楚。這說明一個女人是否美麗,除了黃金分割,還要把觀察者的尺度考慮進去。


遞歸的深度 n 取決於上帝創世紀之初時使用的那台 Adam-I 的配置,人類花了 10 萬年的時間進化到今天的程度,當中走了不少彎路,直到最近100年科技突飛猛進,已經從宏觀和微觀兩個方向探測到了多個 n 的值,從而證明他那台計算機的性能也不過如此。


如果讓我猜一猜生命最初那段代碼是啥,我覺得很有可能是 TheoryofEvolution()。大自然界中充斥著適者生存,物競天擇,個體除了面臨如何生存的問題,更是肩負著繁衍種群後代的使命。我們每個人都包孕在整個人類的文明之中(不同的上下文,但卻是同樣的代碼片段)。所以不要問我喪鐘為誰而鳴,它也為你敲響。

為什麼上帝是個程序員——從冪律分布說開去



請您繼續閱讀更多來自 程序員之家 的精彩文章:
您可能感興趣

從蘋果發布會說開去
讀書,從一隻蟋蟀說開去
關於陳道明說開去,我是這麼看的!
從「文人相輕」說開去
談對聯句式,從律詩的四平頭說開去
從肯德基賣小龍蝦說開去
由唐斯的言論說開去 細說NBA球員年薪變化史
從24點撲克牌遊戲說開去
從宮崎駿的復出說開去
從足底器官映射說開去
從「打虎捉鼠「說開去
出軌是一種什麼心理?從王寶強張紀中案例說開去
聊天如何撩到12星座,為什麼要想不開去撩摩羯座?
從相親鄙視鏈說開去
從一張餅圖說開去……
「阿Q」嚴順開去世,謝謝你帶給我們的那些笑聲
從廣州的寺廟說開去
從長征五號的失利說開去!
從分宜海螺完成散裝系統安全平台改造說開去