2007年9月30日 星期日

850*77.1

昨天在研討會上,看到全任重教授親手在現場操作 Excel 2007,很單純地計算 850*77.1 得到答案 100000 (十萬)。

誰都可以計算正確答案,是整數 65536 恰好是 2^16 - 1,我不知道這個 bug 和 unsigned short int 有沒有關係? 但是,就算是這種與型態有關的錯誤,不是早就該被訂正了嗎?

很久以前,我曾經看過一位研究生用 Excel 算出大於一的相關係數。當時我根本沒興趣去調查發生錯誤的原因, 反正我覺得微軟的軟體做什麼都是正常的,只是告訴學生換成 Matlab,永遠不要再碰 Excel 就對了。

只是,我一直信任的 Matlab 也不可靠。他們的 wavelets 工具箱曾經出錯,計算出不符合數學必要條件的結果。這是羅文仁發現的,後來我們全部自己寫 wavelets 的基礎計算程式。

還有 Maple 的問題比 Matlab 更多一點。也是昨天看到全教授展示的: 1/(1+x+x^4)^2 從 0 到無限大的暇積分,得到答案 0。被積分函數相當於 1/(1+x^8),一定是可積的,而且恆正,Maple 能夠正確顯示它的圖形。但是積分卻是 0,明顯地錯誤。

注:兩個向量的相關係數,相當於它們夾角的餘弦比值,因此必定在正負一之間。

3 則留言:

  1. 微軟針對這個問題已經更新囉,可以參考iThome雜誌317期P14有詳細報導

    或是參考 http://www2.uwants.com/viewthread.php?tid=5119078&extra=page%3D1

    應該近期就會出更新程式

    回覆刪除
  2. 人類一直想追求完美,往往會得到反效果!
    所得的唯一結論就是堪用就好!取得一個平衡點~

    回覆刪除
  3. 網誌管理員已經移除這則留言。

    回覆刪除