모든 의사 난수 생성기는 궁극적으로 주기적인가?


24

모든 의사 난수 생성기는 궁극적으로 주기적인가? 아니면 결국 주기적인가?

주기적으로 나는 합리적인 숫자와 마찬가지로 결국 주기적 하위 시퀀스를 생성한다는 것을 의미합니다 ...

그리고 의사 랜덤은 난수의 알고리즘 / 수학적 생성을 의미합니다 ...


7
이것은 기억에 남는 논점이지만, 유한 메모리 컴퓨터에서는 모든 중단되지 않는 프로그램은 궁극적으로 주기적입니다. Turing 머신에서 실행되는 것으로 알고리즘을 분석 할 수 있지만 시간이 지남에 따라 메모리 사용이 제한되지 않은 PRNG는 실용적이지 않습니다.
피터

@ 피터 당신은 "시간이 지남에 메모리 사용이 무한한 PRNG는 그리 실용적이지 않을 것"이라고 말합니다. 메모리 사용이 시간과 관련하여 2 차 또는 선형 인 경우 실용적이지 않을 수 있지만 대수 만 있다면 어떨까요? 내 대답을 참조하십시오.
돈 해치

답변:


39

임의의 외부에 의존하지 않고 제한된 양의 메모리를 사용하는 모든 의사 난수 생성기 는 유한 한 상태이기 때문에 궁극적으로 주기적입니다. 당신은 그것들을 그들의 출력을주는 특별한 "출력"상태를 갖는 거대한 결정 론적 유한 오토마타로 생각할 수 있습니다. 모든 유한 오토마타는 결국 주기적이므로 모든 의사 난수 생성기는 결국 주기적 출력을 생성합니다.

그러나 기간 길이는 엄청날 수 있습니다. 예를 들어, 128 비트의 암호화 상태와 PRNG는 가끔씩 만 사이클 수 로 출력 한 모든 나노초 비트 출력의 비트, 그래서하더라도 솔라 죽은 감수 PRNG의 반복 될 것이다.2128

PRNG가 무한한 양의 메모리를 사용할 수 있으면 (실제적이지 않음) 예를 들어 의 이진 확장을 출력 할 수 있습니다22


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
DW

채팅 링크가 끊어졌습니다. 여전히 토론의 로그를 볼 수 있습니까? : / @DW
OINK

@ cchan3141, 복원했습니다. 지금 시도하십시오. 그러나 주석은 의도적으로 일시적인 것이며 대화방에서도 마찬가지입니다. 다른 사람에게 지속적인 가치가있는 것을 발견 한 경우 해당 정보를 통합하기 위해 답변을 수정하거나 새로운 답변을 게시하는 것이 좋습니다. 고맙습니다!
DW

7

PRNG는 상태 머신입니다. 그것들이 내부 입력만을 기반으로한다면 (하드웨어와 소프트웨어의 조합 인 Poker Stars RNG와 대조적으로 ... 음성 샘플에서 지속적으로 시드) C는 (C, S1, ...)입니다. 현재 (또는 이전) 값이고 S1, ...은 상태 세트가 될 수 있습니다.

C의 가능한 N 값이 있고 (메모리가 제한되어 있기 때문에) N + 1 번 반복하면 C에 대해 같은 값을 적어도 두 번 누르십시오. 2N + 1 회 반복하면 C에 대해 같은 값을 3 번 이상 맞습니다.

T = (Ct, S1t, S2t)를 특정 상태 (현재 값 및 기타 상태)로 둡니다.
M = # {S1} X에 대한 값} {S2} X에 대한 값} {{}은 가능한 상태 조합의 기본이됩니다 (다시 : 메모리가 제한되어 있기 때문에).

NM + 1 배의 알고리즘을 반복하면 동일한 상태 (Ct, S1t, S2t, ...)의 두 배 이상에 도달하여 처음과 동일한 출력 값과 동일한 후속 상태 시퀀스를 생성합니다. 너무 주기적으로.


6

주기적이지 않은 의사 랜덤 시퀀스의 간단한 예 : 모든 양의 정수의 이진 표현을 순서대로 연결하십시오.

110111001011101111000...

( "."를 앞에 붙이고 이진 Champernowne 상수 라고합니다 .)

물론 이것은 의사 난수 시퀀스에 이르기까지 품질이 높지는 않지만 많은 메모리를 사용하지 않고도 가능하다는 것을 보여줍니다.

이 예제에서 상태를 저장하는 데 필요한 메모리는 이론적으로 제한이 없습니다. 그러나 그것은 매우 느리게 성장합니다 (즉, 숫자를 계산하는 데 필요한 메모리와 비교할 때π2

무한한 메모리 요구 사항은 튜링 머신의 문제가 아니며 성장 속도가 너무 느리기 때문에 실제로는 문제가되지 않지만이 용도에 따라 다릅니다.

2128

차별화 요소는 규칙적인 간격으로 하위 시퀀스를 가져 와서 PRNG에서 다른 PRNG를 파생시키는 것과 같은 일을하려는 경우입니다. 비주기적인 PRNG로 시작하면 샘플링 한 기간에 관계없이 비주기적인 결과를 얻을 수 있지만 기간의 PRNG로 시작하는 경우2128

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.