CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): wang (Chip쟁이)
날 짜 (Date): 2003년 6월 13일 금요일 오후 02시 20분 56초
제 목(Title): Re: [Q] 표준정규분포로 난수만들기



double  gaussian()
{
    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);
}

서점이나 도서관 가셔서 아무 수치해석책이나 뒤져도 나옵니다.
그리고 이외에도 방법이 있는 것으로 압니다.


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.