
Google的計算機在處理大數字時竟然會算錯。這個問題在電腦界並非前所未聞,但對於一家以巨大無比的數字為名,且宅人群聚的公司而言,連算數都會錯實在很糗。
錯誤通常是發生在非常大的數字,如2,999,999,999,999,999減2,999,999,999,999,998應該等於1,但Google計算機卻顯示答案為0。
算錯的狀況並非一致。1,999,999,999,999,999減1,999,999,999,999,995,答案是錯誤的0,但1,999,999,999,999,999減1,999,999,999,999,993可正確得出6。而400,000,000,000,002減400,000,000,000,001又得出錯誤的0,但400,000,000,000,002減400,000,000,000,000卻是正確答案2。
幸災樂禍者最覺得好笑的地方,是用Google這個名稱的加減算數,得到的結果也是錯的。英文字googol的原意代表1後面加上100個零。一個googol加1再減一個googol,正確答案是1,Google計算機的解答是錯誤的0。
事實上,大數字的算術的確很難,當中涉及特別的數字加密方法,才能得到絕對準確的答案。所幸,一般的計算機製造商不會碰到這些問題,因為如此大的計算通常只用在天文學計算星體的距離;太過細微的結果,在現實世界中其實沒什麼意義。
大數字的表現方式通常是兩段的小數點格式,部分小數字(假數)乘以10的若干次方(指數)。舉例來說,Google第二季的營收為12.5億美元,或1,250,000,000美元,或1.25美元乘以10的9次方,或$1.25 x 10^9。小數點算術很適用於非常大的數字,但通常假數部分只保留一定數位,其他部分則忽略。
電腦的數學是二進位,只有0或1,人腦則是十進位,數字從0到9。當電腦將數字轉換成二進位計算,再把結果轉回人們習慣的十進位,準確度的確可能出問題。事實上,即使運算技術已經發展數十年,在最新的旗艦Power6處理器推出之前,連IBM都無法讓電腦實際執行十進位計算。
一般的計算機根本無法處理太大的數字。當然,Google或許出糗了,但大部分的手持計算機根本不會讓你輸入1,999,999,999,999,993這種數字,更別說計算了。而Wolfram Research Mathematica這種可以精準計算的專業軟體,市場也不大。
如果Google必須主動偵測大數字的計算,再將工作送到設有更先進預算規則的伺服器執行,可能會明顯降低計算機功能的速度。而Google把重點放在伺服器回應是正確的,因為搜尋引擎越快,使用者搜尋的越多。但這個問題是Google核心文化與形象的一部份,Google的算數出錯,就好比政客身上披了一面圖案有錯的國旗。
畢竟,這是一家用數學難題測試應徵者,並將初次公開發行股票的籌資金額訂在2,718,281,828美元(代表自然對數底數"e,")的公司。Google可以修改運算公式,就像微軟最近處理Excel的數學問題,和英特爾在1990年代(付出昂貴代價)解決影響Pentium處理器的FDIV問題一樣。
Google的計算機還有其他錯誤。如2.00135558564^1023被解釋為1.79769313 x 10^308。但把這個數字稍微加一點到2.00135558565^1023,Google會把它視為一個搜尋請求,而非數學問題。
記者認為,在最後一個例子,Google選擇不算出答案,而是顯示搜尋結果,這種不會誤導任何人的方法,就是所謂優雅的失敗模式。沒有答案總勝過錯誤的答案。尤其是真正使用計算機功能的人,是那些根本不會發現有錯的人。(陳智文譯)



8.匿名 於 2008/08/28 11:13 回應
windows 內建的小算盤也算得出正確的答案ㄝ...XD7.ts 於 2008/08/27 12:59 回應
google竟然要提供了大數字的運算~~當然要算出正確的結果~沒有所謂精準度的問題~~不給答案比給錯答案來得好~~6.losswing 於 2008/08/27 11:13 回應
2,999,999,999,999,999減2,999,999,999,999,998差距的確幾乎等於零呀
有啥不對的地方嗎
任何一種計算的意義的重要性遠遠大於精準度
國中不是有教過無限大減無限大等於零~!@#$%^%^
5.匿名 於 2008/08/27 10:31 回應
還是有軟體能夠算很大數字的整數,Google這問題也不是個案,更何況Google本來就是搜尋為主,附加計算機功能,Excel的失真度還比較嚴重,因為很多人都用Excel在作一些統計,且Office真的很貴.....,看來MS 不可靠的東西又多了一樣4.匿 於 2008/08/26 21:55 回應
我覺得是作者..雞蛋裡挑骨頭吧.....(汗3.酒鬼 於 2008/08/26 15:37 回應
「記者認為,在最後一個例子,Google選擇不算出答案,而是顯示搜尋結果,這種不會誤導任何人的方法,就是所謂優雅的失敗模式。沒有答案總勝過錯誤的答案。」我覺得最後這個建議到是不錯的,畢竟一般會使用計算機來計算的人,不會使用到這麼大的數字。
計算機也是有限制的,告知使用者計算機的限制,總比給出錯誤的答案要好。現代可能有太多人,計算機給出錯誤的答案,他們也會以為是對的。
2.Roy 於 2008/08/26 14:56 回應
excel更是糗 輸入2,999,999,999,999,999得到的是2,999,999,999,999,9901.匿名 於 2008/08/26 14:01 回應
事實上,這個問題就很單純是精準度的問題,很多程式在過大的整數都是直接轉成浮點術來運算,因此兩個相等的浮點數相減等於零。這個問題有學過計概跟沒學過計概會有不同的看法。不然可以用用Excel算一下,看一下Excel也算錯,說不定Excel的精準度還不如Google呢。