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

概率和非均匀分布

作者: 大龙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