Меню

Как узнать какие числа выпадут в генераторе случайных чисел

Генератор случайных чисел!

Для просмотра формул ваш браузер должен поддерживать MathML.

Интересует взаимосвязь генератора случайных чисел и теории вероятностей. Что можно сказать по этому поводу?
В моем понятии генератор случайных чисел — это что-то, что построено только потому, что существует сама теория вероятностей. ГСЧ является применением ТВ на практике. Т.е. в принципе ГСЧ подчиняется законам ТВ, а соответственно в какой-то степени можно предсказывать тот или иной результат.

С другой стороны ГСЧ — просто ни к чему не привязанный алгоритм, который работает сам по себе, не опираясь на исход предыдущих опытов

Представим, что имеется шанс выпадения орла равный 10%. С ГСЧ было проведено 9 опытов и выпадала решка. С одной стороны алгоритму без разницы на исход следующего опыта. С другой стороны вроде бы следующим должен(не знаю, уместно ли слово «должен») упасть орел. Можно ли утверждать, что с большой долей вероятности выпадет орел или же все просто как палка и шанс выпадения орла останется 10%? Скорее всего, что все просто как палка и шанс орла на 10м опыте останется 10%. Но, если я возьму 100 абсолютно одинаковых ГСЧ, на каждом из них соберу по 9 опытов подряд с результатом «решка» и начну спорить с кем-либо, что последующий 10ый опыт на каждом из 100 ГСЧ даст более чем 10 «орлов» в итоге, окажусь ли я правым или проиграю спор?

Как правило,, для формирования случайных чисел
А. сначала формируется последовательность элементов (двоичных или других), которые равновероятны и взаимонезависимы (псевдо).В двоичном случае закон распределения идентичен испытаниям «орел-решка». По поводу равновероятности и независимости посмотрите, к примеру, свойства линейных рекуррентных последовательностей.
Б. она преобразуется в последовательность «случайных» чисел, представляющий реализацию случайного процесса с заданным распределением. Есть теории.

ГСЧ при неизменности исходных данных и запуске с исходной позиции будет вырабатывать одну и ту же последовательность. Стандартизованные ХЭШ- и ЭЦП-функции (есть стандарт РФ) — это классы ГСЧ. Новая случ. последовательность формируется, если изменились начальные условия. Для ХЭШ — это обрабатываемый текст. Для ЭЦП — текст, закрытый ключ и др. данные.

Эх если бы все так легко было все бы давно были милионерами играя на Форексе или казино, но все-таки определенные законы хаоса есть, хотя получается это уже не хаос.
Кто хоть что-то понимает в этом может посмотреть одну системку, мне лично она помогает(+интуиция):
http://www.modber.ru/catalog/item2061.html

Редактировалось 1 раз(а). Последний 23.07.2013 10:50.

есть такая книга аж 1973г. Соболь Численные методы Монте Карло. Там,насколько помню,целая глава
генераторам случайных чисел посвящена,включая методы контроля.

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

Форекс и казино- это не хаос,это другое.

Есть три известных:
1- порядковый номер генерации
2- хэш генерации
3- сгенерированое число

Можно ли обладая этими данными вычислить алгоритм генерации?
Сколько вариантов вышеуказанных данных необходимо для вычисления алгоритма?
И, как на основе этого алгоритма можно будет предуагадать следующее число имея хэш и порядковый номер?

играл в jellyfish backgammon windows 98 se в 2000-2003 году, в конце уже в матче из 3-9 партий набирал больше чем самый сильный уровень программы, тупо интуицией «взломал» гсч машинки 🙂 человек сильнее любой машины, нужно только желание и ресурсы. с тех пор играю только в игры с полной информацией с машиной и то неохотно. всегда можно или посмотреть исходник или дизассемиблировать программу и «положить на лопатки»

Редактировалось 1 раз(а). Последний 19.06.2019 10:54.

Есть три известных числа:
Первое число 257
Второе число 0587938
Третье число 26
Каждый раз они меняются:
258
87
1974987

185
96
1562592
Как исходя из этих данных вычислить алгоритм генерации второго числа?
И каков будет алгоритм?

если алгоритм гсч «посолен», (например, два каких-то знака температуры камня и(или) последние байты занятого объема оперативки и(или) время в микросекундах от запуска скажем, алгоритма с солью в момент расчета, или еще Бог знает что можно напридумывать), — то нельзя НИКАК.

Редактировалось 1 раз(а). Последний 19.06.2019 20:59.

Цитата
phenix
Есть три известных числа:
Первое число 257
Второе число 0587938
Третье число 26
Каждый раз они меняются:
258
87
1974987

