[問題] 亂數問題(更改)

看板Programming作者 (黑麻糬)時間11年前 (2014/08/20 14:25), 11年前編輯推噓5(5011)
留言16則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 4.9.9.2 就我自己曉得的電腦亂數 rand() 是一張亂數表為底,在亂數種子未重設之前 它在這張表中依序取出數字出來當做亂數 因為我現在是想透過電腦模擬來驗證數學結果 數學結果是 "最理想" 的狀態下的期望值結果 但是不論我怎麼試,模擬的結果似乎都無法做到以上的這點 因為模擬結果 dependent on random table 例如: 兩張只含有 8 個 0, 1 亂數的亂數表 A, B, C, A: 1 1 0 1 0 0 0 1 B: 1 1 0 1 0 0 1 0 C: 1 1 1 1 0 0 0 0 三表都各含 4 個 0、4 個 1,從這三表去取出來的數滿足 P(A)=P(偶)=0.5 如果遊戲規則訂為 "投入1$,取兩數,若是一奇一偶則多得 1$,反之 1$ 就沒了。" 就數學的角度,在公平的遊戲中,機率為 P(奇 & 奇)=P(奇 & 偶)=P(偶 & 奇)=P(偶 & 偶)=0.25。 就電腦亂數表的角度,頭尾相接持續取亂數 A 表滿足以上各 Case 機率=0.25 的性質=================> P(+分)=P(-分)=4/8 B 表 n(奇&奇)=1、n(奇&偶)=3、n(偶&奇)=3、n(偶&偶)=1 => P(+分)=6/8, P(-分)=2/8 C 表 n(奇&奇)=3、n(奇&偶)=1、n(偶&奇)=1、n(偶&偶)=3 => P(+分)=2/8, P(-分)=6/8 用這三張亂數表去做這個遊戲的模擬 那 A 表的顯示遊戲公平(與數學結果相同),B 表顯示玩家得利,C 表顯示莊家得利 Q:原表亂數 equally likely 不能 implies 帶出來的遊戲模擬結果也是 equally likely 的吧? 那在模擬時要怎麼辦? 先做出滿足條件的亂數表? 還是這兩數各給一張表? 希望版大們能給點意見~ 腦筋打結時容易鑽牛角尖,版大們也可以當我胡思亂想。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.185.171 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1408515924.A.23D.html ※ 編輯: hexjacal (1.165.185.171), 08/20/2014 14:26:46

08/20 22:20, , 1F
亂數表又不保證你不會抽到同樣的號碼(球)
08/20 22:20, 1F

08/20 22:21, , 2F
如果你需要non-replacement抽法,要自己處理
08/20 22:21, 2F

08/20 22:22, , 3F
這跟一袋球或五袋球沒有關係
08/20 22:22, 3F

08/20 22:22, , 4F
你只需要一個產生器(一個seed)
08/20 22:22, 4F

08/20 22:23, , 5F
也就是說你原本的認知是錯誤的,用亂數產生器
08/20 22:23, 5F

08/20 22:24, , 6F
抽到1號球,下次再抽到1號球的機率一樣
08/20 22:24, 6F

08/20 22:55, , 7F
你的問題其實就是標準的賭徒謬誤
08/20 22:55, 7F

08/20 22:55, , 8F
08/20 22:55, 8F

08/21 11:27, , 9F
了解嚕,我再多模擬幾次試試看
08/21 11:27, 9F

08/21 17:30, , 10F
rand()每次都是"independent"
08/21 17:30, 10F

08/21 17:30, , 11F
而且是"uniform distributed"
08/21 17:30, 11F
※ 編輯: hexjacal (114.26.137.84), 08/21/2014 23:48:00

08/22 20:32, , 12F
你舉的那幾個根本就不符合亂數產生器的要求
08/22 20:32, 12F

08/22 20:34, , 13F
亂數序列要求在非常長的區間內不能重複
08/22 20:34, 13F

08/22 20:35, , 14F
你拿短序列重複使用就會不夠亂
08/22 20:35, 14F

08/22 20:41, , 15F
你應該不要繼續拿你幻想中的亂數表來算了,
08/22 20:41, 15F

08/22 20:41, , 16F
請用真的電腦亂數去產生,有問題再來問
08/22 20:41, 16F
文章代碼(AID): #1Jz3zK8z (Programming)
文章代碼(AID): #1Jz3zK8z (Programming)