一、功能

产生瑞利分布的随机数。

二、方法简介

瑞利分布的概率密度函数为

\[

f(x) = \frac{x}{\sigma ^{2} }e^{-x^{2}/2\sigma ^{2}} \ x > 0

\]

瑞利分布的均值为\(\sigma \sqrt{\frac{\pi }{2}}\),方差为\(\left ( 2 - \frac{\pi }{2} \right )\sigma ^{2}\)。

首先用逆变换法产生参数\(\beta = 2\)的指数分布的随机变量\(y\),其概率密度函数为\(f(y) = \frac{1}{2} e^{-\frac{y}{2}}\);然后通过变换\(x = \sigma \sqrt{y}\),产生瑞利分布的随机变量\(x\),具体方法如下:

产生均匀分布的随机数\(u\),即\(u \sim U(0,1)\);

计算\(y = - 2 \ ln(u)\);

计算\(x = \sigma \sqrt{y}\)。

三、使用说明

是用C语言实现产生瑞利分布随机数的方法如下:

/************************************

sigma ---瑞利分布的参数sigma

seed ---随机数种子

************************************/

#include "math.h"

#include "uniform.c"

double rayleigh(double sigma, long int *s)

{

u = uniform(0.0, 1.0, s);

x = -2.0 * log(u);

x = sigma * sqrt(x);

return(x);

}

uniform.c文件参见均匀分布的随机数

标签:frac,sqrt,瑞利,分布,随机数,sigma

来源: https://www.cnblogs.com/liam-ji/p/11631644.html

c语言产生瑞利分布随机数,瑞利分布的随机数相关推荐

  1. c语言随机产生100个字母,C语言实现生成1到100随机数的方法

    C语言实现生成1到100随机数的方法 发布时间:2020-06-29 14:08:59 来源:亿速云 阅读:7054 作者:Leah 本篇文章为大家展示了C语言实现生成1到100随机数的方法,代码简明 ...

  2. python生成指数分布随机数_Nim 语言入门之实现指数分布的随机数

    这一节,我们使用 Nim 语言来实现符合指数分布的随机数. Nim 语言是一门高效而优雅的系统级编程语言,可以编译成 C, C++, javascript 等后端. 官网如下:https://nim- ...

  3. 随机数计算html,随机数的产生方法 电脑随机数产生的计算具体方法

    要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法, 其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一 ...

  4. c语言生成随机数(c语言生成随机数并排序)

    vc环境下c语言怎么生成随机数能给个0-100之间的程序最好了- r = ( (double)rand() / ((double)(RAND_MAX) (double)(1)) ); 请问如何用C语言 ...

  5. 获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行

    编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行 题目:编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行 ...

  6. 在多个指定区间内生成随机数,且随机数总和固定算法

    在多个指定区间内生成随机数,且随机数总和固定算法 一.介绍 最近项目上遇到了一个需求就是在多个指定区间内生成总和恒定的随机数. 示例:在[1-3].[4-20].[24-100]区间上分别生成一个随机 ...

  7. c语言中二维数组中产生随机数,C语言中是如何进行随机数生成的[多图]

    C语言中是如何进行随机数生成的.C语言是编程人员经常会到的一款计算机编程语言,有的朋友想知道怎样使用C语言进行随机数生成,那么就快随小编一起来看看这篇C语言中是如何进行随机数生成的吧!其中不仅为大家介 ...

  8. 【C语言】连续生成多个随机数

    C语言连续生成多个随机数 在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌. 在C语言中,我们一般使用 <stdlib.h> 头文件中的 ...

  9. c语言随机产生100个字母,C语言实现产生100以内的随机数做加减运算

    #include int getNumber(){ return rand()%100; } int getOp(){ return rand()%2 ; } void getsum(int *num ...

  10. 明明的随机数冒泡排序c 语言,NOIP复赛 c++-明明的随机数(算法和原码参考)

    问题描述-明明的随机数]明明想在学校中请一些同学一起做问卷调查,为了实验的客观性,他先用计算机生成了N 个1 到1000 之间的随机整数,(N≤100),对于其中重复的数字,只保留一个,把其余相 同的 ...

最新文章

  1. 有个程序员老公有多爽???
  2. 阻塞队列 java 源码_Java源码解析阻塞队列ArrayBlockingQueue常用方法
  3. HashSet源码分析 jdk1.6
  4. OC中数组排序的3种方法
  5. 高级数据结构与算法 | LRU缓存机制(Least Recently Used)
  6. Editplus 3.0 开发ext 教程
  7. Python字符串split()和join()方法应用一例
  8. el-tree 拖拽互换位置_那些我们与UI交互的动作(三·拖拽)
  9. Linux(4) 实用指令
  10. 基于CentOS7.3构建企业级Vsftpd文件服务器
  11. html大小和浏览器可视区域一样吗,浏览器窗口可视区域大小和网页尺寸和网页卷去的距离与偏移量...
  12. 微软公司软件测试工程师,【其它微软中国(Microsoft)工资】软件测试工程师待遇-看准网...
  13. 【解决方案】windows7无法启动黑屏,报0xc000014c错误解决方案不用重新安系统
  14. IPC TCP/IP协议
  15. VUE + howler.js 播放音频
  16. i79750h和i510300h差距大不大
  17. 野生小白纯js仿思否简易移动端
  18. DOM基于inpho软件二次加工的出图方法
  19. java 计算星座_java实战(五)之Java根据出生日期计算(判断)星座
  20. html文件ps打开,ps文件怎么打开?

热门文章

  1. html简繁替换,Web界面简繁体转换
  2. nyoj-34-韩信点兵
  3. Linux基本知识总结、常用命令教程、shell脚本开发、编辑器及调试器的使用教程
  4. C. Multiples of Length(构造)
  5. App推广:ASO策略篇,清榜频发,优化热情不减
  6. 基于Websocket协议的即时通讯系统设计与实现
  7. Matlab 蒙特卡洛求解三门问题
  8. 图解|什么是蒙提霍尔问题(三门问题)
  9. TiPLM---产品全生命周期管理系统
  10. 000webhost虚拟主机绑定自定义二级域名