Нещодавна відповідь згадував про використання генераторів Fortuna або Mersenne Twister випадкових чисел ( RNG ) для посіву моделювання в Монте-Карло . Раніше я не чув про Фортуну, тому переглянув її - схоже, вона в основному призначена для криптографічного використання.
В даний час я використовую Mersenne Twister у виробничому коді для виведення алгоритму K-Means.
Що (Фортуна або Мерсенн Твістер) вважається найкращим для застосувань "алгоритмічного висіву" (наприклад, висівання Монте-Карло та К-засобів)? Або це "підкидання" - тобто використання найзручнішого.
З того місця, де я сиджу, "кращий" повинен забезпечити найвищу якість випадкових чисел, швидко працювати і (можливо) мати низький слід пам'яті. З них якість, мабуть, є найбільш важливою для більшості з нас.
RAND_MAX=32768
можливі значення. На даний момент я використовую MT для рентгенограми в Монте Карло Однак я не бачу MT як вузьке місце в моєму профілі, ймовірно, тому, що я роблю "випадкове" покоління таких речей, як напрямки променів, як попередній процес . Наприклад, я можу генерувати масив зі 100 000 променів під час запуску, зберігати їх у масиві та випадковим чином вибирати початкову позицію масиву під час виконання (працює на 10 000 променів або набір колекції). Це має відносно високі накладні витрати в обмін на хороші розподіли випадкових чисел.