PHP, 정규분포 난수 생성, 가우스 분포 랜덤 발생 함수; Normal Distribution | |||
| |||
그런데 만약, 중간값이 가장 많이 나오고, 극단적인 값으로 갈수록 적게 나오는, 종 모양의 커브를 가진 정규분포(NormalDistribution) 즉, 가우스 분포(Gaussian Distribution)의 랜덤한 난수를 생성하려면 다음 예제의gaussianRandom() 이라는 함수를 사용하면 됩니다. 가우시안 랜덤 생성 함수 예제소스 파일명: example.php <html> <head> <title>PHP Example</title> </head> <body> <?php // 정규분포 난수 30개 출력 for ($i = 0; $i < 30; $i++) { echo gaussianRandom(), "<br /> "; } // 정규분포의 난수 1개 생성하여 반환하는 함수 // 평균 = 0, 표준편차 = 1 function gaussianRandom() { do { $v1 = 2 * (mt_rand() / mt_getrandmax()) - 1; // -1.0 ~ 1.0 까지의 값 $v2 = 2 * (mt_rand() / mt_getrandmax()) - 1; // -1.0 ~ 1.0 까지의 값 $s = $v1 * $v1 + $v2 * $v2; } while ($s >= 1 || $s == 0); $s = sqrt( (-2 * log($s)) / $s ); return $v1 * $s; } ?> </body> </html> Tags: distribution random 가우스분포 가우시안랜덤 랜덤 랜덤 함수 정규분포 | |||
| |||
| |||
로그인을 하시면 댓글을 등록 할 수 있습니다. |
OTHER POSTS IN THE SAME CATEGORY 타임아웃 시간줄이기 |