2014-02-05 6 views
1

의사 랜덤 넘버 생성기에서 메멘토가 정확히 어떻게 사용되는지 묻고 싶습니다. 나는 의사 난수 생성기에 대한 높은 수준의 지식을 가지고 있지만 거기에는 메모가 없습니다 (심지어 거기 읽음). 대답 해 주셔서 감사합니다. :)의사 랜덤 넘버 생성기에서 메멘토 사용

답변

0

나는 당신이 디자인 패턴에 대해 이야기하고 있다고 생각합니다. 그렇다면 내 생각에 기념비는 난수 생성기의 내부 상태로 사용됩니다. 먼저 특정 시드 (즉, 상태)를 가진 난수 생성기를 만든 다음 난수 생성 중에이 시드를 사용합니다.

  • 발신자입니다 난수 생성기,
  • 관리인이 난수 생성기를 사용하여 번호를 검색하는 발신자이고,
  • 추억이되는 기반으로 난수 생성기의 상태 : 그래서 표준 유품 용어를 사용하여 다음 무작위 값이 생성됩니다

표준 C++의 rand()는 상태를 검색 할 수 없으므로 복원 작업은 처음에 srand()를 통해 설정중인 시드를 저장 한 다음 복원하기 만하면됩니다 발전기를 초기 상태로 전환합니다.

그러나 다시 구현할 수 있으므로 상태 쿼리를 지원하고 이후 초기 상태가 아닌 상태로 복원됩니다. 방법을 달성하는 방법은 this SO answer을 참조하십시오. 또한 새로운 C++ 11 난수 생성기가 기본적으로이 기능을 제공하는 동일한 스레드에서 언급됩니다.