[機統] 如何驗證所產生的亂數是均勻分布?

看板Math作者 (sjgau)時間9年前 (2014/08/23 09:22), 編輯推噓2(2015)
留言17則, 5人參與, 最新討論串1/1
假設,自己寫了一個副程式, 用來產生 很多 0.0 - 1.0 的浮點數的亂數, 請問:使用甚麼樣的方法,可以證明 這些亂數是 均勻分布? 謝謝 回覆 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.192.184 ※ 文章網址: http://www.ptt.cc/bbs/Math/M.1408756948.A.C2A.html

08/23 10:14, , 1F
卡方檢定
08/23 10:14, 1F

08/24 10:18, , 2F
視樣本大小也可以做Kolmogorov-Smirnov Test
08/24 10:18, 2F

08/24 10:19, , 3F
不過你的是浮點數應該要使用K-S 因為continuous
08/24 10:19, 3F

08/24 16:34, , 4F
如果產生的亂數夠多, 而且如果只考慮其分布是否均勻
08/24 16:34, 4F

08/24 16:35, , 5F
用卡方(配適度)檢定就可以了, 例如假設有10000個亂
08/24 16:35, 5F

08/24 16:36, , 6F
數, 以例如 0.025 為組距分成40組. 令各組亂數個數
08/24 16:36, 6F

08/24 16:37, , 7F
為 n(i), 計算χ^2 = Σ(n(i)-2500)^2/2500, 自由度
08/24 16:37, 7F

08/24 16:38, , 8F
40-1 = 39. 以上所提組距只是隨意舉例, 並不一定要
08/24 16:38, 8F

08/24 16:39, , 9F
這麼分. 又: 上列χ^2 修正, 是 Σ(n(i)-250)^2/250
08/24 16:39, 9F

08/24 16:40, , 10F
不過, 亂數的驗證, 上述簡單的均勻性只是基本. 事實
08/24 16:40, 10F

08/24 16:41, , 11F
上要驗證亂數的適用性並不容易, 請參考相關的書, 例
08/24 16:41, 11F

08/24 16:41, , 12F
如統計模擬, 統計計算的書. 又, Knuth 的 The Art
08/24 16:41, 12F

08/24 16:43, , 13F
of Computer Programming 第2冊半本書都在談亂數產
08/24 16:43, 13F

08/24 16:44, , 14F
生及驗證的方法.
08/24 16:44, 14F

08/24 17:37, , 15F
謝謝樓上
08/24 17:37, 15F

08/27 22:37, , 16F
一般simulation的書也會有驗証亂數的方法
08/27 22:37, 16F

08/28 06:42, , 17F
這個問題很複雜...請見 丁致良著離散數學11章
08/28 06:42, 17F
文章代碼(AID): #1Jz-pKmg (Math)