【发布时间】:2016-02-01 05:03:23
【问题描述】:
我想模拟伯努利过程。我丢了一个硬币N次
initRand();
p = 0.5;
for ( int i=0; i<N; i++) {
x = rand();
if ( x < p ) success();
else failure();
}
现在有两种情况:
(i)此时我继续投币直到2*N:
for (; i<2*N; i++) {
x = rand();
if ( x < p ) success();
else failure();
}
(ii) 这里我重新启动随机序列并继续下降直到 2*N:
initRand();
for (; i<2*N; i++) {
x = rand();
if ( x < p ) success();
else failure();
}
在第一种情况下,2*N 次投掷中 k 次成功的概率计算为
P(success)=nchoosek(2*N,k)*p^k*(1-p)^(2*N-k)
第二种情况是否同样正确?或者由于发电机重置,我们不能将 2*N 周期视为单个进程?
【问题讨论】:
-
什么是
initRand()? -
例如c标准库中的srand()
标签: matlab simulation bernoulli-probability