2017-10-04 16 views

답변

3

의 내가 N> 10^20 숫자

의가없는 가정 해 봅시다 생성하고자한다고 가정 해 봅시다. 초당 10 억 개의 값을 생성 할 수 있다면 3000 년 이상인 1E20 values/1E9 values per second/3600 seconds per hour/24 hours per day/365.25 days per year이 필요합니다. 신뢰할 수있는 하드웨어 및 에너지 원이 있더라도 결과를 볼 수는 없습니다. random.seed (SEED) 및 N 후속 random.random() 호출

기본 알고리즘 메르 센 트위스터, 즉 생성하도록 설계되어 있기 때문에 균일 한 결과를 통계 학적으로 구별 될을 사용

행동.

+0

@ BradSolomon 모든 호출에 대해 다시 시드를하면 효과적으로 PRNG를 시드 값의 해시 함수로 사용하고있는 것입니다. 시드 값 자체가 i.i.d가 아닌 한. 유니폼 (이 경우 PRNG가 필요한 이유는 무엇입니까?), 결과에 어떤 분포가 있는지 알 수 없습니다. – pjs

+0

나는 너를 따라갈 것 같아. 그러나이 경우 1 단계 범위를 반복하면 시드 값이 균등하게 퍼져 나가는 것을 의미합니다. 맞습니까? 경험적으로 적어도 결과는 일정한 것으로 보입니다. 나는 '종자'를 다시 부르는 것을 용납하지 않는다. –

+0

@BradSolomon PRNG의 유일한 요구 사항은 균일 성이 아닙니다. 당신은 또한 독립을 모방해야합니다. 극단적 인 경우에, 순서 1,2,3,4, ...은 점근 적으로 일정하지만, 독립성을 테스트하지 못할 것이다. – pjs