반응형
가우시안 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 |
구글 크롬 북마크 정리 SuperSorter 확장 프로그램 (2) | 2011.12.26 |
Vim plug-in visincr (0) | 2011.12.14 |
Gvim ctags 이용하기 (0) | 2011.12.03 |
갤럭시 탭에서 교보 eBook 사용하기 (0) | 2011.11.20 |
댓글