최근 답변 에서는 몬테 카를로 시뮬레이션 시드를 위해 Fortuna 또는 Mersenne Twister 난수 생성기 ( RNG ) 사용을 언급했습니다 . Fortuna에 대해 들어 본 적이 없었기 때문에 찾아 보았습니다. 주로 암호화 용도로 사용 된 것 같습니다.
저는 현재 프로덕션 코드에서 Mersenne Twister를 사용하여 K-Means 알고리즘을 시드합니다.
어떤 알고리즘 (Fortuna 또는 Mersenne Twister)이 "알고리즘 파종"응용 분야에 가장 적합한 것으로 간주됩니까 (예 : 몬테 카를로 및 K- 파종 파종)? 또는 "토스 업"입니까? 즉 가장 편리하게 사용하십시오.
내가 앉아있는 곳에서 "best"는 가장 높은 품질의 난수를 제공하고 빠르게 작동하며 메모리 풋 프린트가 적어야합니다. 이 중 품질은 아마도 우리 대부분에게 가장 중요 할 것입니다.
RAND_MAX=32768
가능한 값 만이었습니다 . 현재 Monte Carlo 레이트 레이싱 시뮬레이션에 MT를 사용하고 있습니다. 그러나 MT를 프로파일 러에서 성능 병목 현상으로 보지 않습니다 . 아마 선 방향 과 같은 "임의"생성을 사전 프로세스로 수행하기 때문일 것입니다 . 예를 들어 시작시 100,000 광선의 배열을 생성하고 배열에 저장하고 런타임에 (1,000 광선 정도의 컬렉션에서 실행) 배열 시작 위치 를 임의로 선택할 수 있습니다. 이것은 양호한 난수 분포와 비교하여 비교적 높은 메모리 오버 헤드를 가지고 있습니다.