Похоже, что использование простых C в unix-подобных системах, fread
от /dev/urandom
- это самый простой способ извлечения высококачественных случайных байтов. Мне нужно запустить симуляцию, которая требует около 10k 32-битных случайных чисел в секунду, и может работать несколько дней. Есть /dev/urandom
хорошо использовать для этой цели? Каким образом качество случайных байтов здесь, когда пул энтропии исчерпан?Действительно ли `/ dev/urandom` подходит для целей моделирования?
edit_1
В то время как я в настоящее время работает 3 параллельных несгибаемых тестов для /dev/urandom
в моем ноутбуке, я получил следующие интересные строки. Тест еще не завершен.
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_parking_lot| 0| 12000| 100|0.99573896| WEAK
diehard_sums| 0| 100| 100|0.00116464| WEAK
sts_serial| 7| 100000| 100|0.99996076| WEAK
Пожалуйста, не downvote без каких-либо объяснений, когда вы лично не нравится вопрос. – xiver77
Пожалуйста, сушите проблему. Какое распределение вы хотите? Вы хотите повторять последовательности? Вам нужны криптографически безопасные случайные числа? '/ dev/urandom' может быть ОК для вашего приложения (это CSPRNG), если вы не хотите повторяемых последовательностей. –
@MichaelFoukarakis Я сейчас под Linux, но хорошо знать, есть ли в какой-то другой системе некоторые проблемы. Это не должно быть криптографически безопасным, но я не хочу иметь такую же случайную последовательность после цикла 4294967296, например. – xiver77