2013-12-20 3 views
1

출력이 주어진 경우 Linear Congruential Generator의 상태를 결정하는 방법에 대해 궁금합니다.결과에서 선형 합동 생성기의 상태를 확인하십시오.

X(n-1) = (aX(n) + c) mod p 

반환되는 값은 결정적이며 공식은 잘 알려져 있으므로 상태 값을 얻을 수 있어야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

편집 :

내가 더이 게시이가 관련 업무되지 않은, 그래서 많은 시간을 할애하지 않았고 (많이) 정교해야 때 일이었다

.

이 0과 1 사이의 비 - 정수 값을 생성하는 데 사용되는 가정하지만 유일한 표시 출력 50/50 확산 참 또는 거짓이다. 구현이 또한 알려져 있다고 가정하므로 의 중시하는, CP이 공지되어 있지만

그것을 출력의 한정된 양으로 가능한 것 (X)의 값을 결정 엑스?

+0

프로그래밍 방식으로 또는 수학적으로 묻는 중입니까? – shoover

+0

두 가지 모두 알고 싶습니다 – Martin

+0

[수학 SE] (http://math.stackexchange.com/)에서 더 많은 답변을 얻을 수 있지만 [이 이전 토론] (http : //www.math .niu.edu/~ rusin/known-math/99/LCG)를 sci.math에 추가하십시오. – shoover

답변

1

음, 가장 간단한 경우에, 출력이 상태 - 출력 시퀀스 X 0이다의 내부 상태 ... 각 요소있는 X 1, X 2, 한 걸음.

더 일반적으로는 LCRNG 오히려 [0, P)보다 범위 [0 균일 번호, k)를 생성하는 분할한다 (출력되는 값이 될 것이다 (kX이 N/P)) 내부 상태의 상위 비트 만 알려줍니다. 이 경우 각 출력 값은 해당 단계의 상태에 대해 가능한 값 범위를 제공합니다. 여러 개의 연속적인 값을 서로 연관시킴으로써 범위를 좁힐 수 있습니다.

관련 문제