185
96
1562592
Как исходя из этих данных вычислить алгоритм генерации второго числа?
И каков будет алгоритм?

например в рулетке из 37 чисел идет генерация по сумме своих чисел поэтому там встречаются часто комбинации 13-31 6-15 23-32 2-29 12-21 или все 9 видов по 4 числа или добавлением 0 ..10-20-30 что добавляет 10 вид за счет которого система идет в + то же самое в покере туз играет как 1 и как высшая карта 14 поэтому если понаблюдать (я 16 лет постоянно играю в покер от 10 столов до 20 ) то частота выпадения туза выше других видов карт —так как генератор туза видит 8 тузов а не 4 и кроме этого генерация по сумме своих чисел 1-14-5 2-валет (11) 3-дама(12) 4-корль(13) 6-7-8-9 без пар 10-1(туз)-5-14(туз) —но это начало как в рулетке так и в картах потом идет генерация 3-6-9 11 . 5.. простых значении тем более в 36 чисел у нас 12 кратных 3 . четных и нечетных простых не кратных 3 почти одинаковое количество кроме 1..25 и 35 но к простым добавляется четное 2 и 3 выходит одинаковое количество четных и простых не кратных 3 но включая 3 как простое . и если играть например четное нечетное то лучше всегда играть четное не кратное 3 и простые числа вместо нечетных .при честной игре нет разницы что живой дилер что электро. в покере при 9 участниках если ва-банк пойдут 4 игрока и из них у трех есть туз то на столь 80% падает 4 туз. то же самое в рулетке больше всего шанс выпадания последующего числа по сумме своих чисел больше чем другого вида чисел.

Читайте также:  Главный генератор тепловоза тэм7а

даже в вашем примере 258=87=96=6 или 257=185=5 шанс выпадения после 258 например 87 или 96 больше

Редактировалось 6 раз(а). Последний 25.06.2019 00:49.

Источник

Номера в лотереях, которые чаще других приносят удачу

Принцип лотереи устроен таким образов, что выигрышная комбинация может состоять из любых случайных чисел. Но, как показывает практика, некоторые номера по необъяснимым причинам чаще остальных присутствуют в выигрышных комбинациях. Этот феномен заинтересовал специалистов, и они провели исследование изучающее поведение разных номеров. За основу была взята лотерейная статистика практически со всего земного шара.

Эксперимент проводилось в 2017 году. Специалисты сравнили данные большой выборки разнообразных лотерей и определили номера, которые позволяли выигрывать чаще всего. В рамках анализа проанализировано пятнадцать самых популярных лотерей, в том числе Ирландская лотерея, игра Euromillions, PowerBall и многие другие представители игорной индустрии. В результате кропотливой работы был сформирован перечень самых удачливых номеров.

Перечень удачных номеров

  • 16. Этот номер выпал 191 раз в исследуемых лотереях. Поэтому это число получает статус «наисчастливейшее». К тому же многие знают шестнадцатеричную систему, которая является основополагающей в кибернетике, где используются числа 0-6 и буквенные обозначения A-F.
  • 22. Второе место в рейтинге удачливых номеров занимает номер 22. Силу этого числа подтверждают и нумерологи. В этой практике числу двадцать два приписывают сильнейшую способность воплощать мечты в реальную жизнь. Число 22 в нумерологии отвечает за материальное благосостояние. Оно характеризуется как практичное и приземленное. Как раз то, что нам нужно.
  • 28 и 37. Теоретики разделяют мнение о том, что целесообразно выбирать более высокие числа. Конечно, шансы на выпадение таких номеров, равны шансам любого другого числа. Однако такое предположение было выдвинуто небезосновательно. Многие люди при выборе чисел руководствуются датой рождения. Причем числа от одного до двенадцати выбирают чаще остальных. Поэтому если вы выберете более высокое число и выиграете, то необходимость в разделе главного приза с большим числом других победителей отпадет сама собой.
  • 6. На пятом месте в рейтинге самых счастливых лотерейных чисел разместился номер 6. Особое отношение к этой цифре сложилось в Китае. Восточная мудрость гласит, что оно способно привлечь небывалую удачу, поэтому многие компании часто демонстрируют его на вывесках и баннерах. Предприимчивые китайцы даже пытаются заработать денег на любви сородичей к этому числу. Номера на автомобили, в которых присутствует эта цифра, продаются на аукционах. Продавцы просят за них немалые суммы.
  • 3. Во многих культурах число три олицетворяет гармонию и совершенство. Китайцы также трепетно относятся к этой цифре. В речи жителей Поднебесной встречается много поговорок и устойчивых выражений, в которых фигурирует тройка. Часто упоминается это число и в русской культуре. Многие религии приписывают тройке особое значение. Если возьмем Библию, то там неоднократно встречается упоминание троицы. В составленном рейтинге цифра три разместилась на шестом месте.

