博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言生成服从均匀分布, 瑞利分布, 莱斯分布, 高斯分布的随机数
阅读量:5956 次
发布时间:2019-06-19

本文共 2350 字,大约阅读时间需要 7 分钟。

用c语言 产生服从均匀分布, 瑞利分布,莱斯分布,高斯分布的随机数

 

 
一,各个分布对应的基本含义:
  • 1. 均匀分布或称,顾名思义,均匀的,不偏差的。植物种群的个体是等距分布,或个体之间保持一定的均匀的间距。
  • 2. 高斯分布,  即正态分布(Normal distribution),也称“常态分布”,又名(Gaussian distribution),最早由A.棣莫弗在求的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。[1]  是一个在、物理及工程等领域都非常重要的分布,在统计学的许多方面有着重大的影响力。正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为。若X服从一个为μ、为σ^2的正态分布,记为N(μ,σ^2)。其为正态分布的μ决定了其位置,其σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是。
  •  3. 瑞利分布(Rayleigh Distribution):当一个随机二维向量的两个分量呈独立的、有着相同的方差的正态分布时,这个向量的模呈瑞利分布.
  •  4. 莱斯分布(Rice distribution或Rician distribution)是一种连续概率分布,以美国科学家斯蒂芬·莱斯(en:Stephen O. Rice)的名字命名。 正弦波加窄带高斯过程的包络概率密度函数分布称为莱斯(Rice)密度函数,也称广义瑞利分布。
 
二, 各个分布对应的随机变量产生的算法,
     
 
1 # include "stdio.h"  2 # include "math.h"  3 # include "stdlib.h"  4 # include "math.h"  5 # include "dos.h"  6 # define MAX_N 3000   /*这个值为N可以定义的最大长度*/  7 # define N 100        /*产生随机序列的点数,注意不要大于MAX_N*/  8   9 /*1.产生均匀分布的随机变量*/ 10 void randa(float *x,int num);  11  12 /*2.产生瑞利分布的随机变量*/ 13 void randr(float *x,int num);  14  15 /*3.产生标准高斯分布的随机变量*/ 16 void randn(float *x,int num); 17  18 /*4.产生莱斯分布的随机变量*/ 19 void randl(float *x, float a, float b, int num); 20  21 void fshow(char *name,float *x,int num); 22  23 /***************************************/ 24 int main() 25 { 26  27    float x[N]; 28    int i; 29  30   // randa(&x,N);             //均匀分布 31   // randr(&x,N);             //瑞利分布 32   // randl(&x,10,10,N);       //莱斯分布 33      randn(&x,N);             //高斯分布 34  35 /*此时x[N]表示要生成N个服从xx分布的的数组*/ 36  37  38    fshow("x",&x,N); /*显示该序列*/ 39  40    getch(); return 0; 41  42 } 43 /***************函数定义************************/ 44  45 /*产生服从均匀分布的随机变量*/ 46 void randa(float *x,int num) 47 { 48   int i; 49   struct time stime; 50   unsigned seed; 51   gettime(&stime); 52   seed=stime.ti_hund*stime.ti_min*stime.ti_hour; 53   srand(seed); 54   for(i=0;i
0) printf(" %f ",x[i]);138 else printf("%f ",x[i]);139 }140 }

 

其他分布的详细介绍, 请戳这里:

 国外知名网站给出的各种分布的曲线图(后台程序驱动):

 

 ---OVER---

附录:   Cauchy 分布 随机数生成代码:

1 import math 2 import random 3  4 def cauchy(location, scale): 5  6 # Start with a uniform random sample from the open interval (0, 1). 7 # But random() returns a sample from the half-open interval [0, 1). 8 # In the unlikely event that random() returns 0, try again. 9 10 p = 0.011 while p == 0.0:12 p = random.random()13 14 return location + scale*math.tan(math.pi*(p - 0.5))

 

转载地址:http://kmexx.baihongyu.com/

你可能感兴趣的文章
AD灾难恢复情景及方案
查看>>
mysql 导出
查看>>
Openstack M版快速配置(二)--刷数据库
查看>>
sed
查看>>
Failed to execute goal org.apache.maven.plugins:ma
查看>>
如何利用华为交换机配置SSH登录
查看>>
数据挖掘的产品
查看>>
2013.8.4thinkPHp学习
查看>>
cygwin图文安装教程
查看>>
去小机化思维(二)--【软件和信息服务】2015.03
查看>>
华为交换机的端口hybrid端口属性配置
查看>>
算法学习之归并排序(java实现)
查看>>
css3在线快速制作工具
查看>>
linux系统进入救援模式
查看>>
oracle常用网址
查看>>
我的友情链接
查看>>
10个SQL注入工具
查看>>
[李景山php]每天laravel-20160826|EncryptionServiceProvider
查看>>
[李景山php]每天laravel-20161005|Validator.php-5
查看>>
php读取大文件详解【OK】
查看>>