筆者在《關於程式錯誤與地球毀滅》這篇文章提到如果使用 Google 搜尋框進行大數計算時,由於系統臭蟲(Bug)的存在將導致程式計算出錯誤的答案;文末更解釋程式錯誤將如何導致地球毀滅(繼續恐嚇)。
筆者在昨天又發現另一隻 Google 臭蟲,這次會導致程式錯誤的大數「8 796 093 022 208」,只要仔細研究一下就會出現非常有趣的事實。
大家如果還有印象,以前國中的數學考卷上,曾經出過這樣一道數學題目:「一張紙需要反覆折疊多少次才能讓人登上月球?」
假設紙張厚度為 0.04mm,月球與地球的均距約 385000(整數這樣取純粹是個人癖好)公里,答案就是將紙張反覆折疊 43 次後,就能讓人攀上月球。
折疊 43 次的意思,等於 2 的 43 次方,恰好就是「8796093022208」這個大數。
與《關於程式錯誤與地球毀滅》用到的計算方式一樣,只要計算式符合「N – ( N – 1)」(N ≥ 8796093022208),就會產生錯誤的答案,其詳細計算式為「8796093022208 – 8796093022207 = 0」。
如果你懷疑 Google 為何會犯下這種程式設計上的老錯誤,我倒覺得比起程式錯誤這種老掉牙的官方說法,或許這幾隻程式上的臭蟲,其實都是 Google 打算消滅全人類的陰謀!?(拉沙發吃爆米花)
無論使用內建 Apple iOS 的 iPhone、iPad、內建 Google Android OS 的 Acer、HTC、SONY、Motorola 等智慧型手機與平板電腦,或內建 Windows 8 的 Nokia 手機,請立刻開啟手機上的計算機,並輸入上揭大數進行運算,趕快確認一下你自己的手機,是否也偷偷藏著會導致人類滅亡的關鍵!(至少下次在數學小考時可以避免出錯 :P)
畢竟比起在桌機的瀏覽器上大費周章後才能輸入運算式,我們似乎更容易在手機上進行臨時性的數學運算,大家認為我說得對不對?
發佈留言