2011-02-23 4 views
4

사용했던 (의사) - 무작위 수의 품질로 인해 문제가 발생하는 시뮬레이션 또는 무작위 알고리즘을 작성한 적이 있습니까?의사 랜덤 넘버 생성기 (PRNG)가 충분히 랜덤하지 않았습니까?

무슨 일입니까?

어떻게 귀하의 prng이 문제인지를 감지 했습니까?

문제를 해결하기에 충분할 정도로 PRNG를 전환 했습니까? 아니면 진정한 임의성 소스로 전환해야합니까?

나는 어떤 종류의 응용 프로그램이 임의성의 출처의 품질 및 이것이 문제가 될 때 실현되는 방법에 대해 걱정할 필요가 있는지 파악하려고합니다.

+0

커뮤니티 위키로 만드십시오 –

+0

어 어떻게합니까? FAQ는 확인란이 있어야한다고 말하지만 찾을 수는 없습니다. : -/ –

답변

3
  1. 날짜가 지정된 임의의 숫자 생성기 RANDU은 "나쁜"난수를 생성하는 데있어서 70 년대에 악명이 높았습니다. PhD 감독관은 PhD에 영향을 미쳤으며 시뮬레이션을 재실행해야한다고 언급했습니다. Google에서 RANDU linear congrunetial generator을 검색하면 다른 예가 나타납니다.
  2. 여러 대의 컴퓨터에서 시뮬레이션을 실행할 때 적절한 평행 난수 생성기를 사용하는 대신 "임의의 시드"를 생성하려고하는 경우가 있습니다. 예를 들어 현재 시간 (초)을 사용하여 시드를 생성합니다. 이로 인해 필자는이 문제를 충분히 피할 수있는 충분한 문제를 발생 시켰습니다.

이는 내 특정 관심 분야에 주로하지만, 병렬 컴퓨팅이 아닌, 내 자신의 난수 생성기를 생성하는 생각이 내 마음을 교차하지 않을 것입니다. 대부분의 언어에서 잘 테스트 된 난수 함수를 호출하는 것은 간단합니다.

+0

선형 합동 생성 실패를 2+ 차원 공간으로 표시하는 것은 MC에서 시간을 보내는 모든 클래스의 기본 연습이어야합니다. – dmckee

1

DieHard에 대해 prng를 실행하는 것이 좋습니다. 좋은 PRNG는 오늘날 존재합니다 (Marsaglia의 연구 참조). Numerical Recipes edition 3을 참조하십시오.

관련 문제