소스해석좀 해주세여ㅠㅠ
잎새
소스코드 하나가 있는데여 ..
중간에 함수 부분이 이해가 잘 안가서 해석좀 해주시면 감사하겠습니다.
간략화 했구요 중간에 굵은 글씨부분이 이해가 잘안갑니다ㅠㅠ
#define A 16807.0 //multiplier
#define MUL 2147483647.0 //modulus
static double r_seed=1.0; //seed number
double Gaussian(double mean, double std_noise);
double rnd();
void main(int argc, char* argv[])
{
double *rx_bit;
int *tx_bit, std_noise;
int n=400;
rx_bit = (double *)malloc(sizeof(double)*n);
for(int i=0;in;i++)
rx_bit[i]=Gaussian((double)tx_bit[i], std_noise);
}
double Gaussian(double mean, double std)
{
static double t=0.0;
double x, v1, v2, r;
if(t==0)
{
do
{
v1=2.0*rnd()-1.0;
v2=2.0*rnd()-1.0;
r=v1*v1+v2*v2;
} while(r=1.0);
r=sqrt((-2.0*log(r))/r);
t=v2*r;
return(mean+v1*r*std);
}
else
{
x=t;
t=0.0;
return (mean+x*std);
}
}
double rnd()
{
r_seed=fmod(A*r_seed,MUL);
return (r_seed*4.656612875e-10);
}