高尔顿钉板是一个关于概率的模型,小球每次下落,将随机的向两边等概率的下落,当有大量的小球都滚下时,最终在钉板下面不同位置收集到的小球数量,将符合二项分布概率。
出于兴趣,在VC编译环境下,通过C++语言,模拟实现了高尔顿钉板的概率模型。本程序中定义了两个类,Ball和Holder类,Ball 是定义的小球类,Holder是定义的钉板类。Holder类主要负责画图显现模板框架,以及当一个小球滚到钉板下面容器位置,将小球放在合适的位置,并且当整个容器满的时候,即停止程序运行。小球类,定义了小球所处位置,并对小球进行作图。另外定义了根据传入的参数的移动规则,即,向左或者向右移动。另外定义了一个control函数,来控制holder和Ball类对象之间的交互,并且达到动态效果
。
图1 高尔顿钉板模型
图 2 程序运行图1 图3 程序运行图2
源代码:
#include <graphics.h>
#include <conio.h>
#include <math.h>
#include "iostream"
class Ball
{
public:
Ball()
{
x=300;
y=40;
flag=1;
}
int getX()
{
return x;