Посетила мысль, что я не совсем понимаю, из каких соображений класс Random в дотнете не сделан статическим. Создавать экземпляры генераторов случайных чисел с разными начальными значениями, что-ли?
ну вообще-то логично, ибо есть разные алгоритмы генерации, и теоретически должно быть возможно подсунуть реализацию, читающую из /dev/random и не знающую ничего о начальных значениях.
А зачем static? В каждый последующий вызов Next() передавать предыдущее рандомное значение? А вдруг я где-нибудь ошибусь, и буду передавать одно и то же значение?
Плюсую. Очень удобно тестить, если валиться где-то внутре в зависимости от цен на дрова в бухте Дикси. Или, к примеру, некая структура генериться рандомом и ошибка вылезает только на некоторых вариантах. Всобачил одинаковый сид и повторяй себе до усрачки.
То, что одинаковый сид даёт одинаковые последовательности, полезно для какой-нибудь мрачной отладки. Тем более, если эта последовательность из объектов разных типов. Ихний рандом такое позволяет, хотя хз, встречается ли такое на практике.
Ну а чего, вспомнилось из жизни. Надо было каждому сеансу пользователя приписать свой идентификатор. О безопасности речи в данном контексте не идёт. Во времена MS SQL 2000 использовалась newid(), но это десятикратное падение производительности. Переписано на random, причём на собственный - т.е. с наличием таблички состояния. Достоинство: а понятно вроде. Была такая весёлая задачка: на Трубо Паскакале зажечь рандомные точки на экране и погасить назад, не используя память. Через randseed, да. А глобальный генератор не дал бы удалить триггер, он следит за флажком глобальности. И вообще в базе можно сделать много больше, чем люди привыкли делать :)
no subject
Date: 2012-10-04 08:09 am (UTC)no subject
Date: 2012-10-04 08:17 am (UTC)no subject
Date: 2012-10-04 08:59 am (UTC)no subject
Date: 2012-10-04 08:21 am (UTC)no subject
Date: 2012-10-04 08:36 am (UTC)no subject
Date: 2012-10-04 08:41 am (UTC)no subject
Date: 2012-10-04 08:46 am (UTC)no subject
Date: 2012-10-04 04:42 pm (UTC)no subject
Date: 2012-10-04 08:54 am (UTC)no subject
Date: 2012-10-04 08:59 am (UTC)Или, к примеру, некая структура генериться рандомом и ошибка вылезает только на некоторых вариантах.
Всобачил одинаковый сид и повторяй себе до усрачки.
no subject
Date: 2012-10-04 09:02 am (UTC)Тем более, если эта последовательность из объектов разных типов. Ихний рандом такое позволяет, хотя хз, встречается ли такое на практике.
no subject
Date: 2012-10-04 09:14 am (UTC)Плюс, вероятно, со статиком им бы как-то пришлось разруливать многопоточность, а так это проблема программиста.
no subject
Date: 2012-10-04 09:34 am (UTC)no subject
Date: 2012-10-04 09:34 am (UTC)no subject
Date: 2012-10-04 12:28 pm (UTC)no subject
Date: 2012-10-04 07:51 pm (UTC)Была такая весёлая задачка: на Трубо Паскакале зажечь рандомные точки на экране и погасить назад, не используя память. Через randseed, да. А глобальный генератор не дал бы удалить триггер, он следит за флажком глобальности.
И вообще в базе можно сделать много больше, чем люди привыкли делать :)