在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();
最后修改:2021 年 02 月 22 日
如果觉得我的文章对你有用,请随意赞赏