Повышение фактора случайности
Проблема
Требуется генерировать случайные числа, которые были бы «более случайными», чем выдаваемые генератором Perl.
Иногда возникают проблемы, связанные с ограниченным выбором стартовых значений в библиотеках С.
В некоторых приложениях последовательность псевдослучайных чисел начинает повторяться слишком рано.
Решение
Воспользуйтесь другими генераторами случайных чисел — например, теми, которые присутствуют
в модулях Math::Random и Math::TrulyRandom с CPAN:
use Math:: TrulyRandom;
$random = truly_random_value();
use Math::Random;
$random = random_uniform();
Комментарий
Для генерации случайных чисел в Perl используется стандартная библиотечная функция С rand(3)
(впрочем, на стадии компоновки это можно изменить). Некоторые реализации функции rand возвращают
только 16-разрядные случайные числа или используют слабые алгоритмы, не обеспечивающие
достаточной степени случайности.
Модуль Math::TrulyRandom генерирует случайные числа, используя погрешности системного таймера.
Процесс занимает некоторое время, поэтому им не стоит пользоваться для генерации
большого количества случайных чисел.
Модуль Math::Random генерирует случайные числа с помощью библиотеки randlib.
Кроме того, он содержит многочисленные вспомогательные функции.
См. такжеОписание функций
srand и
rand
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|