任意分布的随机数的产生方法—VC程序实现方法,任意分布的随机数的产生方法—VC程序实现方法
【 tulaoshi.com - C语言心得技巧 】
任意分布的随机数的产生方法—VC程序实现方法
作者:戎亚新
下载源代码
摘要:
随机数在实际运用中非常之多,如游戏设计,信号处理,通常我们很容易得到平均分布的随机数。但如何根据平均分布的随机数进而产生其它分布的随机数呢?本文提出了一种基于几何直观面积的方法,以正态分布随机数的产生为例讨论了任意分布的随机数的产生方法。
正文:
一、平均分布随机数的产生
大家都知道,随机数在各个方面都有很大的作用,在vc的环境下,为我们提供了库函数rand()来产生一个随机的整数。该随机数是平均在0~RAND_MAX之间平均分布的,RAND_MAX是一个常量,在VC6.0环境下是这样定义的:
#define RAND_MAX 0x7fff
int a = rand()%10000;
double b = (double)a/10000.0;
double dValue = (rand()%10000)/10000.0*1000-(rand()%10000)/10000.0*1000;
double dValue = (rand()%10000)/10.0-(rand()%10000)/10.0;
double a = (rand()%10000) * (rand()%1000)/10000.0;
double b = (rand()%10000) * (rand()%1000)/10000.0;
double dValue = a-b;
double AverageRandom(double min,double max)
{
int minInteger = (int)(min*10000);
int maxInteger = (int)(max*10000);
int randInteger = rand()*rand();
int diffInteger = maxInteger - minInteger;
int resultInteger = randInteger % diffInteger + minInteger;
return resultInteger/10000.0;
}
double dValue[400];
srand(GetTickCount());
for(int i= 0;i < 400; i++)
{来源:http://www.tulaoshi.com/n/20160129/1485337.html
看过《任意分布的随机数的产生方法—VC程序实现方法》的人还看了以下文章 更多>>