powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Какой-от не очень рандомный рандом
13 сообщений из 38, страница 2 из 2
Какой-от не очень рандомный рандом
    #38237912
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?HettЯ хотел посвятить топик скорее вопросу рандома, придумать другой вариант без коллизий в общем-то не проблема)
Ну тогда еще раз читайте http://ru.wikipedia.org/wiki/Парадокс_дней_рождения и http://ru.wikipedia.org/wiki/Атака_«дней_рождения» до просветления. С выбранными вами диапазонами коллизии обязательно будут.

Будут, да. Но с какой периодичностью? Не 10 раз на дню, с учетом того, что берутся 2-3 записи в среднем в секунду. К тому же там добавляется таймштамп.
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238127
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
[quot Hett]?пропущено...
К тому же там добавляется таймштамп.Ну тогда у вас проблема в другом месте. http://www.php.net/manual/ru/function.srand.php Там конечно написано, что инициализация генератора происходит автоматически. Но что используется в качестве начального значения, не написано. А используется скорее всего тот же самый time(). Так что если два запроса придут одновременно, в двух параллельных потоках будет одинаково проинициализирован генератор случайных чисел, и вы получите одинаковое значение rand().
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238210
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот!
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238315
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
HettВот!Что вот? Вы же спросили, почему у вас коллизии в коде из первого сообщения. А что в реальности надо избавиться от коллизий совсем в другом коде, написали где-то мимоходом и сильно позже.
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238324
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Распределение должно быть равномерным?
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238354
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
HettРаспределение должно быть равномерным?Распределение чего?
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238403
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Возьмите serialize($_SERVER), добавьте getmypid() и microtime(). Получите md5 от всего этого и используйте в качестве уникального идентификатора.
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238717
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?HettРаспределение должно быть равномерным?Распределение чего?
Пардон, не нормальным, конечно же, а равномерным. Множества величин полученных в функцией рандом?
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238719
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, пожалуй надо отдохнуть, ведь изначально я уже правильно сформулировал.
В общем думаю ясно.
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38238723
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Там конечно написано, что инициализация генератора происходит автоматически
Да, там написано

авторУстанавливает начальное число генератора случайных чисел в seed или случайное число , если seed не указан.
Я понимаю, что это случайное число не случайно, но каким образом я бы мог сделать его еще случайнее с помощью инициализации srand() если эта инициализация уже проводилась?
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38239060
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Hett, вообще-то нужны не случайные, а просто разные числа. Понятно, что какие бы преобразования с одинаковыми исходными данными не делались, результат будет одинаковый. Поэтому нужно найти что-то, что отличается от запроса к запросу. Текущее время это конечно хорошо, но может и совпасть. Можно добавить getmypid() - идентификатор процесса. На линуксе одновременные запросы обычно обрабатываются в разных процессах. Можно посмотреть на параметры самого запроса - с какого адреса и порта пришел: $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT']. Вряд ли два запроса одновременно придут с одного адреса и порта. Если в апаче загружен mod_unique_id, в $_SERVER['UNIQUE_ID'] должна быть уникальная строка. Можно в конце концов полезть в /dev/urandom под линуксом или в cryptoapi под виндой.
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38239155
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?Hett, вообще-то нужны не случайные, а просто разные числа. Понятно, что какие бы преобразования с одинаковыми исходными данными не делались, результат будет одинаковый. Поэтому нужно найти что-то, что отличается от запроса к запросу. Текущее время это конечно хорошо, но может и совпасть. Можно добавить getmypid() - идентификатор процесса. На линуксе одновременные запросы обычно обрабатываются в разных процессах. Можно посмотреть на параметры самого запроса - с какого адреса и порта пришел: $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT']. Вряд ли два запроса одновременно придут с одного адреса и порта. Если в апаче загружен mod_unique_id, в $_SERVER['UNIQUE_ID'] должна быть уникальная строка. Можно в конце концов полезть в /dev/urandom под линуксом или в cryptoapi под виндой.
Месье знает толк в извpащениях! (честно не мое xD)
...
Рейтинг: 0 / 0
Какой-от не очень рандомный рандом
    #38301185
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pseudo-Random vs. True Random оставлю это здесь
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Какой-от не очень рандомный рандом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]