![]() |
рэндом- работа по алгоритму или поиск случайного?
В книге "php" (Крис Ньюмен) нашел одну интересную вещь. Здесь указывается что не бывает рэндомных значений. Все делается по алгоритму программы и если посчитать все с полным соответствием то можно предугадать резутльтат рэндомного значения.
Прямым текстом написано что не бывает воще в программировании случайных выражений все состоит строго по циклу. 1. Правду ли я прочитал? 2. (если правду) то можно ли как нибудь сделать вобще программу которая действительно будет высчитывать случайное число т.е. которое невозможно посчитать. ( я подразумеваю под тем что не человек будет например зниматся высчитыванием зарание значения рэндомного результата, а программа написанная для вычисления зарание предвиденного результата) 3. И все же, по какому алгоритму работает оператор random? 4. Хотелось бы ещё получить сведеня в целом о работе этого механизма и все что с ним связано, где его например можно применять? гже он полезен, а где можно обойтись и другим? |
Обычно это число берется с времени... т.е. скажем считывается время (милесекунды) и это число и будет случайным.
|
а мне казалось что все делается намного проще, с помощью массивов...
хотя кто какой алгоритм придумает... |
Абсолютно случайного числа сделать нельзя, все рандомы это псевдослучайные числа, предугадать ? ну в зависимости имееться ли ограничения в рандоме, если от 1 до 100 то можно, а вот больше, имхо практически невозможно. Даже граматно организованый рандом, можно сделать так что за большое время перебора нисовпадет ниодно значение...
Незнаю как в Пхп, но в Си алгоритм зависит от того как ты будешь этот рандом организовывать, тип данных, можно в зваисимости от времени и прочего. |
Sharingan->ну в принципе, я почему то уверен что можно....даже допустим по этому же времени....мы пишем программу в которую тупо забиваем время, с которого будет выведено случайное число...и по этому же алгоритму мы вычисляем результат....
Так же допустим если мы запускаем простую функцию нахожденияслучайного числа в каком либо промежутке чисел, то это число можно предугадать заглянув уже в сам код C. понимаешь меня? |
Цитата:
>>3. И все же, по какому алгоритму работает оператор random? математическому - в общем случае задается рекурентная последовательность с заданным первым элементом и большим периодом, то есть если выпало число x, то в следующий раз оно выпадет только через сравнительно большое число итераций. почитай кнута :) Цитата:
|
Ну так, смотри несмотря на время, рандом может выдать тысячи значений, ну поставишь ты такой же алгоритм, и все равно оно выдаст не то значение что срандомизировало, ну если сомниваешься, попробуй написать программу...
|
а именно на php можно? Как ты себе представляешь эту программу?
|
Цитата:
|
>>4. Хотелось бы ещё получить сведеня в целом о работе этого механизма и все что с ним связано, где его например можно применять? гже он полезен, а где можно обойтись и другим?
Псевдослучайных чисел обычно хватает за глаза. В шифровании для генерации ключа обычно используются более сильные коды, например, Win PGP просит подвигать мышкой для генерации ключа и считывает ее перемещения |
| Время: 02:29 |