⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rayleigh_0_1.cpp

📁 用C语言仿真瑞利分布
💻 CPP
字号:
//rayleigh(0,1)
#include <stdio.h>
#include <math.h>
#define n (pow(2,31)-1)
void u(double m,double b[8000])           //产生均匀分布
{   
    int i;
	double z[8000];
	z[0]=m;
	for(i=1;i<8000;i++)
	{    z[i]=fmod((16807*z[i-1]),n);
	     b[i]=z[i]/n;

	}	 
	b[0]=m/n;

}
void main()
{
	double a[12][8000];
    double x[8000];
	double w[8000];
    double v[8000];
	FILE *fp;
	fp=fopen("r1.txt","w");
	int i,j;
	float s,k;
	printf("Please input s k:");
	scanf("%f %f",&s,&k);
	for(i=0;i<=11;i++)                //调用子函数
		u(i+8000,a[i]);
    
	for(i=0;i<8000;i++)
	{
		x[i]=0;
		for(j=0;j<=11;j++)
			x[i]+=a[j][i];
		x[i]-=6.0;
		x[i]=s+k*x[i];

	}
   for(i=0;i<=11;i++)
		u(i*8000,a[i]);
    
	for(i=0;i<8000;i++)
	{
		w[i]=0;
		for(j=0;j<=11;j++)
			w[i]+=a[j][i];
		w[i]-=6.0;
		w[i]=s+k*w[i];

	}
    for(i=0;i<8000;i++)                          //产生rayleigh
	{   v[i]=sqrt(pow(x[i],2)+pow(w[i],2));
	    printf("%lf\t",v[i]);
		fprintf(fp,"%lf\n",v[i]);
	}
	fclose(fp);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -