Total Pageviews

2022/07/06

[閱讀筆記] The Math of Life and Death - ㊄ 錯的地方、錯的時間:數字系統如何演變、又如何讓我們失望 (Wrong Place, Wrong Time: When Our Number Systems Let Us Down)

 

  1. 我們目前使用的是「十進位制位值系統」(decimal place value system),所謂的「位值」(place value) 是指,不同位置的數字代表不同的數值;而「十進位」是指,同一個數字放在相鄰位置,代表的數值會比隔壁大或小十倍。不同位置間的相乘係數稱為進位基數,在十進位就是 10。

  2. 🖐️🖐️人類會廣泛採用十進位,而非其他進位,理由很簡單,我們要計數時,就是用十根手指來計數。

  3. 古羅馬系統的數字系統較為原始,共有七個符號如下表。古羅馬人意識到自己的數字系統效率低落,因此規定數字永遠要由左而右寫,從最大小到最小,這樣就能方便做數字加總。例如,MMXV = 1000 + 1000 + 10 + 5 = 2015;1888 年完成的波士頓公共圖書館,就刻著 MDCCCLXXXVIII ( = 1000 + 500 +100 +100 +100 + 50 + 10 +10 +10 + 5 + 1 +1 +1,足足有 13 個字元,是上個千禧世代最長的羅馬數字。

符號

I

V

X

L

C

D

M

數字

1

5

10

50

100

500

1000


  1. 雖然羅馬數字的使用歷史悠久,佔有優勢,但這套符號系統過於複雜,不利於高等數學的發展,因而從未通行世界。事實上,羅馬帝國的一項著名事蹟,就是沒有傑出的數學家,對數學研究沒有什麼貢獻

  2. 六十進制是以 60 為底數的進位制,源於公元前三千年至公元前兩千年的蘇美人,後傳至巴比倫,流傳至今仍用作紀錄時間、角度和地理座標。(https://reurl.cc/bnQAby)

六十進制的應用

  • 主要用以計算角度、座標,最常運用在時間計算上,60秒為一分,60分為一秒,但是在計算細部時仍是依照十進位計算。例如,"3:23:17"(三小時廿三分十七秒)即相當於3×602+23×601+17×600秒或3×600+23×60−1+17×60−2小時。當中的六十進制數字(即3、23和17)均以十進制數字寫出。

  • 相類似的是角度,一個圓形被均分成 360 度,每一度有 60 角分,一角分等於 60 角秒。

六十進制的優點

  • 由於 60 含有 2 、3 和 5 三個質因子,六十進制的數可被較多數整除,使得許多分數在該進制下是有限小數。例如,在分配貨幣時, 60 shekel 要分給 2 、 3 、 4 、 5 、 6 、 10 、 12 、 15 、 20 、 30 人,都能剛好分完,不會產生爭議。

  • 先進的 60 進位位值系統,讓蘇美人能做高等數學運算,像是解二次方程式 (ex. 分配農地的時候會遇到) 和三角函數。

巴比倫人繼續發揚光大

  • 📐 巴比倫人掌握一定的幾何知識,會把不規則的田地分成不同的長方形、三角形和梯形來計算面積。他們還掌握畢達哥拉斯定理,求得圓周和直徑的比率是3。在代數上,他們能解開三個未知數的方程式。

  • 貿易的需要,巴比倫人還制定了重量、長度、面積、體積、貨幣等的計算單位。古巴比倫人是古代最有成就的數學家。巴比倫人的幾何學也同樣取得了令人驚嘆的成就。(https://reurl.cc/95eagx)


  1. 我的兩個小孩讓我學到一項痛苦的教訓,分東西的時候一定要公平。我敢打包票,他們寧願兩個人都只有一個糖果,也不希望自己有 5 個、對方有 6 個。 如果你是以兒童為重點的產品製造商,以 12 個為一組的賣法就能讓客群最大化、也最不容易惹惱客戶,無論是要應付 1 、 2 、 3 、 4 、 6 、 12 個孩子的家庭都沒問題。

  2. 一如蘇美人用的 60 進位,十二進位優於十進位的主因,在於有更多的分數能夠「漂亮的終結」。例如,十進位制裡,1/3 會變成麻煩的無限小數 0.33333;十二進位裡,1/3 就是 4/12,小數寫成 0.4。十二進位制的擁護者認為,這套制度能減少四捨五入的必要性,解決許多目前十進位制所引起的捨入誤差 (rounding error)。(https://reurl.cc/NZk1eQ)

捨入誤差 (rounding error) 例子

🚀 1990年2月25日,海灣戰爭期間,在沙烏地阿拉伯宰赫蘭的愛國者飛彈防禦系統因浮點數捨入錯誤而失效,該系統的計算機精度僅有24位,存在0.0001%的計時誤差,所以有效時間闕值是20個小時。當系統運行100個小時以後,已經積累了0.3422秒的誤差。這個錯誤導致飛彈系統不斷地自我循環,而不能正確地瞄準目標。結果未能攔截一枚伊拉克飛毛腿飛彈,飛毛腿飛彈在軍營中爆炸,造成28名美國陸軍死亡。

🚀 1996年6月4日,在亞利安五號運載火箭發射後37秒,偏離預定軌道而炸毀。原因是軟體系統試圖將64位浮點數轉換為16位浮點數,造成溢出錯誤。

📉 1982 年溫哥華證券交易所指數剛成立不久,雖然市場表現強勁,指數卻有近兩年的時間持續暴跌。原因在於每次交易後,指數會無條件捨棄到小數點第三位,所以指數一直減少。當時每天有 3000 筆交易,就讓溫哥華證券交易指數每個月下跌 20 點,22個月以後,指數的值是 524.881,然而事實上應該是 1009.811。


  1. 千禧蟲危機 (Year 2000 Problem, Y2K) 是指由於電腦程式設計的一些問題,使得電腦在處理2000年1月1日以後的日期和時間時,可能會出現不正確的操作,從而可能導致一些敏感的工業部門 (比如電力,能源) 和銀行,政府等部門在2000年1月1日零點工作停頓甚至是發生災難性的結果。🏥 位於英國 Northern General Hospital 的唐氏症檢測中心,其 PathLAN 系統就是因為沒修復 Y2K 而導致憾事發生。

PathLAN 系統唐氏症檢測流程

因 Y2K 造成生日計算錯誤,導致偽陰性與憾事發生


  1. 二進制 (binary)

二進制說明

  • 在數學和數位電路中指以 2 為底數的記數系統,以 2 為基數代表系統是二進位制的。這一系統中,通常用兩個不同的數字 0 和 1 來表示。數字電子電路中,邏輯閘直接採用了二進制,因此現代的計算機和依賴計算機的裝置裡都用到二進制。

  • ptt joke: 「世界上只有 10 種人,一種懂二進位、一種不懂」意思就是「 1 乘 2 的 1 次方 + 0 乘 2 的 0 次方 = 2」這個 10 不是用十進位、而是用二進位去解讀的。(https://reurl.cc/yepOZl)

二進制造成的麻煩

  • 在波灣戰爭,愛國者導彈系統所使用的時間單位是 1/10 秒,雖然 1/10 用十進位制寫起來是簡潔有力的 0.1,但是轉成二進制後,卻變成無限循環小數 0.001100110011...,在 0.0 之後不斷重複 0011。由於沒有任何系統可以儲存無限多位的數字,所以飛毛腿系統只儲存 24 位數,因而產生捨入誤差 (rounding error) ,飛毛腿飛彈在軍營中爆炸,造成28名美國陸軍死亡。

  • 無論使用任何基數,都不能只用有限的位數就表達所有數字。如果採用不同基數,或許可以避免此次愛國者飛彈系統問題,但絕對會造成其他錯誤。雖然電腦系統常因二進位制而造成錯誤,但有鑑於耗能與可靠度上的優勢,二進位制仍是電腦最合理的選擇。然而,在現實社會使用二進位制,就會發現此優勢不存在。



No comments: