您當前的位置:首頁 > 寵物

13*3 == 1.0 ?

作者:由 桂子 發表于 寵物時間:2022-10-21

我一直以為程式語言在處理這個式子結果會為 0。999999999999999 實際上 java rust python julia js 都執行這一行時,結果都是 1

其中 python 的 float 實際是 64 位的 double,並沒有預設型別的32位浮點,通常是 numpy 的 32 位浮點,但是意外發生了:

13*3 == 1.0 ?

numpy float32 誤差

而同樣為資料科學語言的 julia 在這方面比較嚴謹

13*3 == 1.0 ?

julia float32/64 正常

數學上嚴謹是應該的,有時這些誤差甚至認為是合理的,因為水至清則無魚。

在統計學上,表示誤差的還有很多術語:方差、標準差、T檢測等

其中,標準差是方差的平方根,我一直在說像很多商品標識誤差範圍 ±5 中的5是不是標準差

T檢測據說多用於少樣本(30樣本以內),我就簡單驗證了一下,樣本數大致在 25~100 之間比較合適

既然現實世界裡,誤差是合理的,那麼是否認為,接近正確就是正確?這樣就引申到一個較為爭議的話題:

接近正確是正確嗎?接近完美是完美嗎?

話題有一個小段子,說幼兒園老師問:蜘蛛有幾條腿?回答對了有獎勵,可小朋友都說錯了,並且有一個人還說有7條腿,最後老師把獎勵給了7條腿的小孩,理由是他的答案最接近8條腿。所以,接近正確的答案是正確嗎?

再引申,假設說要成為總統的條件就是工滿足『8條腿』,但是沒有人滿足得了,難道就不選總統了麼?

網路上,經常聽到,四捨五入,我就達標了等等,實際上就是說,接近完美,四捨五入後就是完美。

這真是一個有意思的爭議。

標簽: 條腿  誤差  正確  Julia  接近