Перечень неудачных номеров

Исследователи не оставили без внимания и числа, которые не приносят желаемого выигрыша. В список попали 18, 46, 32, а также 36 .

Анти-рейтинг удачливых чисел

Многие люди, прочитав эту статью, могут сделать вывод, что не надо смотреть на перечисленные номера, так как они реже остальных встречаются в выигрышных комбинациях. Но развивая эту теорию дальше, можно выявить интересную закономерность. Выбирая номера, которые остальные игроки игнорируют, вы повышаете размер вероятного джекпота при равных шансах на победу. Ведь в случае выигрыша вам не придется делить его с другими участниками.

Система для выбора номеров в лотерейных билетах

Теперь читатели знают список самых удачливых и самых неудачных номеров в лотерейных билетах. Какие же выбрать? Руководствоваться при выборе этой информацией или опираться на свои собственные счастливые цифры?

Быстрота и удобство онлайн-лотерей позволят вам опробовать обе техники и сделать вывод самостоятельно. По данным исследования чаще всего в выигрышных комбинациях присутствуют числа 16, 22, 3, 6, а также 28 и 37. Однако многие игроки составляют комбинации исходя из собственно разработанных стратегий. И такой подход тоже работает. Большое количество лотерейных победителей доказали это на собственном примере.

Игрок из Канады воспользовался необычным способом выбора чисел и стал обладателем внушительного джекпота, который составил шестьдесят миллионов долларов. На протяжении тридцати лет он отмечал в лотерейных билетах одни и те же цифры. И наконец-то такое упорство было вознаграждено, канадец стал долларовым миллионером. При этом Ричарду Люстингу не только удалось победить. Он стал обладателем одного из самых больших выигрышей за время существования лотереи USA Powerball. На этом удача его не покинула, он входил в число победителей несколько раз.

Любитель лотерейных розыгрышей стал автором книги, в которой он подробно рассказывает о выбранной стратегии и дает практические советы, как выиграть в лотерею другим игрокам. Такой предприимчивости можно позавидовать.

Даже несмотря на исследования и советы опытных игроков, выбор чисел всегда остается за вами. Однако если вы нуждаетесь в подсказке, то можно попробовать поставить на счастливые номера. Поучаствуйте в лотерейном розыгрыше прямо сейчас и проверьте уровень своего везения на практике.

Читайте также:  Замена щеток генератора рено премиум dxi

Источник

Каким образом можно угадать любое случайное число, которое было сгенериновано сайтом?

Раньше в качестве «генераторов случайных чисел» часто использовали компьютерные алгоритмы. Это не совсем корректно, потому что результаты, хоть и с большим трудом и с помощью вычислительных машин, было возможно предсказать. Так, например, один умник из США смог обмануть систему и просчитать алгоритм какой-то игры на деньги.

В настоящее время среди генераторов случайных чисел можно выделить два типа: генераторы псевдослучайных чисел, и генераторов настоящих случайных чисел (названия импровизированные).

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

С генераторами настоящих случайных чисел всё несколько сложнее. Для их работы необходимы физические источники, так как результаты должны быть детерминированы. Идеальным физическим источником является квантовая система: насколько известно современной науке, поведение квантовой системы абсолютно непредсказуемо и хаотично. Проблема такого источника, в первую очередь, заключается в дороговизне. Поэтому большинство сайтов, предоставляющих услуги генерации случайных чисел, в своих целях используют молнию: предсказать траекторию и место удара молнии практически невозможно. При большом желании и наличии мощных вычислительных машин, можно только распределить вероятность попадания молнии в то или иное место.

Таким образом, отвечая на вопрос, можно сказать, что для предсказания «случайного» числа, нужно понимать, с каким сайтом вы имеете дело. Если это очень старый сайт, то есть вариант понаблюдать за его поведением и результатами, и вывести алгоритм. Если это генератор псевдослучайных чисел, то можно попробовать понять, откуда сайт берёт первоначальные числа (как в примере с кубиком). Часто это количество запросов в каком-либо поисковике за единицу времени, либо количество посетителей сайта. Если речь о генераторе настоящих случайных чисел, то здесь с огромными усилиями можно лишь определить наиболее вероятный исход.

Источник

Подробно о генераторах случайных и псевдослучайных чисел

Введение

