[问题] 乱数问题(更改)

楼主: hexjacal (黑麻糬)   2014-08-20 14:25:21
开发平台(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 的吧?
那在模拟时要怎么办? 先做出满足条件的乱数表? 还是这两数各给一张表?
希望版大们能给点意见~
脑筋打结时容易钻牛角尖,版大们也可以当我胡思乱想。

Links booklink

Contact Us: admin [ a t ] ucptt.com