美文网首页
概率和非均匀分布

概率和非均匀分布

作者: 大龙10 | 来源:发表于2022-03-19 11:35 被阅读0次

    书名:代码本色:用编程模拟自然系统
    作者:Daniel Shiffman
    译者:周晗彬
    ISBN:978-7-115-36947-5

    0.3 概率和非均匀分布

    1、概率

    • 在计算机图形系统中,用随机方式构建系统是最容易的。
    • 对自然界建模,在这类场景中用随机方式构建模型是不合理的,尤其是对有机体或者具有自然外形的事物建模。
    • 在遗传算法中,我们需要一种执行“选择”的方法。优胜劣汰算法

    0.4 随机数的正态分布

    1、正态分布

      所有的观测值都聚集在平均值附近,这样的分布称作“正态”分布。它还称作高斯分布(以数学家卡尔·弗里德里希·高斯命名),在法国正态分布称作拉普拉斯分布(以皮埃尔-西蒙-普拉斯命名)。

      绘制正态分布时,你会看到类似下图的曲线,它一般称为钟形曲线。

    • 这条曲线由一个数学函数产生,该数学函数描述了在给定平均值(通常以希腊字母μ表示)和标准差(以希腊字母σ表示)下的概率分布情况。
    • 标准差很小时的正态分布,大部分数据都紧密集中在平均值附近。
    • 标准差很大时的正态分布,数据相对分散地分布在平均值两边。
    • 标准差是离均差平方和平均后的方根。

    2、高斯分布

      运用Random类,生成一个符合正态分布的随机数。调用
    nextGaussian()函数。

    • nextGaussian()函数
      默认以下面两个参数生成符合正态分布的随机数:正态分布的平均值等于0,标准差等于1。
      如果我们需要一个平均值为320(宽度为640的窗口的正中位置),标准差为60像素的正态分布,可以简单地处理参数:将它乘以标准差并加上平均值。

    • 用途: 模拟用各种颜色的点模拟颜料飞溅在画板上的效果

    3、实例

    import java.util.Random;
    
    Random generator;
     //我们使用generator(生成器)作为变量名,因为此处可以认为是一个随机数生成器
    void setup() {
    size(400,300);
    generator = new Random();
    }
    
    void draw(){
    float num = (float) generator.nextGaussian();  
    //注意,nextGaussian()的返回值类型是double
    float sd = 60;
    float mean = 200;
    float x = sd * num + mean; //乘以标准差,再加上平均值
    noStroke();
    fill(0, 10);
    ellipse(x,150,16,16);
    }
    
    运行结果

    相关文章

      网友评论

          本文标题:概率和非均匀分布

          本文链接:https://www.haomeiwen.com/subject/eljvdrtx.html