의사 난수란 무엇인가?

JS·2023년 2월 6일
0

Tech Explanation

목록 보기
14/14
post-thumbnail

의사 난수(Pseudo-Random Number)란?

컴퓨터는 특수한 하드웨어 없이 스스로 난수를 만들어낼 수 없으며 우리가 난수를 얻기 위해서는 알고리즘을 짜야한다

처음에 주어지는 초기값을 이용하여 이미 결정되어 있는 메커니즘(의사 난수 생성기)에 의해 생성되는 수이며, 초기값을 알면 계산될 수 있기 때문에 의사 난수라고 부른다

사람이 보기에는 어느 정도 무작위해 보여 난수로 취급하지만 정해진 알고리즘으로 만들기 때문에 진짜 난수는 아니다다. 그래서 가짜 난수라는 의미로 의사 난수라고하며, 대표적인 의사난수로 알려진 폰 노이만의 중앙제곱법 또한 예측 가능하다는 점에서 진정한 난수가 아니다

의사 난수의 종류들

중앙제곱법(Middle-square method)

폰 노이만이 1949년에 고안한 의사 난수법. 임의의 초기값을 제곱한 뒤 나온 수의 가운데 일부분을 제곱해가며 난수를 만드는 방식이다

선형합동법(Linear congruential method)

가장 널리 사용되고 있는 난수 생성 방법 중 하나로 간단한 연산에 의한 난수발생에 중점을 두고 있다. 초기값만 주어진다면 의사 난수를 발생하는 함수를 호출할 때마다 다음과 같은 반복식에 의해 새로운 의사난수를 발생시킨다

메르센 트위스터(Mersenne-twister)

메르센 소수를 이용하여 개발된 알고리즘이다. 기존의 난수생성 알고리즘을 획기적으로 연장시켰는데 이 알고리즘의 순환 주기는 2의 19937승 -1 으로서 터무니 없이 큰 숫자이기 때문에 실감이 나지 않을 정도로 긴 시간 동안 패턴을 찾는 노력을 들여야하기 때문에 난수 발생 기법으로서 사용된다


Reference

profile
게임 프로그래머 지망생

0개의 댓글