Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рандом, Случайные числа 
:(
    Опции темы
FelikZ
Дата 12.3.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Привет! Возможно ли предсказать какое значение вернет генератор случ. чисел? Если да то что для этого нужно знать.
Спасибо!


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Akina
Дата 12.3.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Вообще-то на то он и рандом.
Однако если это псевдорандом, то можно - для этого надо знать инициализирующее значение и номер текущего псевдослучайного.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FelikZ
Дата 13.3.2008, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Цитата(Akina @  12.3.2008,  23:20 Найти цитируемый пост)
инициализирующее значение и номер текущего псевдослучайного.

Эм smile Можно пожалуйста объяснить что-это для чайника :?)


--------------------
user posted image
PM WWW ICQ Skype   Вверх
marykone
Дата 13.3.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2722
Регистрация: 2.5.2006
Где: Краснодар

Репутация: нет
Всего: 67



random если не ошибаюсь работает по принципу 

берется время к нему прибавляется число

а вообще залезьте посмотрите описание ее   


--------------------
получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы).

PM   Вверх
Akina
Дата 13.3.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(marykone @  13.3.2008,  11:00 Найти цитируемый пост)
random если не ошибаюсь работает по принципу 

Ошибаетесь 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
xvr
Дата 13.3.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(FelikZ @ 12.3.2008,  22:00)
Привет! Возможно ли предсказать какое значение вернет генератор случ. чисел? Если да то что для этого нужно знать.
Спасибо!

Ответ зависит от того какой именно генератор и какая его внутренняя информация доступна.

PM MAIL   Вверх
FelikZ
Дата 14.3.2008, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Цитата(xvr @  13.3.2008,  11:37 Найти цитируемый пост)
Ответ зависит от того какой именно генератор и какая его внутренняя информация доступна.

Генератор на пхп. Числа генерятся раз в 10мин... Числа от 1 до 36, замечено что часто падают числа по принципу x y x/2 (например: 20 7 10 .... 34 1 17), вот я и подумал может все таки как то можно програмно это дело угадывать smile Вроде все, что извесно smile


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Denjs
Дата 14.3.2008, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата

Возможно ли предсказать какое значение вернет генератор случ. чисел? Если да то что для этого нужно знать.

Вообще-то в высшей математике есть целый раздел посвященный данному вопросу.
Там и алгоритмы, и параметры алгоритмов, и исследование цикличности.

если вкратце вспомнить и поумничать - то
генераторы псевдо случайных чисел  на самом деле цикличны - рано или поздно последовательность чисел начинает повторятся.
По крайней мере для базовых алгоритмов это доказано - у которых для расчета следующего числа берется текущее.
для таких "чистых алгоритмов" последовательность чисел после иницииации алгоритма всегда одна и та-же. По крайней мере если не примешивать туда "пракически" случайные составляющие - типа времени микросекунд момента выполнения.
Вообще зная точные параметры генератора и алгоритм можно предсказать последовательность чисел - потому и алгоритмы названы псевдо случайными.

Много посвящено исследованиям по получению равномерно-распределенных генераторов псевдо случайных чисел.
кстати параметры хороших генераторов насколько я понимаю приравниваются к гос.тайне ;)
такие последовательности могут использоваться в алгортмах шифрования.

Есть алгоритмы построения на базе равномерно распределенного генератора дающего заданное распределение чисел - т.е. можно построить генератор который будет давать случайные числа от 0 до 9 - но 2 будет выпадать в 3 раза чаще чем 5 и т.п (потому , уважающие себя технари никогда не играют с компьютерными автоматами в азартные игры ;) )

Но в общем - это все - примерно четвертый-пятый курс технического вуза на большинстве ит-шных специальностей.. 
доучитесь - и вам все расскажут ;)

___________________
А если "по топику" только достав алгоритм можно что-то сказать.
Попробуйте провести статистический анализ генерируемых им чисел - может и увидите закономерность..


Это сообщение отредактировал(а) Denjs - 14.3.2008, 02:28
PM MAIL   Вверх
Akina
Дата 14.3.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(FelikZ @  14.3.2008,  02:20 Найти цитируемый пост)
Генератор на пхп.

Значит, его исходный код доступен. Озаботьтесь. Вопросы отпадут, причем сразу все.

Цитата(FelikZ @  14.3.2008,  02:20 Найти цитируемый пост)
Числа генерятся раз в 10мин

Не влияет.

Цитата(FelikZ @  14.3.2008,  02:20 Найти цитируемый пост)
замечено что часто падают числа по принципу x y x/2 

