文章目录

  • 1 产生服从均匀分布随机数
  • 2 产生服从正态分布随机数
  • 3 产生服从柯西分布随机数

1 产生服从均匀分布随机数

大家都知道Math.random是 javascript 中返回伪随机数的方法,但Math.random()产生 [0,1)区间的随机数(注意,不包括1),如果要取到1,可以这样:Math.floor(Math.random()*2);,取到 [0,2)之间的数然后向下取整,得到[0,1]。

取整数随机数要使用 floor 函数向下取整,而不能使用 round 函数四舍五入取整,round 取整后得到的是非均匀分布。

如果要取得特定范围的随机数可以对Math.random进行四则运算
例如:

//[10,20)
a=Math.random*10+10;
//[10,20]
a=Math.floor(Math.random()*11+10);

2 产生服从正态分布随机数

正态分布即高斯分布

Box-Muller变换是通过服从均匀分布的随机变量,来构建服从正态分布的随机变量的一种方法。

        function normalRandom(mean, std) {let u = 0.0, v = 0.0, w = 0.0, c = 0.0;do {//获得两个(-1,1)的独立随机变量u = Math.random() * 2 - 1.0;v = Math.random() * 2 - 1.0;w = u * u + v * v;} while (w == 0.0 || w >= 1.0)//Box-Muller转换c = Math.sqrt((-2 * Math.log(w)) / w);let normal = mean + (u * c) * std;return normal;}//用于生产服从正态分布的随机数矩阵function normalRandomSize(mean,std,size){let normal = [];for(let i=0;i<size;i++){normal[i]=randomNormal(mean,std);}return normal;}

3 产生服从柯西分布随机数

柯西分布的概率密度函数为
f(x)=βπ[β2+(x−α)2]β>0f(x)=\frac{\beta }{\pi [\beta ^{2}+ (x - \alpha)^{2}]} \qquad \beta > 0 f(x)=π[β2+(x−α)2]β​β>0
通常用C(α,β)C(\alpha ,\beta )C(α,β)表示,其分布函数为
F(x)=12+1πarctan(x−αβ)F(x)=\frac{1}{2}+\frac{1}{\pi }arctan(\frac{x-\alpha}{\beta }) F(x)=21​+π1​arctan(βx−α​)
用逆变换法产生柯西分布(Cauchy(\alpha ,\beta ))的随机变量(x),产生均匀分布的随机数uuu,计算具体方法如下: x=α−βtan(πu)x=\alpha - \frac{\beta }{tan(\pi u)} x=α−tan(πu)β​

        function cauchyRandom(a,b) {let u,cauchy;u = Math.random();cauchy = a - b / Math.tan(Math.PI * u);return cauchy;}

Javascript 产生随机数——服从均匀分布随机数、服从正态分布(高斯分布)随机数、服从柯西分布随机数相关推荐

  1. 【Python】如何生成柯西分布随机数

    Python中生成标准柯西分布的函数是:numpy.random.standard_cauchy(size), 我就在想,能否生成一个非标准的柯西随机数呢?那么面临几个问题: (1)标准柯西随机数和非 ...

  2. 均匀分布叠加与正态分布叠加

    1 理论 1.1 两个正态分布之和为正态分布 1.2 均匀分布相减 x 1 ∼ U ( 0 , 1 ) x 2 ∼ U ( 0 , 1 ) z = x 1 − x 2 \begin{array}{l} ...

  3. python随机数列表变成字符串_DAY8 for Python--字符串与随机数

    字符串 str_list=['hello','world'] [i.upper() for i in str_list] 结果:['HELLO', 'WORLD'] np.char免去列表的遍历,大大 ...

  4. 用java script随机数_js中Math.random()生成指定范围数值的随机数【转】

    Math.random函数就不像php的rand函数一样可以生成指数范围的数据了,math.random只是生成了一个伪随机数,之后还要经过我们处理才行哦. 今天又有网友问到我 JavaScript ...

  5. java 生成不重复随机数_Java如何实现生成n个不重复的随机数 Java实现生成n个不重复的随机数代码...

    Java如何实现生成n个不重复的随机数?本篇文章小编给大家分享一下Java实现生成n个不重复的随机数代码,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 需 ...

  6. java随机10位随机数 random.uuid_一文详解编程中的随机数

    随机数,相信大家都不陌生,网上有很多生成随机数的小工具.直观来看,随机数就是一串杂乱无章的数字.字母.以及符号的组合, 比如pSTkKIiZMOlDxOgwpIQGdlZwrJCRiHRK.但随机数真 ...

  7. R语言使用rgamma函数生成符合Gamma分布的随机数、使用plot函数可视化符合Gamma分布的随机数(Gamma Distribution)

    R语言使用rgamma函数生成符合Gamma分布的随机数.使用plot函数可视化符合Gamma分布的随机数(Gamma Distribution) 目录

  8. PT_二维连续型随机变量(二维均匀分布@二维正态分布)

    文章目录 PT@经典二维分布@二维均匀分布@二维正态分布 二维均匀分布 性质 例 正态分布小结 一维正态分布 二维正态分布 二维正态分布 二维正态概率密度 边缘密度函数

  9. 正态分布高斯分布泊松分布_正态分布:将数据转换为高斯分布

    正态分布高斯分布泊松分布 For detailed implementation in python check my GitHub repository. 有关在python中的详细实现,请查看我的 ...

最新文章

  1. 稍等片刻 正在提取文件_三亚种子罐市场价,中药提取浓缩设备的价格
  2. android view取坐标点,Android 获取子 View 的位置及坐标的方式
  3. 设计模式-行为型模式-观察者模式
  4. Simulink之三相半波可控整流电路
  5. sql string转number_少用 string.Format
  6. JSP教程第5讲笔记
  7. 热烈庆贺博客等级V7
  8. 从海报视觉到网页设计
  9. Pinyin 拼音转换工具类
  10. 联发科MT7621 Openwrt开发编译记录
  11. Html页面点击下载文件
  12. 如何将电脑文字复制到模拟器_如何将电脑中的文字复制到手机上?
  13. Blend for Visual Studio 概述
  14. 南京 学计算机的学校,南京小学生暑假学计算机编程去哪家学校好
  15. Python数据分析:异常值检验的两种方法 -- Z 分数 上下分位点(放入自写库,一行代码快速实现)
  16. 技术书写作你要知道的几件事
  17. c语言Int16_t 什么意思,__IO uint16_t 是什么意思,在定义参数时为什么不直接写成 uint16...
  18. 打印机打印出来的条码是歪的怎么办
  19. 搭建maven私服发布项目并从私服下载jar包
  20. Fitbit表高兴太早,廉价手环和智能手表的威胁就在眼前

热门文章

  1. Pytorch框架学习记录10——线性层
  2. oracle 执行计划中出现 merge join cartesian
  3. 程序流程图、N-S图、PAD图
  4. 亚马逊云的服务器(EC2)+阿里云的域名,添加ssl证书
  5. winxp下用ssh控制 linux 服务器
  6. PTA L1-049 天梯赛座位分配(20分)(python)
  7. 运用数学软件matlab求无穷积分,matlab积分的计算及其简单应用论文.doc
  8. IOl流的分类与使用
  9. 什么是正向代理和反向代理
  10. 整理 :11个搭讪绝招助你告别单身