网站大量收购独家精品文档,联系QQ:2885784924

西南交通大学研究生通信建模作业程序集锦.docx

西南交通大学研究生通信建模作业程序集锦.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT3 1.//生成高斯分布随机数 #includestdio.h #includestdlib.h #includemath.h #define PI 3.141592654 double gaussrand() { static double U1,U2; static int phase=0; double Z,X; double m=0,sd=1; //m为均值,sd是方差 if(phase==0) { U1=rand()/(RAND_MAX+1.0); U2=rand()/(RAND_MAX+1.0); Z=sqrt(-2.0*log(U1))*sin(2.0*PI*U2); } else { Z=sqrt(-2.0*log(U1))*cos(2.0*PI*U2); } phase=1-phase; X = m+(Z*sd); return X; } int main() { int i=0; for(i=0;i1000;i++) { printf(%f\n,gaussrand()); } } 2.//生成瑞利分布随机数 #includestdio.h #includestdlib.h #includemath.h double Rayleigh() { static double U1; double sigma,R; U1=rand()/(RAND_MAX+1.0); sigma = 1; R = sigma*sqrt(-2*log(U1)); //瑞利分布的公式 return R; } int main() { int i=0; for(i=0;i1000;i++) { printf(%f\t,Rayleigh()); } } 3.泊松分布: #includestdio.h #includestdlib.h #includectime #includemath.h //Generate the random numbers long Possion(double u) { double P,U; long N; u=exp(-u); P=1;N=0; while(1) { U=(double)rand()/RAND_MAX; P=P*U; if(P=u) break; N++; } return N; } // Generate 10000 distributed random output numbers which are put into a text called”312” void main() { int k; double lamda; scanf(%lf,lamda); FILE *fp1; fp1=fopen(p1.txt,w); srand((unsigned)time(0)); for(k=1;k10000;k++) { fprintf(fp1,%6ld ,Possion(lamda)); } fclose(fp1); } 3.//莱斯分布随机变量 #define _CRT_SECURE_NO_WARNINGS #include stdio.h #include stdlib.h #include math.h #define PI 3.141592654 double Gaussrand(double m, double sd) { double U1, U2; double r1, r2,z,r; U1 = rand() / (RAND_MAX + 1.0); U2 = rand() / (RAND_MAX + 1.0); r1 = sqrt(-2 * log(U1))*cos(U2 * PI*2); r2 = sqrt(-2 * log(U1))*sin(U2 * PI*2); z = m+r1*sd; return z; } int main() { double Ricianrand; for (int i = 0; i 10000; i++) { double y1 = Gaussrand(0

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档