rayleigh.cpp

来自「用C语言实现的泊松」· C++ 代码 · 共 42 行

CPP
42
字号
# include<math.h>
# include<stdio.h>
#include <stdlib.h>
double z[100000];
void save()
{FILE*fp2;
 int i;
 if((fp2=fopen("shuju2.txt","w"))==NULL)
  {printf("cannot open file shuju2.txt\n");
    return;
   }
  for(i=0;i<100000;i++)
   {
     fprintf(fp2,"%6.4f  ",z[i]);
   }
    fclose(fp2);
}
double  Ray(double mean,double var)
{
  double u1,u2,v1,v2,w,x1,x2,s1,s2,y,t;
  do
  { u1=(double)rand()/(double)RAND_MAX;
    u2=(double)rand()/(double)RAND_MAX;
	v1=2*u1-1;
	v2=2*u2-1;
	w=v1*v1+v2*v2;
  } while(w>1);
  y=sqrt((-2*log (w))/w);
  x1=v1*y;
  x2=v2*y;
  s1=mean+var*x1;
  s2=mean+var*x2;
  t=sqrt(s1*s1+s2*s2);
  return(t);
}
main()
{int i;
for(i=0;i<100000;i++)
  z[i]=Ray(0,1);
  save();
}

⌨️ 快捷键说明

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