小编tpi*_*xel的帖子

硬币翻转模拟永远不会超过15个头

我正在研究圣彼得堡悖论的模拟,当时我意识到我的硬币翻转代码从未记录过连续超过15个头的任何条纹.我运行模拟100,000,000次,这应该导致平均1526条头长16条.

(0.5 ^ 16)x 100,000,000 = 1526

显然,出了点问题.

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char const *argv[])
{
srand(time(0));

int i, lim = 100000000, streak = 0, maxstreak = 0;
for (i = 0; i < lim; ++i)
{
    if (rand()%2) {
        streak++;
        if (streak > maxstreak) maxstreak = streak;
    }
    else streak = 0;
}

printf("Ran %d times, longest streak of %d\n", lim, maxstreak);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

每次都返回以下内容:

Ran 100000000 …
Run Code Online (Sandbox Code Playgroud)

c random coin-flipping

7
推荐指数
1
解决办法
1333
查看次数

标签 统计

c ×1

coin-flipping ×1

random ×1