![]() |
Random. Как, собственно, он работает в общих чертах?
Вчера в голову взбрело: а как собственно он работает в общих чертах? т.е. как проходит выборка случайного (ну да, да, - псевдо-случайного, - не в этом суть) из диапазона? =))
Мат. подоплёка какая? =)) |
Ну нужен какой-то seed чтобы начать генерировать случайные числа. Этот seed калькулируется из системного времени. А потом крутится вертится и вот.
|
самый простой вариант:
RandSeed = любое число в диапазоне (0..1) NextRandom = RandSeed; следующее "случайное число": NextRandom = ДробнаяЧасть( (1+NextRandom) * (1+NextRandom) ); но это самый простейший вариант :) люди придумали все намного сложнее, нам на числовых методах очень нахваливали этот |
Да можно сделать полную случайность, которая равна что-то типа 0.000000000001, но такое мне кажется глупо. Лучше привязывать событие к католичеству попыток/действий, типа 1 к 1000, и точно знать что 1 к 1000 будет. (:
|
мысль непонятна
генераторы имеют несколько способов использования, и для некоторых случаев "случайность" должна быть контролируема. простейший пример - рандсид от пароля - и вот тебе ключ какой-хочешь длинны, тут случайность будет лишней далее вся эта кухня подчиняется законам распределения, у разных генераторов она разная, попытка "логически" привести одно распределение к другому ни к чему не хорошему приведет :) я пробывал сам по себе генератор, в большинстве своем достаточно надежный, проблемма именно в стартовых условиях. время/действия пользователя и тд, чем случайней там личче |
| Часовой пояс GMT +4, время: 02:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.