mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, March 17, 2008

난수생성기, Pseudo-Random 의사 난수, 유니폼 Uniform 난수발생 Random Number


보통의 컴퓨터로 만드는 난수는 모두 "Pseudo-Random (슈도 랜덤) 난수"입니다. Pseudo (P는 묵음) 란, "가짜의", "모조의", "진짜가 아닌"이라는 뜻입니다. "의사 난수"에서 "의사(擬似)"는 병원 닥터라는 뜻이 아니라, "비슷하지만 진짜는 아니다"라는 뜻이고, Pseudo 를 "의사"로 번역합니다.

PC에서 난수를 만들 때에는, 컴퓨터의 현재 시각을 씨앗값으로 삼고 그 씨앗값을 수학적 알고리즘에 넣어서 난수를 생성합니다. 따라서 컴퓨터 시계를 과거로 정확히 돌리면 똑같은 난수가 만들어지기에 진정한 의미의 난수라고 볼 수는 없습니다.

유닉스를 사용하는 대형컴퓨터에는 난수를 생성하는 별도의 하드웨어가 있어서 진짜 난수를 만들 수 있습니다. 보안이 중요한 곳에서는 진짜 난수를 사용해야겠지만 보통의 경우에는 PC의 의사난수로도 충분합니다.

그리고 유니폼 난수(Uniformly Distributed Random Numbers)란, 모든 숫자들이 같은 확률로 나오는 "일반 난수"입니다. 예를 들어 주사위를 던지면 1에서 6까지 모든 숫자들이 동등한 확률로 나옵니다. 따라서 이것도 유니폼 난수입니다.

그런데 특정 숫자가 더 많이 나오는 난수도 있을 수 있겠지요. 이것을 Biased Random Numbers 라고 합니다. 이런 난수들에서는 Gaussian-Distributed Numbers 라는 것이 많이 사용됩니다. 정규분포 난수입니다. 평균에 가까운 값일수록 많이 나오고, 평균에서 먼 값일수록 적게 나옵니다.

예를 들어, 사람의 키를 통계내 보면, 평균키의 사람이 가장 많고, 평균에서 먼 신장의 사람일수록 적습니다. 최홍만이나 "통아저씨"처럼 극단적인 신장의 사람은 적습니다. 따라서 현실 세계를 반영하는 난수를 생성할 때에는, 정규분포 난수 즉 가우시안 난수가 유용합니다.


아래 주소에 온라인 난수발생기 프로그램이 있습니다. 다운받아 설치할 필요없이 브라우저에서 직접 사용할 수 있습니다. 모두 의사난수(Pseudo-Random)발생기입니다. 별도의 장치 없이, 컴퓨터 시계만을 이용하기 때문입니다.


정수 난수발생기 (일반 유니폼 난수)
▶▶ 난수 발생기; 랜덤 정수 생성, 무작위 숫자 발생; Random Int Number Generator


실수 난수생성기 (일반 Uniform 난수)
▶▶ 실수 난수 발생기; 소수점 랜덤 숫자 생성기, 지정 범위 내에서; Float Random Number Generator


정규분포 난수 생성기
▶▶ 정규분포 난수, 가우시안 랜덤 발생기; Normal Distribution Rand Generator




tag: study
학습 | Study

1 Comments:
At April 1, 2011 at 5:17 PM, Blogger dasein said...

감사합니다, 도움 많이 되었습니다. ^^

 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top