메르센 트위스터는 널리 사용되는 의사 난수 생성기(PRNG)이다.이 PRNG는 32bit 정수를 생성하고, 내부적으로는 624개의 상태를 유지하며 이 상태를 기반으로 새로운 난수를 생성한다.이 PRNG의 특징은 높은 주기 (2^19937-1)와 좋은 통계적 성질을 가진다.그러나 624개의 연속된 출력을 보면 다음 출력을 정확하게 예측할 수 있게 된다는 특징이 있다. 따라서 이를 바탕으로 작성된 아래의 프로그램은 624개의 연속된 출력을 관찰하고, 그 이후의 출력을 예측한다.중요한 점은 초기 seed나 시작 위치에 관계없이 작동한다는 것! 프로그램은 입력된 숫자들을 디코딩하여 내부 상태를 복구한 후, 그 상태를 바탕으로 이후의 출력을 예측한다. https://gist.github.com/Rhomboid..
메르센 트위스터
개발자라면 다들 파이썬에서 random 모듈을 사용하여 난수를 생성해본 적이 있을 것이다.random 모듈에는 random(), randint(a, b) 와 같은 다양한 내장함수들이 제공되어 이를 활용한 난수 생성이 가능 이전 글 참고 : https://sallysooo.tistory.com/41 [Python] 파이썬 random 모듈 내장 함수 정리1. random.random()- 0.0 이상 1.0 미만의 부동 소수점 난수를 반환import random# 0.0 이상 1.0 미만의 난수 생성result = random.random()print("random.random():", result) 2. random.randint(a, b)- a 이상 b 이하의 정수 난수를sallysooo.tistor..