개요

난수란 어떤 규칙성 없이 무작위로 발생한 수를 말한다. 이때 계산을 통해서 구한 난수를 의사 난수 (Pseudo-Random Number) 라고 한다. 컴퓨터에서 사용되는 모든 난수는 의사 난수이다. 의사난수는 일반 난수에 비해 여러 장점이 있다.

  1. 대표성 : 의사 난수의 알고리즘은 그 난수의 패턴을 대표한다.
  2. 반복성 : 의사 난수는 언제나 같은 결과를 내 놓기 때문에 결과가 보존된다.

일양 난수 (선형 합동법)

모든 숫자가 고르게 나오는 난수의 양상

[math] x_n = (Ax_{(n-1)} + C) mod M [/math] A, C, M 은 정수. mod는 나머지 연산자. x는 시드 (난수의 시작점)

정규 난수

난수의 양상이 정규분포를 따르는 양상

박스 뮬러 변환 (Box-Muller transformation)

두개의 일양난수 [math] U_1, U_2 [/math] 에 대하여, 정규 난수 [math] X_1, X_2 [/math]는 다음과 같이 구할 수 있다.

[math]X_1 = \sqrt{-2logU_1}cos(2\pi U_2) \sim \mathrm{N(0,1)}[/math]
[math]X_2 = \sqrt{-2logU_1}sin(2\pi U_2) \sim \mathrm{N(0,1)}[/math]

포아송 난수

지수 난수

와이블 난수

감마 난수

응용

ray tracing