metaclass: (Default)
[personal profile] metaclass
Посетила мысль, что я не совсем понимаю, из каких соображений класс Random в дотнете не сделан статическим. Создавать экземпляры генераторов случайных чисел с разными начальными значениями, что-ли?

Date: 2012-10-04 08:09 am (UTC)
From: [identity profile] nicka-startcev.livejournal.com
Карта в Элите именно так делается. И названия планет тоже. И все их экономические параметры. А хранить достаточно один только рандом сид.

Date: 2012-10-04 08:17 am (UTC)
From: [identity profile] palm-mute.livejournal.com
ну вообще-то логично, ибо есть разные алгоритмы генерации, и теоретически должно быть возможно подсунуть реализацию, читающую из /dev/random и не знающую ничего о начальных значениях.

Date: 2012-10-04 08:59 am (UTC)
From: [identity profile] palm-mute.livejournal.com
а еще не забываем о тредах и синхронизации

Date: 2012-10-04 08:21 am (UTC)
From: [identity profile] vp.livejournal.com
думаю, да

Date: 2012-10-04 08:36 am (UTC)
From: [identity profile] molnij.livejournal.com
Чтобы можно было создать рандомное число рандомных генераторов и в рандомном порядке читать из них рандомы!

Date: 2012-10-04 08:41 am (UTC)
From: [identity profile] bydlorus.livejournal.com
Осторожно, так в компьютере может и жизнь появиться!

Date: 2012-10-04 08:46 am (UTC)
From: [identity profile] feorex.livejournal.com
А зачем static? В каждый последующий вызов Next() передавать предыдущее рандомное значение? А вдруг я где-нибудь ошибусь, и буду передавать одно и то же значение?

Date: 2012-10-04 04:42 pm (UTC)
From: [identity profile] altmind.livejournal.com
в хаскелях вроде бы так

Date: 2012-10-04 08:54 am (UTC)
From: [identity profile] w00dy.livejournal.com
тю ребе, тут жеж всё написано. Одинаковый сид даёт одинаковые последовательности, для удобства.

Date: 2012-10-04 08:59 am (UTC)
From: [identity profile] denis dmitriev (from livejournal.com)
Плюсую. Очень удобно тестить, если валиться где-то внутре в зависимости от цен на дрова в бухте Дикси.
Или, к примеру, некая структура генериться рандомом и ошибка вылезает только на некоторых вариантах.
Всобачил одинаковый сид и повторяй себе до усрачки.

Date: 2012-10-04 09:02 am (UTC)
From: [identity profile] berezovsky.livejournal.com
То, что одинаковый сид даёт одинаковые последовательности, полезно для какой-нибудь мрачной отладки.
Тем более, если эта последовательность из объектов разных типов. Ихний рандом такое позволяет, хотя хз, встречается ли такое на практике.

Date: 2012-10-04 09:14 am (UTC)
From: [identity profile] jakobz.livejournal.com
Концептуально оно правильнее - разные куски программы не должны никак быть завязаны между собой, в том числе и через генератор случайных чисел.

Плюс, вероятно, со статиком им бы как-то пришлось разруливать многопоточность, а так это проблема программиста.

Date: 2012-10-04 09:34 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Да. Но нужно было добавить к нему пару статических методов, когда по фигу, какой seed.

Date: 2012-10-04 09:34 am (UTC)
From: [identity profile] freiksenet.livejournal.com
Сид же. И нужен стейт, чтобы знать на каком месте в последовательности ты сейчас находишься. Можно в хаскеле посмотреть, там всё просто и понятно.

Date: 2012-10-04 12:28 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Да. Нужно бывает в тестировании, например.

Date: 2012-10-04 07:51 pm (UTC)
From: [identity profile] sbj-ss.livejournal.com
Ну а чего, вспомнилось из жизни. Надо было каждому сеансу пользователя приписать свой идентификатор. О безопасности речи в данном контексте не идёт. Во времена MS SQL 2000 использовалась newid(), но это десятикратное падение производительности. Переписано на random, причём на собственный - т.е. с наличием таблички состояния. Достоинство: а понятно вроде.
Была такая весёлая задачка: на Трубо Паскакале зажечь рандомные точки на экране и погасить назад, не используя память. Через randseed, да. А глобальный генератор не дал бы удалить триггер, он следит за флажком глобальности.
И вообще в базе можно сделать много больше, чем люди привыкли делать :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 9th, 2025 11:29 am
Powered by Dreamwidth Studios