壘碼不知計算史,閱盡演算法也枉然
世界上只有兩種人,想象力大於等於100的和想象力小於100的。 --Alex·Erhei
人類之所以能在漫長的歷史程式中爬上食物鏈的頂端,主要是因為人類有能力建立起地球上最大的合作網路。 公元前8500年,全球最大的人類聚落大概有幾百個村民,其規模並不比羊群、牛群、狼群、猩猩群大多少;公元前7000年,世界上最大的人類聚落應該是位於今日土耳其的加泰土丘城鎮,大約有5000到10000人。之後人類聚落的規模越來越大,把其它物種遠遠甩在了身後。
然而不管是古代美索不達米亞的城市,還是秦朝和古羅馬的帝國,直至現在為“薩德”而群情激奮的十幾億人,能聚在一起都只是因為由想象所構建的秩序。雖然所有動物的聚落都會有秩序,但都沒有人類聚落構建出來的秩序強大。因為其他動物的秩序是靠動物的本能維持的,而維持人類聚落秩序的,比如神仙、妖怪、國家、法律、金錢、公司等,靠的是人類的想象。
猩猩也怕電閃雷鳴,但猩猩缺乏想象力,所以如果你告訴猩猩搶你的香蕉會遭雷劈,它估計會撓你個滿臉花,然後照搶不誤。信神,是智人離開猩猩走向神壇的第一步!
然而維持法律、習俗、程式、禮儀這些由想象構建的秩序,需要處理大量的資訊。但人腦的能力有限,在公元前3500年之前,如果某個社會的人數和物品數量超過人腦的處理能力,社會秩序就會崩潰,因此也無法形成更大規模和更深入的合作。
在公元前3500~公元前3000年之間,在美索不達米亞南部生活的蘇美爾人想象力爆表,發明了一套可以在人腦之外儲存和處理資訊的系統。從此,蘇美爾人的社會秩序不再受限於人腦的處理能力,開始走向城市、王國和帝國。這套系統就是“文字”。蘇美爾文字系統結合了兩種符號,第一種符號代表的是數字,另一種符號則代表人、動物、商品、領土、日期等。
上圖右側是一塊蘇美爾人制作的泥板,是目前已知的人類歷史上最早的文字記錄。這塊泥板清楚記載著在37個月內收到了29086單位的大麥,並由“庫辛”籤核。為了記賬,人類的想象力又飛躍了。
美索不達米亞人不僅能記錄,還會計算。在一塊公元前2500年的一塊泥板上,記錄了這樣一道算術題:如果穀倉裡有1,152,000份糧食,每個人分7份,則可以分給164571人。
但人們認為數學史的開端是在公元前5世紀的希臘,因為之前人類做的都是應用題,比如分糧食,或者為了丈量土地面積而計算矩形、三角形和圓形的面積。從畢達哥拉斯學派開始,人類才脫離了具體應用,將數字和計算作為研究物件,而且在尋找2X2=y2的解時,首次引入了推理。
美索不達米亞人在做除法時,知道自己會得到什麼樣的結果,也知道要算多久。可畢達哥拉斯學派求解2X2=y2時,並沒有明確的演算法,如果要逐一驗證的話,有無窮多個自然數等著呢。如果不是靠想象力爆棚,想出推理的思路,這題算多少年也算不出來。
數學是靠想象力的,而寫程式碼是靠數學的。如果不知道計算在數學發展過程中的來龍去脈,又怎麼能提升自己的想象力呢?
所以,作為一個有理想有追求有品位有深度的碼農,一定要讀一讀表面上很淡雅,實際上特別黃的《計算進化史》。
另外,這本書的譯者勞佳,在圖靈作譯者那個一百多人的小聚落裡,是一位表現卓越的詞彙量、智商和人生閱歷三棲明星。
相關文章
- 計算機字元編碼詳盡講解計算機字元
- 求大師也幫我算一命 感激不盡
- 計算機歷史計算機
- 也談如何閱讀程式原始碼原始碼
- 《計算進化史》感受
- 計算機發展簡史計算機
- 計算機網路簡史計算機網路
- 【計算機病毒編年史】計算機
- 計算機的發展史計算機
- 計算機簡史——試譯計算機
- 你也許不知道,CSS 也有程式設計能力?CSS程式設計
- 計算機極簡發展史計算機
- 雲端計算簡史(完整版)
- 計算機硬體發展史計算機
- 隱私計算綜述閱讀
- 計算機演算法計算機演算法
- JavaScript編寫計算器的發展史JavaScript
- 7.18 史也分好壞,R959 是好史。
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 初識雲端計算:歷史、服務、架構架構
- 第一集 計算機早期歷史計算機
- 《人工智慧簡史》閱讀感悟人工智慧
- 程式碼將退出歷史舞臺:像訓狗一樣訓練計算機計算機
- 什麼?Java9這些史詩級更新你都不知道?Java9特性一文打盡!Java
- 你所不知道的大資料、雲端計算,以及無法計算的價值大資料
- 我亦云雲——也談雲端計算(1)薦
- 一圖看盡移動遊戲發展史——資訊圖遊戲
- 你所不知道的虛擬化和雲端計算
- 計算機演算法:資料壓縮之字首編碼(5)計算機演算法
- 計算機演算法:資料壓縮之遊程編碼計算機演算法
- 也許你不知道的npm-scriptsNPM
- 你也許不知道的Vuejs - 前言VueJS
- 改變數學的命運——《計算進化史》變數
- 歷史或許也只能用來思考
- 痞子衡嵌入式:不可不知的計算機原理知識(1)- 整數表示(原碼/反碼/補碼)計算機
- 歷史需要重寫?AlexNet之前,早有演算法完成計算機視覺四大挑戰演算法計算機視覺
- java 原碼、反碼、補碼計算 以及 取反(~)運算Java
- 閱讀計算機圖書的一些心得計算機