bug - cccnqu/se107a GitHub Wiki

Bug

由來

在1947年9月9日,葛麗絲·霍普(Grace Hopper)發現了第一個電腦上的bug。當在Mark II電腦上工作時,整個團隊都搞不清楚為什麼電腦不能正常運作了。經過大家的深度挖掘,發現原來是一隻飛蛾意外飛入了一臺電腦內部而引起的故障(如圖所示)。這個團隊把錯誤解除了,並在日誌本中記錄下了這一事件。也因此,人們逐漸開始用「Bug」(原意為「蟲子」)來稱呼電腦中的隱錯。現在在華盛頓的美國國家歷史博物館中還可以看到這個遺稿。

類型

  • Bug 的類型
    • 波爾型 : 完全可確定,每次只要輸入相同都會發生。 (沒有邊際效應)
    • 海森堡型 : 重啟之後不再發生,你也完全無法預知何時會發生。
    • 曼德博型 : 過於複雜導致 bug 無規律出現。
    • 薛定谔型 : 程式處在又死又活的疊加態,只有在測試之後才知道到底是死的還是活的。(但每次結果不一樣)
  • https://en.wikipedia.org/wiki/Software_bug#Types

浮點數 Bug

蝴蝶效應

問題:假如牛頓定律是完全正確的,那麼在某個時刻,有個惡魔得知了所有粒子的狀態,這樣他就可以完全預測 100 年後的世界會發生哪些事情嗎?

Bug 範例

JavaScript

Bug 的歷史