高尔顿钉板实验是由英国生物统计学家高尔顿所设计的研究随机现象的模型。
模型大致如下:
从入口处放进小圆玻璃球,使其能够从钉板中穿过,当小圆球向下降落过程中,碰到钉子后都以50%的概率向左或右,到达下一层钉子。直到滚到底板的一个格子中为止。只要球的数量够大,它们就能在底板将堆成近似于正态的密度函数图形(也有人说是二项分布,为了方便大家参考就都写出来了)。
具体代码如下:
这里用的是系统时间的奇偶性来做的随机,相较于随机数种子我觉得这种方式更严谨。
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int a[10005][10005];
int ron[10005];
int od(int a)
{
if (a % 2 == 0)return 1;
else return 0;
}
int main()
{
int m = 150;//层数
int n = 10000;//小球个数
srand(time(NULL));//随机数
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
a[i][j] = od(rand());
}
}
for (in