美文网首页
Erlang生成符合正态分布,截断正态分布随机数

Erlang生成符合正态分布,截断正态分布随机数

作者: Luxin23 | 来源:发表于2018-08-17 11:55 被阅读194次

最近我们死策划来了个需求,要求产生的随机数符合正态分布。而且要截断正态分布。

查阅erlang文档。发现rand模块有这么两个函数。

normal() -> float()

Returns a standard normal deviate float (that is, the mean is 0 and the standard deviation is 1) and updates the state in the process dictionary.

normal(Mean :: number(), Variance :: number()) -> float()

Returns a normal N(Mean, Variance) deviate float and updates the state in the process dictionary.

第一个是产生符合标准正态分布的随机数。第二个带参的是产生一个均值为Mean,方差为Variance的正态分布随机数。

一看第二个函数就是我想要的啊。废话不说,马上实验一下。

 rand:normal(50, 15).
** exception error: undefined function rand:normal/2

excuse me? 你这是在逗我吗?报错。

可能我的Erlang版本太低了吧。

不过别担心,我们还有别的办法。至少我们的 rand:normal() 这个函数是可以使用的,它可以给我们产生一个符合标准正态分布的随机数出来。

那么

rand:normal() * 方差 + 均值(期望值)

这样就可以产生一个均值为Mean, 方差为Variance的正态分布随机数。

下图为产生一个期望50,方差15的正态分布。

正太分布.png

截断正态分布

实现了以上正态分布,差不多就是我们要的了。

但是我们死策划说。产生的随机数值得在某一个正态分布区间内?

这个就是截断正态分布。

按照策划的意思就是,按照这个这个正态分布随机函数,一直生成。直到生成落在这个区间的随机数值为止?

当然我们肯定不能这样做?我们需要一次性就能把这个随机数生成出来,这样不仅提高了性能?而且不会有什么隐含的bug存在?

1、先生成符合正太分布随机函数的样本
2、在这个样本中把符合区间的数值取出来
3、在这些数值中随机出一个值

只要样本数据越大,那么这个就越准确。

这应该是一种最笨的办法吧?

如果你有更好的解决方案,欢迎和我交流。

相关文章

  • Erlang生成符合正态分布,截断正态分布随机数

    最近我们死策划来了个需求,要求产生的随机数符合正态分布。而且要截断正态分布。 查阅erlang文档。发现rand模...

  • C++11 生成正态分布随机数

    要生成服从标准正态分布的随机数,类似matlab中的randn函数。C++11中引入了正态分布模板类std::no...

  • tf.truncated_normal与tf.random_no

    从截断的正态分布中输出随机值。生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的...

  • 截断正态分布

      截断正态分布(Truncated_normal_distribution)是在正太分布中界定随机变量进而从正态...

  • 2-matlab生成符合正态分布数据

    生成符合正态分布的散点图 https://zhidao.baidu.com/question/586010019....

  • 如何在Power BI中制作正态分布图

    正态分布图本质也就是一个折线图而已,只要构造出符合正态分布的数据,画正态分布图与平时生成其他图表并没有什么不同。 ...

  • Python numpy学习笔记之生成随机数

    废话不多说,直接开干。 生成均匀离散的随机数 生成服从均匀分布、3行2列的随机数 生成服从正态分布的随机数 经典例...

  • numpy使用

    一 生成正态分布 np.random.normal(mean,scale,size)可以生成很多数值呈正态分布数字...

  • Matalb normrnd函数

    r=normrnd(mu,sigma)使用平均参数mu和标准差参数从正态分布生成随机数sigma。 如 >> r ...

  • tf.truncated_normal与tf.random_no

    shape:数组大小 mean:均值 stddev:标准差 从截断的正态分布中输出随机值。生成的值服从具有指定平均...

网友评论

      本文标题:Erlang生成符合正态分布,截断正态分布随机数

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