의사 난수 생성기의 기간을 어떻게 확인할 수 있습니까?


14

선형 합동 의사 난수 생성기 (PRNG)를 사용한다고 가정합니다. 시드 , 곱셈 계수 (a), 이동 계수 (c) 및 모듈러스 계수 (m)가 주어지면 PRNG 기간을 어떻게 결정할 수 있습니까? 실험 / 패턴 감지 알고리즘으로 결정합니까, 아니면주기를 계산하기위한 직접적인 공식이 있습니까? x0

내 질문은 특히 선형 합동 방법에 관한 것이지만, 다른 PRNG에 대해서도 실제로 기간이 계산되는 방법에 대해 더 많이 알고 있습니다.



BTW, LFSR 을 사용하는 경우 피드백 다항식이 원시적 인 경우 기간이 최대 입니다. 이러한 경우, 기간 AFAIK은 (저를 인용하지 않습니다 내 물론 노트를 발굴 너무 게으른)되는 피드백 다항식 여기서 P ( X ) F의 Q [ X ] 정도의 N , 및 q는 의 크기 계수의 분야. qnp(x)Fq[x]nq

2
Floyd의주기 감지 알고리즘과 Brent의주기 감지 알고리즘은 모두주기를 감지하는 효율적인 방법입니다. 둘 다 기간의 여러 L을 반환하고, 일단 L을 인수 분해하면 L을 인수 분해하여 어느 것이 가장 작은 요소인지 확인할 수 있습니다.
xdavidliu

답변:


12

전체 사이클 LCG PRNG로 자신을 제한 하면 대답은 간단합니다. 정의에 따르면 간단히 m 입니다.

주어진 시드에 대해 전체 사이클이 아닌 LCG PRNG의 기간을 찾으려면 시드 값을 한 번 더 생성 할 때까지 PRNG의 반복 횟수를 계산하면됩니다.

참조 된 wikipedia 페이지에서 :

기간

mc

  • cm
  • a1m
  • a1m

cma

역사적으로, 잘못된 선택은 LCG의 비효율적 인 구현으로 이어졌습니다. 이것의 특히 예시적인 예는 1970 년대 초에 널리 사용 된 이 RANDU 이며,이 불량한 LCG의 사용으로 인해 현재 많은 의문이 제기되고 있습니다.

전체 사이클 발생기를 사용하려는 이유

LCG PRNG를 전체 주기로 제한하지 않으면 큰 위험에 노출 됩니다.

당신이하지 않으면 알고 주어진 LCG는 전체주기는 다음 것을 당신은 할 수 일부는 서로 별개의 시퀀스, 임의의 수와 발전기로 끝낼 수 있었다 곤란하게 악명 높은 것보다 어쩌면 더 작은 소름이 끼치는 임의성이, RANDU의 발전기 .

응용 프로그램에 충분한 시퀀스를 생성하기 위해 가능한 모든 시드 값을 확인하지 않아도됩니다.

추가 자료

의사 난수 생성기에 대한 훌륭한 입문서를 위해 난수에 대한 수치 레시피 장을 읽는 것이 좋습니다 .


그것은 사실이지만, 나는 LCG PRNG의 전체 기간으로 자신을 구속하지는 않습니다 ... 나는 a, c, m의 잘못된 선택에 대해 궁금합니다. a, c, m을 감안할 때 필연적으로 기간이 어떻게 될지 미리 알고 싶습니다. 나는 그것이 m에 의해 상한이라는 것을 알고 있지만, 우리가 그보다 더 잘하고 정확한 기간을 얻을 수 있는지 궁금합니다.
Paul

나는 이것이 기술적 측면에서 머리카락을 전혀 나누지 않는다고 생각하지 않는다. 문제는 "임의의 매개 변수로 LCG의주기를 결정하는 방법"이었다. 귀하 한다고 가정하면 , 귀하의 질문에 대한 답변은 정의상 가능한 최대 기간이 될 것입니다. " 이 답변에 제시된 전체 기간 LCF 사용에 대한 주장은 완벽하게 설득력이 있지만 문제는 그 질문에 대한 것이 아닙니다.
xdavidliu

@xdavidliu 죄송하지만 새 댓글이 어떻게 답변을 개선하는 데 도움이되는지 모르겠습니다. 당신은 내가 실제로 그 질문에 대답하지 않았다는 점에주의를 기울 였고, 그 문제를 해결하기 위해 나의 대답을 편집 한 다음, 당신이 웃게 만들 것이라고 생각하는 방식으로 알려주었습니다 (Futurama 팬이라면). 더 말할 것이 없다고 생각합니다.
Mark Booth

스택 교환시 주석은 Computational Science Chat 사용을위한 확장 된 토론을위한 것이 아닙니다 . 의견은 질문과 답변을 개선하는 데 도움이되고주의를 산만하게하므로 최소한으로 유지하려고합니다. 댓글은 임시로 간주되어야하며, 더 이상 질문이나 답변을 개선하는 데 적극적으로 도움이되지 않는 댓글 은 게시물 을 정리하기 위해 언제든지 삭제할 수 있습니다 .
Mark Booth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.