본문 바로가기
algorithm

의사 난수 생성 - 1. Middle-square method

by kanlee2010 2022. 5. 2.

1949년 폰 노이만에 의해서 고안된 의사 난수 생성 방법으로 애니악에서 사용되었다고 합니다.

최초값 seed를 제곱한 후에 중앙에서 seed와 동일한 자리수를 추출하는 방법입니다.

예를 들어 seed 값이 117이라고 했을 때 117 * 117 = 13689 이고

중앙에서 3자리를 뽑아 내면 368이 됩니다. 다음에도 368을 seed로 하여 동일한 방법을 반복 합니다.

그런데 이를 계속 반복해 보면

117

368

360

960

160

560

360

금새 같은 값을 가지게 되었습니다.

그리고 많은 seed 값들이 0으로 수렴하게 됩니다.

따라서 현재는 간단한 의사 난수 생성기로 LCG를 사용합니다.

 

전체적인 의사 난수 생성기의 역사적인 흐름은 아래 링크를 참고 하였습니다.

메르센 트위스터 이후로는 새로운 의사 난수 생성기 보다는 메르센 트위스터를 주요 참고로 해서 보완 및 변형된 의사 난수 생성기들이 나오고 있다고 합니다.

https://en.m.wikipedia.org/wiki/List_of_random_number_generators

 

List of random number generators - Wikipedia

The Additive Congruential Random Number generator. Simple to implement, fast, but not widely known. With appropriate initialisations, passes all current empirical test suites, and is formally proven to converge. Easy to extend for arbitrary period length a

en.m.wikipedia.org

 

댓글