홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP, 정규분포 난수 생성, 가우스 분포 랜덤 발생 함수 Normal Distribution
12년 전
일반적인 난수 발생 함수는, 모든 난수들이 같은 확률로 나오는 단일분포(Uniform Distribution)의 난수를 출력합니다.

그 런데 만약, 중간값이 가장 많이 나오고, 극단적인 값으로 갈수록 적게 나오는, 종 모양의 커브를 가진 정규분포(Normal Distribution) 즉, 가우스 분포(Gaussian Distribution)의 랜덤한 난수를 생성하려면 다음 예제의 gaussianRandom() 이라는 함수를 사용하면 됩니다.


가우시안 랜덤 생성 함수 예제

소스 파일명: example.php

<html>
<head>
<title>PHP Example</title>
</head>

<body>

<?php

  // 정규분포 난수 30개 출력
  for ($i = 0; $i < 30; $i++) {
    echo gaussianRandom(), "<br />\n";
  }



// 정규분포의 난수 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>

추천추천 : 259 추천 목록
번호 제목
3,035
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
3,034
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.