[討論] 標準差問題 平方破表

看板C_and_CPP (C/C++)作者 (烤地瓜)時間12年前 (2014/05/30 17:11), 編輯推噓9(906)
留言15則, 7人參與, 最新討論串1/1
我想請問大大們 我做一個實驗 之後求標準差 用標準差的公式 標準差={[(各數-平均數)^2的總和] 除以 樣本數}開根號 我遇到 我個數 2.27976e-178 平均數 2.75109e-177 問題在於 (各數-平均數)後平方 我是用double 但還是破表.... 變成0.. 後面都不用算了 想請問大大們 有遇到破表情況要怎麼辦? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.88.208 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1401441068.A.9C5.html

05/30 17:18, , 1F
所有樣本乘上一個常數去算標準差,算完再除回去
05/30 17:18, 1F

05/30 17:30, , 2F
感恩!!!
05/30 17:30, 2F

05/30 21:26, , 3F
如果會破表,那市售軟體怎麼可以用。
05/30 21:26, 3F

05/31 00:16, , 4F
mpfr 或用別的程式語言或工具
05/31 00:16, 4F

05/31 04:23, , 5F
大數運算的library
05/31 04:23, 5F

05/31 14:58, , 6F
我最近也在寫這個程式 我一直在研究裡面的程式碼
05/31 14:58, 6F

05/31 15:19, , 7F
輸入位數到越高或越低 會出.#J
05/31 15:19, 7F

05/31 15:21, , 8F
樓上那是因為出現無限大, 輸出 1.#INF 再"四捨五入"成 1.#J
05/31 15:21, 8F

05/31 15:21, , 9F
另外原 PO 的問題是另一個方向的破表, 它 underflow 了
05/31 15:21, 9F

05/31 15:28, , 10F
有方法可以改善嗎? 如果輸入兩個極端數字就會變成這
05/31 15:28, 10F

05/31 15:29, , 11F
或兩個極高數字
05/31 15:29, 11F

05/31 15:32, , 12F
調整公式使得計算的數字的次方數不要那麼接近邊界
05/31 15:32, 12F

05/31 15:33, , 13F
例如原 PO 的數字太小所以一樓建議乘上常數變大算完再除回去
05/31 15:33, 13F

05/31 15:39, , 14F
試設輸入字串的範圍?
05/31 15:39, 14F

05/31 17:13, , 15F
如果是使用者輸入值的話限制輸入範圍也是一個方法
05/31 17:13, 15F
文章代碼(AID): #1JY4iid5 (C_and_CPP)
文章代碼(AID): #1JY4iid5 (C_and_CPP)