Yakın tarihli bir cevap, bir Monte Carlo simülasyonunu tohumlamak için Fortuna veya Mersenne Twister Rastgele Sayı Üreticilerinin ( RNG'ler ) kullanıldığından bahsetti . Daha önce Fortuna'yı duymamıştım, bu yüzden baktım - esasen kriptografik kullanım için tasarlanmış gibi görünüyor.
Şu anda bir K-Means algoritması tohumlamak için üretim kodunda Mersenne Twister kullanıyorum.
Hangi (Fortuna veya Mersenne Twister) "algoritmik tohumlama" uygulamaları (örneğin Monte Carlo ve K-Means tohumlama) için en iyi olarak kabul edilir? Yoksa bir "atmak" - yani en uygun kullanın.
Oturduğum yerden "en iyi" en yüksek kalitede rasgele sayılar sağlamalı, hızlı çalışmalı ve (muhtemelen) düşük bellek alanına sahip olmalıdır. Bunlardan kalite muhtemelen çoğumuz için en önemlisidir.
RAND_MAX=32768
olası değerlerdi. Şu anda Monte Carlo raytracing sim için MT kullanıyorum. Ancak, ben yok ben ışını tarifi gibi şeylerin "rastgele" nesil yapacağım, muhtemelen benim profilcisine bir performans darboğaz olarak MT bakınız bir preprocess olarak . Örneğin, başlangıçta 100.000 ışınlık bir dizi oluşturabilir, bunları bir dizide saklayabilir ve çalışma zamanında rasgele dizi başlangıç konumunu seçebilirim (koleksiyonun 10.000 ışın için çalışır). Bu, iyi rasgele sayı dağılımları yerine nispeten yüksek bir bellek yüküne sahiptir.