2014-04-10 5 views
0
public class Random { 
    private static int A=25173; 
    private static int C=13849; 
    private static int M=65536; 
    public static int next(){ 
     int z = 23311; 
     z=(A*z+C)%M; 
    return z; 
    } 
} 

메서드가 호출 될 때 새로운 난수 생성을 계속 유지하려면 이전 숫자 (z_i-1)를 어떻게 참조 할 수 있습니까?의사 난수 생성기의 선형 합동 방법

답변

1
당신이 당신의 클래스 static 될하려는 경우 private static int

(방법이 아닌 최고의 디자인 만의 래퍼!), 또는 Random - 클래스 인스턴스화해야 개봉 된 경우 private int. next() -function에서 다음 새 필드에 쓸 수 있습니다.

public class Random { 
    ... 
    private static int last = 23311; 
    ... 
    public static int next(){ 
     last=(A*last+C)%M; 
     return last; 
    } 
} 
+0

감사합니다. 나는 지금 그 차이를 이해한다. – user3514716

+0

@ user3514716 언제든지 환영합니다. 질문에 답이 표시되면 답변을 수락 해보십시오 (투표 단추 아래) – LionC

관련 문제