Генерировать большие объёмы случайных данных, буквально гигабайты в секунду? Когда нужны просто большие несжимаемые массивы.
Например, для генерации сетевого трафика или заполнения накопителей данных (HDD, SSD, NVMe) или образов дисков виртуальных машин.
Один из наиболее простых и много раз проверенных вариантов:
...
x ^= x >> 12;
x ^= x << 25;
x ^= x >> 27;
var random = x * 0x2545F4914F6CDD1DULL;
... отдаём random потребителю
... сохраняем вместо 12345
x = random;
Это частный случай хорошо известного подхода, вполне корректный и стоящий в одном ряду со многими другими
Нет смысла вычитывать данных из /dev/random. Или насиловать процессор генераторами псевдослучайных чисел из стандартной библиотеки своего тулчейна.
Они потому и низкопроизводительные, что управляют распределением. Например, выдавая нормальное распределение случайных величин — стандартное распределение, Гаусса — Лапласа, с математическим ожиданием μ = 0 и стандартным отклонением σ = 1.
А получать большие массивы данных в виде псевдослучайной последовательности с периодом 2^64 можно и гораздо более простыми способами.
При разных прогонах можно использовать одно и то же начальное значение. Тогда генерируются одинаковые гигабайты данных, обеспечивающие воспроизводимость с повторяемостью, но и без необходимости их где-то сохранять.
[#]programming #программирование #софт #трудовыебудни
=> More informations about this toot | View the thread | More toots from grumb@idealists.su
=> View programming tag | View программирование tag | View софт tag | View трудовыебудни tag This content has been proxied by September (3851b).Proxy Information
text/gemini