三九宝宝网宝宝百科宝宝知识

急!!用c语言编写的产生正态随机数的源代码!

12月23日 编辑 39baobao.com

[汇编实现显示键盘ASCII值源代码]code segment publicassume cs:code,ds:codejmp startmsg db ’This program can show you the ASCII of characters or key binations’,0dh,0ahdb ’ I hope it would...+阅读

一般有两种算法: 算法一产生12个(0,1)平均分布的随机函数,用大数定理可以模拟出正态分布。 算法二用到了数学中的雅可比变换,直接生成正态分布,但此算法在计算很大规模的数时 会出现溢出错误。 测试程序: #include #include #include #include #include double _random(void) { int a; double r; a=rand()%32767; r=(a+0.00)/32767.00; return r; } double _sta(double mu,double sigma) { int i; double r,sum=0.0; if(sigma<=0.0) { printf("Sigma<=0.0 in _sta!"); exit(1); } for(i=1;i<=12;i++) sum = sum + _random(); r=(sum-6.00)*sigma+mu; return r; } double _sta2(double mu,double sigma) { double r1,r2; r1=_random(); r2=_random(); return sqrt(-2*log(r1))*cos(2*M_PI*r2)*sigma+mu ; } int main() { int i; double mu,sigma; srand( (unsigned)time( NULL ) ); mu=0.0; sigma=1.0; printf("Algorithm 1:\n"); for(i=0;i<10;i++) printf("%lf\t",_sta(mu,sigma)); printf("Algorithm 2:\n"); for(i=0;i<10;i++) printf("%lf\t",_sta2(mu,sigma)); return 0; } //由均匀分布的随机数得到正态分布的随机数 #include float gasdev(idum) int *idum; { static int iset=0; static float gset; float fac,r,v1,v2; float ran1();//产生均匀分布的随机数,可利用系统函数改写 if (iset == 0) { do { v1=2.0*ran1(idum)-1.0; v2=2.0*ran1(idum)-1.0; r=v1*v1+v2*v2; } while (r >= 1.0); fac=sqrt(-2.0*log(r)/r); gset=v1*fac; iset=1; return v2*fac; } else { iset=0; return gset; } } 原理可找本数值算法方面的书看看。

以下为关联文档:

汇编程序在屏幕显示字符的源代码这个一个刚学习汇编的入门实例,想学汇编的朋友可以看看 assume cs:code data segment db ’Wele to masm!’,0 data ends stack segment db 100 dup(0) stack ends ;以上定义...

excel随机生成4位字母加数字的随机数字母要求为AF把公式输入到任何一个单元格,向下或者横向填充即可,每双击一次都会更换一组 =INDEX({0,"a",4,"e";1,"b",5,"f";2,"c",6,8;3,"d",7,9},RANDBETWEEN(1,4),RANDBETWEEN(1,4))&INDEX({0,"a",4,"e";...

怎样用Excel随机函数rand生成随机数字和大写字母能自动产生4思路:先构建一个序列,1-36,右列录入为A-Z字母,0-9数字。 随机字符使用randbetween()和vlookup()共同完成。 字符之间使用&连接。 公式为:其中$N$1:$O$26为构建的序列 =VLOOKUP(RAND...

EXCEL表格随机数生成你那个=INT(RAND()*100)得到的只能是0-99的整数,得不到100 想得0-100应为=INT(RAND()*101) 范围在+15~-15之间的随机数字 =INT(RAND()*31)-15 因为+15~-15共31个数字 :-15,-14,...

excel生成随机数的程序请教你好,你的这个“随机”确实与众不同啊,是搞公司抽奖吗? 修改代码,勉强能够实现反复运行宏,得到同一组随机数。 用法如前。 Public msg As String Sub suiji() If msg = "" Then Dim...

如何用EXCEL的随机数产生器产生正态随机数要求产生的数据都是正一、NORMDIST(x,mean,standard_dev,cumulative) 其中:X 为需要计算其分布的数值。 Mean 分布的算术平均值。 Standard_dev 分布的标准偏差。 Cumulative 为一逻辑值,决定函数...

如何通过fluent UDF产生正态分布的随机数一般有两种算法: 算法一产生12个(0,1)平均分布的随机函数,用大数定理可以模拟出正态分布。 算法二用到了数学中的雅可比变换,直接生成正态分布,但此算法在计算很大规模的数时 会出...

请教如何用vfp来生成一个正态分布的随机数1、产生符合正态分布的随机数:输入“= NORMINV(RAND(),mean,standard_dav)”,mean是均值,standard_dav是标准方差。 2、下拉的方式产生需要数目的随机数,全选,复制,再右键点“选...

推荐阅读
图文推荐