Генераторы случайных чисел — ключевая часть веб-безопасности. Небольшой список применений:

  • Генераторы сессий (PHPSESSID)
  • Генерация текста для капчи
  • Шифрование
  • Генерация соли для хранения паролей в необратимом виде
  • Генератор паролей
  • Порядок раздачи карт в интернет казино

Как отличить случайную последовательность чисел от неслучайной?

Пусть есть последовательность чисел: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 . Является ли она случайной? Есть строгое определение для случайной величины. Случайная величина — это величина, которая принимает в результате опыта одно из множества значений, причём появление того или иного значения этой величины до её измерения нельзя точно предсказать. Но оно не помогает ответить на наш вопрос, так как нам не хватает информации для ответа. Теперь скажем, что данные числа получились набором одной из верхних строк клавиатуры. «Конечно не случайная» — воскликните Вы и тут же назовете следующие число и будете абсолютно правы. Последовательность будет случайной только если между символами, нету зависимости. Например, если бы данные символы появились в результате вытягивания бочонков в лото, то последовательность была бы случайной.

Чуть более сложный пример или число Пи


Последовательность цифры в числе Пи считается случайной. Пусть генератор основывается на выводе бит представления числа Пи, начиная с какой-то неизвестной точки. Такой генератор, возможно и пройдет «тест на следующий бит», так как ПИ, видимо, является случайной последовательностью. Однако этот подход не является критографически надежным — если криптоаналитик определит, какой бит числа Пи используется в данный момент, он сможет вычислить и все предшествующие и последующие биты.
Данный пример накладывает ещё одно ограничение на генераторы случайных чисел. Криптоаналитик не должен иметь возможности предсказать работу генератора случайных чисел.

Отличие генератора псевдослучайных чисел (ГПСЧ) от генератора случайных чисел (ГСЧ)

Источники энтропии используются для накопления энтропии с последующим получением из неё начального значения (initial value, seed), необходимого генераторам случайных чисел (ГСЧ) для формирования случайных чисел. ГПСЧ использует единственное начальное значение, откуда и следует его псевдослучайность, а ГСЧ всегда формирует случайное число, имея в начале высококачественную случайную величину, предоставленную различными источниками энтропии.
Энтропия – это мера беспорядка. Информационная энтропия — мера неопределённости или непредсказуемости информации.
Можно сказать, что ГСЧ = ГПСЧ + источник энтропии.

Уязвимости ГПСЧ

  • Предсказуемая зависимость между числами.
  • Предсказуемое начальное значение генератора.
  • Малая длина периода генерируемой последовательности случайных чисел, после которой генератор зацикливается.

Линейный конгруэнтный ГПСЧ (LCPRNG)

Распространённый метод для генерации псевдослучайных чисел, не обладающий криптографической стойкостью. Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа m, задаваемой следующей формулой:

где a (multiplier), c (addend), m (mask) — некоторые целочисленные коэффициенты. Получаемая последовательность зависит от выбора стартового числа (seed) X0 и при разных его значениях получаются различные последовательности случайных чисел.

Читайте также:  Замена подшипников в генераторе опель астра h

Для выбора коэффициентов имеются свойства позволяющие максимизировать длину периода(максимальная длина равна m), то есть момент, с которого генератор зациклится [1].

Пусть генератор выдал несколько случайных чисел X0, X1, X2, X3. Получается система уравнений

Решив эту систему, можно определить коэффициенты a, c, m. Как утверждает википедия [8], эта система имеет решение, но решить самостоятельно или найти решение не получилось. Буду очень признателен за любую помощь в этом направлении.

Предсказание результатов линейно-конгруэнтного метода

Основным алгоритмом предсказания чисел для линейно-конгруэнтного метода является Plumstead’s — алгоритм, реализацию, которого можно найти здесь [4](есть онлайн запуск) и здесь [5]. Описание алгоритма можно найти в [9].
Простая реализация конгруэнтного метода на Java.

Отправив 20 чисел на сайт [4], можно с большой вероятностью получить следующие. Чем больше чисел, тем больше вероятность.

Взлом встроенного генератора случайных чисел в Java

Многие языки программирования, например C(rand), C++(rand) и Java используют LСPRNG. Рассмотрим, как можно провести взлом на примере java.utils.Random. Зайдя в исходный код (jdk1.7) данного класса можно увидеть используемые константы

Метод java.utils.Randon.nextInt() выглядит следующим образом (здесь bits == 32)

Результатом является nextseed сдвинутый вправо на 48-32=16 бит. Данный метод называется truncated-bits, особенно неприятен при black-box, приходится добавлять ещё один цикл в brute-force. Взлом будет происходить методом грубой силы(brute-force).