Во-первых, это только кажется. Во-вторых, приведение случайных в диапазон может приводить к неравномерности.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FelikZ
Дата 14.3.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Цитата(Akina @  14.3.2008,  08:31 Найти цитируемый пост)
Значит, его исходный код доступен. Озаботьтесь. Вопросы отпадут, причем сразу все.

не доступен в этом и проблема :(

Цитата(Akina @  14.3.2008,  08:31 Найти цитируемый пост)
Во-первых, это только кажется. Во-вторых, приведение случайных в диапазон может приводить к неравномерности

ну просто совпадения такие примерно раз в 2 часа, с учетом интервала в 10мин, это раз в 12 раз примерно случается и уже не первый день smile

Цитата(Denjs @  14.3.2008,  02:26 Найти цитируемый пост)
если вкратце вспомнить и поумничать - то
генераторы псевдо случайных чисел  на самом деле цикличны - рано или поздно последовательность чисел начинает повторятся.

вот на это я и расчитываю smile разгадать по какому принципу это происходит smile


Цитата(Denjs @  14.3.2008,  02:26 Найти цитируемый пост)
Но в общем - это все - примерно четвертый-пятый курс технического вуза на большинстве ит-шных специальностей.. 
доучитесь - и вам все расскажут ;)

Будем ждать :(


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Aikus
Дата 15.3.2008, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Цитата(FelikZ @  14.3.2008,  12:37 Найти цитируемый пост)
не доступен в этом и проблема :(

Ктото прихватизировал пхп, вроде он был гнушный, гуглишь библиотеку и читаешь код.
PM MAIL   Вверх
mmvds
Дата 15.3.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 22.12.2007

Репутация: 1
Всего: 6



Поиск рулит http://forum.vingrad.ru/forum/topic-189808.html
Правда обсуждали ГСЧП паскалевский
PM MAIL ICQ   Вверх
FelikZ
Дата 20.3.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Немного покопавшись в исходном коде пхп, обнаружил, что рандом в пхп на самом деле тот же что и Cишный... Заглянув в исходники рандома(stdlib) а именно функции:
srand():
Код

void __cdecl srand (
        unsigned int seed
        )
{

        _getptd()->_holdrand = (unsigned long)seed;

}

И самого rand():
Код

int __cdecl rand (
        void
        )
{

        _ptiddata ptd = _getptd();

        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
            + 2531011L) >> 16) & 0x7fff );

}


Можно увидеть что выщитывание псевдо случайного числа исходит от некой переменной "_holdrand" которую мы инициализируем текущим временем(по msdn в с++) с помощью функции srand() на этапе запуска программы. Из этого сделал вывод, что зная значение "_holdrand" можно спокойно "угадывать" следущие случ. числа...
Теперь вопрос:
Возможно ли узнать чему равен "_holdrand" зная некую последовательность чисел?


--------------------
user posted image
PM WWW ICQ Skype   Вверх
v2v
Дата 20.3.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



генерация holdrand посути и будет реализованным генератором в си. если тебе удастся найти алгоритм генерации , то возможно получится предсказывать  грядущие числа .
НО как уже было сказано выше генератор случ. чисел на си  зависит от текущего времени (как минимум с точностью до миллисекунд )., так что ты должен учесть тот момент, что твоё предсказание будет иметь место только для конкретного момента времени (с точностью до миллисекунд) , а ты не можешь точно определить когда генерируется переменная holdrand ..

p.s. при паралельном одновременном вызове сишной функции rand() ( 2 вызова в одну милисекунду) в паралельных потоках, генератор выдавал одинаковые числа!

Добавлено через 3 минуты и 10 секунд
Цитата(FelikZ @  14.3.2008,  12:37 Найти цитируемый пост)
генераторы псевдо случайных чисел  на самом деле цикличны - рано или поздно последовательность чисел начинает повторятся.
вот на это я и расчитываю smile разгадать по какому принципу это происходит smile

сгенерируй 2 * MAX_RAND чисел , сохрани их в файлик и посмотри как они меняются, или когда начнёт повторятся последовательность, начнёт ли.



--------------------
PM   Вверх
maxim1000
Дата 20.3.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



для такого генератора можно попробовать такое:
берём первое значение, старшие 16 бит его мы знаем
значит, остаётся 65536 вариантов для младшей части (а значит 65536 всевозможных значений и для всего числа)
создаём 65536 таких генераторов у себя (т.е. по сути, просто переменная и функция next) и запускаем их параллельно исследуемому
на каждом шаге будут отсекаться какие-то генераторы
по идее, в конце должен остаться только один...
шагов будет максимум 2^32, хотя. наверное, можно доказать, что в самом худшем случае меньше


--------------------
qqq
PM WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1232 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.