![]() |
|
|
![]()
|
|
| FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Привет! Возможно ли предсказать какое значение вернет генератор случ. чисел? Если да то что для этого нужно знать.
Спасибо! -------------------- ![]() |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Вообще-то на то он и рандом.
Однако если это псевдорандом, то можно - для этого надо знать инициализирующее значение и номер текущего псевдослучайного. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Эм -------------------- ![]() |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: нет Всего: 67 |
random если не ошибаюсь работает по принципу
берется время к нему прибавляется число а вообще залезьте посмотрите описание ее -------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Ответ зависит от того какой именно генератор и какая его внутренняя информация доступна. |
|||
|
||||
| FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Генератор на пхп. Числа генерятся раз в 10мин... Числа от 1 до 36, замечено что часто падают числа по принципу x y x/2 (например: 20 7 10 .... 34 1 17), вот я и подумал может все таки как то можно програмно это дело угадывать -------------------- ![]() |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Вообще-то в высшей математике есть целый раздел посвященный данному вопросу. Там и алгоритмы, и параметры алгоритмов, и исследование цикличности. если вкратце вспомнить и поумничать - то генераторы псевдо случайных чисел на самом деле цикличны - рано или поздно последовательность чисел начинает повторятся. По крайней мере для базовых алгоритмов это доказано - у которых для расчета следующего числа берется текущее. для таких "чистых алгоритмов" последовательность чисел после иницииации алгоритма всегда одна и та-же. По крайней мере если не примешивать туда "пракически" случайные составляющие - типа времени микросекунд момента выполнения. Вообще зная точные параметры генератора и алгоритм можно предсказать последовательность чисел - потому и алгоритмы названы псевдо случайными. Много посвящено исследованиям по получению равномерно-распределенных генераторов псевдо случайных чисел. кстати параметры хороших генераторов насколько я понимаю приравниваются к гос.тайне ;) такие последовательности могут использоваться в алгортмах шифрования. Есть алгоритмы построения на базе равномерно распределенного генератора дающего заданное распределение чисел - т.е. можно построить генератор который будет давать случайные числа от 0 до 9 - но 2 будет выпадать в 3 раза чаще чем 5 и т.п (потому , уважающие себя технари никогда не играют с компьютерными автоматами в азартные игры ;) ) Но в общем - это все - примерно четвертый-пятый курс технического вуза на большинстве ит-шных специальностей.. доучитесь - и вам все расскажут ;) ___________________ А если "по топику" только достав алгоритм можно что-то сказать. Попробуйте провести статистический анализ генерируемых им чисел - может и увидите закономерность.. Это сообщение отредактировал(а) Denjs - 14.3.2008, 02:28 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Значит, его исходный код доступен. Озаботьтесь. Вопросы отпадут, причем сразу все. Не влияет. Во-первых, это только кажется. Во-вторых, приведение случайных в диапазон может приводить к неравномерности. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| FelikZ |
|
||||||||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
не доступен в этом и проблема :(
ну просто совпадения такие примерно раз в 2 часа, с учетом интервала в 10мин, это раз в 12 раз примерно случается и уже не первый день
вот на это я и расчитываю
Будем ждать :( -------------------- ![]() |
||||||||
|
|||||||||
| Aikus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 29.11.2007 Репутация: нет Всего: 1 |
||||
|
||||
| mmvds |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: 1 Всего: 6 |
||||
|
||||
| FelikZ |
|
||||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Немного покопавшись в исходном коде пхп, обнаружил, что рандом в пхп на самом деле тот же что и Cишный... Заглянув в исходники рандома(stdlib) а именно функции:
srand():
И самого rand():
Можно увидеть что выщитывание псевдо случайного числа исходит от некой переменной "_holdrand" которую мы инициализируем текущим временем(по msdn в с++) с помощью функции srand() на этапе запуска программы. Из этого сделал вывод, что зная значение "_holdrand" можно спокойно "угадывать" следущие случ. числа... Теперь вопрос: Возможно ли узнать чему равен "_holdrand" зная некую последовательность чисел? -------------------- ![]() |
||||
|
|||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
генерация holdrand посути и будет реализованным генератором в си. если тебе удастся найти алгоритм генерации , то возможно получится предсказывать грядущие числа .
НО как уже было сказано выше генератор случ. чисел на си зависит от текущего времени (как минимум с точностью до миллисекунд )., так что ты должен учесть тот момент, что твоё предсказание будет иметь место только для конкретного момента времени (с точностью до миллисекунд) , а ты не можешь точно определить когда генерируется переменная holdrand .. p.s. при паралельном одновременном вызове сишной функции rand() ( 2 вызова в одну милисекунду) в паралельных потоках, генератор выдавал одинаковые числа! Добавлено через 3 минуты и 10 секунд сгенерируй 2 * MAX_RAND чисел , сохрани их в файлик и посмотри как они меняются, или когда начнёт повторятся последовательность, начнёт ли. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
для такого генератора можно попробовать такое:
берём первое значение, старшие 16 бит его мы знаем значит, остаётся 65536 вариантов для младшей части (а значит 65536 всевозможных значений и для всего числа) создаём 65536 таких генераторов у себя (т.е. по сути, просто переменная и функция next) и запускаем их параллельно исследуемому на каждом шаге будут отсекаться какие-то генераторы по идее, в конце должен остаться только один... шагов будет максимум 2^32, хотя. наверное, можно доказать, что в самом худшем случае меньше -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |