| [ KAIST ] in KIDS 글 쓴 이(By): wang (Chip쟁이) 날 짜 (Date): 2001년 3월 13일 화요일 오후 07시 37분 29초 제 목(Title): Re: [Q] C에서 정규분포에서 숫자 뽑아낼때 double gaussian(void) { static int ready = 0; static double gstore; double v1, v2, r, fac, gaus; if(ready == 0){ do{ v1 = 2.*uniform(); v2 = 2.*uniform(); r = v1*v1 + v2*v2; }while(r > 1.0); fac = sqrt(-2.*log(r)/r); gstore = v1*fac; gaus = v2*fac; ready = 1; } else{ gaus = gstore; ready = 0; } return(gaus); } |