在b站看到一个高尔顿钉板的视频,感觉挺好玩的,用表格模拟了一个正态分布,但是我觉得可能是这个随机数发生器有点问题,给的数字偏小,列少的时候往右边偏的严重。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '高尔顿钉板'
},
xAxis: {
type: 'category',
data: []
},
yAxis: {},
series: [{
type: 'bar',
data: [0, 0, 0, 0, 0, 0, 6, 7, 6, 3, 5, 9, 3, 3, 0, 0, 1, 0, 0, 0, 0]
}]
};
var widthLength = 71;
var ballCount = 8000;
var ballCountNow = 0;
var midNumber = widthLength >> 1;
function reset(){
ballCountNow = 0;
for(let i = 0;i < widthLength;i++){
option.series[0].data[i] = 0;
option.xAxis.data[i] = i + 1;
}
}
function getRandomPosition(midNumber){
for(let i = 0;i < midNumber + 4;i++){
if(Math.random() > 0.5){
if(midNumber < widthLength)
midNumber++;
}else{
if(midNumber > 0)
midNumber--;
}
}
return midNumber;
}
function writeCharts(){
reset();
for(;ballCountNow<ballCount; ballCountNow++){
option.series[0].data[getRandomPosition(midNumber)]+=1;
}
myChart.setOption(option);
}
writeCharts();