본문 바로가기
컴퓨터일반

Gaussian Random Variable generation C code

by 남성 2012. 1. 2.

가우시안 r.v. 생성하는 C 코드

 








#define A 16807.0

#define M 2147483647.0


static double r_seed = 1.0;


double rnd() // uniform random variable (1,0)

{

r_seed=fmod(A*r_seed,M);

return (r_seed*4.656612875e-10);

}


/* Gaussian random variable woth mean a and standard deviation d  */


double gaussian(double a,double d)

{

static double t=0.0;

double x,v1,v2,r;


if (t==0.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 (a+v1*r*d);

}

else {

x=t;

t=0.0;

return (a+x*d);

}

}


'컴퓨터일반' 카테고리의 다른 글

qBittorrent  (0) 2012.01.25
centos 다운로드  (0) 2012.01.18
Google Documents  (0) 2012.01.16
윈도우 시작 종료음 제거  (0) 2012.01.14
Gaussian Random Variable generation C code  (0) 2012.01.02
구글 크롬 북마크 정리 SuperSorter 확장 프로그램  (2) 2011.12.26
Vim plug-in visincr  (0) 2011.12.14
Gvim ctags 이용하기  (0) 2011.12.03
갤럭시 탭에서 교보 eBook 사용하기  (0) 2011.11.20

댓글0