📄 rayleigh_0_1.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 + -