一.算法原理

     在概率论中,有下面重要的结论:设随机变量Y的概率分布函数F(y)为连续函数,而X是在(0,1)上均匀分布的随机变量,设,则Z与Y有相同的分布。
    因此,理论上,我们可以用(0,1)上的均匀分布来得到任意分布的随机数
    设随机变量Y的概率密度函数为f(y),则,我们可以按照下面的步骤来获得满足其分布的随机数:
1.根据给定的概率密度函数(PDF)f(y),通过积分算出概率分布函数F(y);
2.计算概率分布函数F(y)的反函数
3.生成一个(0,1)上均匀分布的随机数变量X,
4.那么就是满足要求的分布的随机数。

二.使用均匀分布产生指数分布

1.指数分布是概率密度函数(PDF)为
  通过计算可以得到,指数分布的概率分布函数为
2.指数分布的概率分布函数的反函数为
3.获得一个在(0,1)之间均匀分布的随机数x,则通过下面的式子计算得到的y满足指数分布
2.MATLAB代码
 
%% clear
clc;
clear;
 
%% uniform distribution
N = 100000000;
U1 = rand(1, N);
 
%% inverse function
lamda = 1;
Z1 = -1 / lamda * log(1 - U1);
 
 
 
%% visualisztion of PDF
subplot(1, 2, 1), hist(U1, 100), title( 'The PDF of U1');
subplot(1, 2, 2), hist(Z1, 100), title( 'The PDF of Z1');
  
3.实验结果
参考文献
徐全智,数学建模
版权所有,欢迎转载,转载请注明出处,谢谢

使用均匀分布随机数产生器构造任意分布的随机数产生器相关推荐

  1. 任意分布的随机数的产生方法

    摘要:     随机数在实际运用中非常之多,如游戏设计,信号处理,通常我们很容易得到平均分布的随机数.但如何根据平均分布的随机数进而产生其它分布的随机数呢?本文提出了一种基于几何直观面积的方法,以正态 ...

  2. java高斯分布随机数_生成符合高斯分布或者其他任意分布的随机数

    在一些情况下经常需要用到随机数,而高斯随机数又是最常用到的.这一篇讲一下如何编程生成符合正态分布的高斯随机数,甚至任何其他分布的随机数. 我们知道C语言的标准库函数可以生成符合均匀分布的伪随机数.那么 ...

  3. 推导:通过均匀分布来产生任意分布随机数

    最近想用C语言写一个产生服从指数分布的随机数的程序.从网上找了找,发现可以通过均匀分布来产生服从任意分布的随机数.然而,网上的推导不是很完善,我把自己的理解写在这里,有不严谨的地方请大家指正. 命题1 ...

  4. matlab如何均匀分布,[转载]【MATLAB】高斯分布 均匀分布 以及其他分布 的随机数生成函数...

    matlab中rand和randn是产生随机数的命令,链接 x=rand(1,N) 产生(0,1)区间均匀分布的长度为N的随机信号, x=randn(1,N)产生长度为N且具有零均值和单位方差的正态分 ...

  5. 给定均值和方差,不使用库函数生成1000个符合正太分布的随机数

    产生任意分布随机数的一般定理 产生连续型随机变量样本值的方法有如下定理: 定理:设随机变量U~U(0,1),F(x)是某一随机变量的分布函数,且F(x)为严格单调增加且连续的函数,则随机变量F-1(U ...

  6. VBA实现两种方法生成任意概率分布的随机数

    引子 一把武器的品质有分为最下级.下级.中级.上级.最上级五档,我希望在击杀一只怪物的时候,这把武器的掉率:最下级>下级>中级>上级>最上级,问如何设计满足上面的需求? 在游戏 ...

  7. matlab逆变换法产生随机数_信号处理——生成给定分布随机数

    作者:桂. 时间:2017-03-12  19:31:55 前言 本文是曲线拟合与分布拟合一文的插曲,进行分布拟合时,碰到一个问题是,如何指定分布的随机数呢?本文主要包括: 1)连续型随机数: 2)离 ...

  8. 如何产生指定分布的随机数?

    参考:https://www.cnblogs.com/xingshansi/p/6539319.html: https://www.jianshu.com/p/3d30070932a8: https: ...

  9. 如何生成指定分布的随机数

    前言 对于随机数平时我们还是比较常用的,一般都会直接通过各种语言原生自带的随机函数,比如 c++ 中有random()函数,java 中有 Random 类,python 有 random 模块等等. ...

最新文章

  1. 教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏
  2. 三刺激值计算公式_常用的车削、铣削、钻削加工计算公式全在这里了,随用随查...
  3. Java之ClassLoader基础知识
  4. Asp.net中基于Forms验证的角色验证授权[转]
  5. Hbase报错ERROR: KeeperErrorCode = NoNode for /hbase/master
  6. docker 简版教程
  7. Linux中apt-get update和apt-get upgrade命令的区别
  8. CodeForces - 1303D Fill The Bag(贪心+模拟)
  9. 个人计算机与手机的区别,手机与电脑的CPU是一回事吗?一共有六大区别,看看你知道多少!...
  10. mac更新java失败解决办法
  11. arc.archives.class.php关于分页错位怎么修改,解决织梦分页错位的办法
  12. mysql 原生 添加数据_手撸Mysql原生语句--增删改查
  13. 【栈】【字符】匹配(jzoj 1612)
  14. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍
  15. spring源码解析bean定义五ContextNamespaceHandler一
  16. gcc/g++ 静态动态库 混链接.
  17. WinRAR命令行参数
  18. 如何在AD上重定向电脑加域后默认保存位置?
  19. 转载《2020年校招面经心得》
  20. base64还原成图片

热门文章

  1. 在一个疾驰的经济体下,我们能够为我们的怠慢买单吗?
  2. 获得你的日语姓名(your real japanese name)
  3. 双端原生小龟影视反编译教程
  4. 【转】网线延长器中双绞线的分类及传输原理和优缺点
  5. java 绘制螺旋线,java-如何创建漩涡/漩涡效果?
  6. 第十九篇 | Linux命令之ps/kill/top
  7. ch340usb转串口在linux上波特率误差
  8. 51单片机——USART全双工模式通讯-波特率可选1.3版本
  9. 使用FSL-FAST分割三种脑组织:白质,灰质,脑脊液
  10. mysql判断奇数偶数,并思考效率