Пусть мы знаем два подряд сгенерированных числа x1 и x2. Тогда необходимо перебрать 2^16 = 65536 вариантов oldseed и применять к x1 формулу:

до тех пор, пока она не станет равной x2. Код для brute-force может выглядеть так

Вывод данной программы будет примерно таким:

Несложно понять, что мы нашли не самый первый seed, а seed, используемый при генерации второго числа. Для нахождения первоначального seed необходимо провести несколько операций, которые Java использовала для преобразования seed, в обратном порядке.

И теперь в исходном коде заменим
crackingSeed.set(seed);
на
crackingSeed.set(getPreviousSeed(seed));

И всё, мы успешно взломали ГПСЧ в Java.

Взлом ГПСЧ Mersenne twister в PHP

Рассмотрим ещё один не криптостойкий алгоритм генерации псевдослучайных чисел Mersenne Twister. Основные преимущества алгоритма — это скорость генерации и огромный период 2^19937 − 1, На этот раз будем анализировать реализацию алгоритма mt_srand() и mt_rand() в исходном коде php версии 5.4.6.

Можно заметить, что php_mt_reload вызывается при инициализации и после вызова php_mt_rand 624 раза. Начнем взлом с конца, обратим трансформации в конце функции php_mt_rand(). Рассмотрим (s1 ^ (s1 >> 18)). В бинарном представление операция выглядит так:

10110111010111100111111001110010 s1
00000000000000000010110111010111100111111001110010 s1 >> 18
10110111010111100101001110100101 s1 ^ (s1 >> 18)
Видно, что первые 18 бит (выделены жирным) остались без изменений.
Напишем две функции для инвертирования битового сдвига и xor

Тогда код для инвертирования последних строк функции php_mt_rand() будет выглядеть так

Если у нас есть 624 последовательных числа сгенерированных Mersenne Twister, то применив этот алгоритм для этих последовательных чисел, мы получим полное состояние Mersenne Twister, и сможем легко определить каждое последующее значение, запустив php_mt_reload для известного набора значений.

Область для взлома

Если вы думаете, что уже нечего ломать, то Вы глубоко заблуждаетесь. Одним из интересных направлений является генератор случайных чисел Adobe Flash(Action Script 3.0). Его особенностью является закрытость исходного кода и отсутствие задания seed’а. Основной интерес к нему, это использование во многих онлайн-казино и онлайн-покере.
Есть много последовательностей чисел, начиная от курса доллара и заканчивая количеством времени проведенным в пробке каждый день. И найти закономерность в таких данных очень не простая задача.

Задание распределения для генератора псевдослучайных чисел

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

Треугольное распределение

Приведем пример генерации случайной величины с треугольным распределением [7] на языке C99.

В данном случае мы берем случайную величину rand() и задаем ей распределение, исходя из функции треугольного распределения. Для параметров a = -40, b = 100, c = 50 график 10000000 измерений будет выглядеть так

Экспоненциальное распределение

Пусть требуется получить датчик экспоненциально распределенных случайных величин. В этом случае F(x) = 1 – exp(-lambda * x). Тогда из решения уравнения y = 1 – exp(-lambda * x) получаем x = -log(1-y)/lambda.
Можно заметить, что выражение под знаком логарифма в последней формуле имеет равномерное распределение на отрезке [0,1), что позволяет получать другую, но так же распределённую последовательность по формуле: x = -log(y)/lambda, где y есть случайная величина(rand()).

Тесты ГПСЧ

Некоторые разработчики считают, что если они скроют используемый ими метод генерации или придумают свой, то этого достаточно для защиты. Это очень распространённое заблуждение. Следует помнить, что есть специальные методы и приемы для поиска зависимостей в последовательности чисел.

Одним из известных тестов является тест на следующий бит — тест, служащий для проверки генераторов псевдослучайных чисел на криптостойкость. Тест гласит, что не должно существовать полиномиального алгоритма, который, зная первые k битов случайной последовательности, сможет предсказать k+1 бит с вероятностью большей ½.

В теории криптографии отдельной проблемой является определение того, насколько последовательность чисел или бит, сгенерированных генератором, является случайной. Как правило, для этой цели используются различные статистические тесты, такие как DIEHARD или NIST. Эндрю Яо в 1982 году доказал, что генератор, прошедший «тест на следующий бит», пройдет и любые другие статистические тесты на случайность, выполнимые за полиномиальное время.
В интернете [10] можно пройти тесты DIEHARD и множество других, чтобы определить критостойкость алгоритма.

Источник

Adblock
detector