Как рождается случайность |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-01-14 16:23 Случайные числа используются повсюду — создание уникальных миров в компьютерных играх, наука и даже банальные розыгрыши в контакте. Но откуда они берутся? Конечно, их генерирует компьютер. Но как он это делает? Ведь по сути компьютер умеет выполнять только простые действия — арифметические и логические операции. Нельзя просто сказать машине, что ты от неё хочешь: нужно очень строго это описать А теперь задумайтесь, как можно используя только строгие указания: какие действия и над какими числами выполнить, получить случайное число? Как получить из порядка хаос? Но люди предпринимали попытки построить алгоритм, который выдавал бы случайные числа. Например, так выглядит генератор Кнута: К1. [Выбрать число итераций.] Присвоить Y наибольшую значащую цифру Х. (Мы выполним шаги К2-К13 точно Y+1 раз, т. е. применим рандомизированные преобразования случайное число раз.) Он кажется очень сложным и, казалось бы, должен обеспечить случайность. Но на деле эти шаги приводят к получению числа 6065038420, которое зацикливает алгоритм на себя же Но получать случайные числа оказалось так важно, что люди придумали ещё один метод, назвав его пострашнее, чтобы отпугнуть рекурсию и прочих хакеров. А именно линейный конгруэнтный метод Давайте возьмём некоторое начальное число. Обзовём его икс нулевое (X0) и дадим ему значение, например, 4. Домножим его на другое число, например, 3, которое назовём множителем и обозначим a. Получится 12 Прибавим ещё одно случайное число, пусть будет 5. Его нужно назвать пострашнее, так как сложение — это слишком простое действие. Допустим, приращением. А обозначим его буквой с X0*a + c = 4*3 + 5 = 17 Теперь осуществим не такое простое действие. Поделим результат на ещё одно число, например, 7. Но возьмём не результат деления, а остаток от него. Это число обозначим буквой m, а операцию деления и взятия остатка символом процента % 17 / 7 = 2 и ещё 3 остаётся в остатке. Это число нам и нужно! Запишем всё вышеизложенное в виде итоговой формулы, а результат назовём икс-первым: X1 X1 = (X0*a + c) % m = (4*3 + 5) % 7 = 17 % 7 = 3 Поздравляю, мы только что изобрели не самый простой способ получения числа 3! Но кроме того, подставляя результат на место X0 в исходную формулу мы можем получить последовательность чисел, которая похожа на случайную! Для таких исходных данных мы получим последовательность: 3, 0, 5, 6, 2, 4, 3, 0, 5, 6, 2, 4, 3, 0…. Выглядит достаточно случайно! Но с определённого момента начинает повторяться. Дело в том, что мы ограничены константой m. Так как мы берём остаток от деления, невозможно получить таким образом больше чисел, чем число, на которое мы делим. Представьте остатки от деления чисел на 3: 1 % 3 = 1 Видно, что последовательность начинает повторяться и, если немного подумать, довольно очевидно, почему Поэтому на практике используют гораздо большие константы. Например, в языке программирования java это следующие числа: a = 25214903917 Остаётся только задать число X0. Для этого часто используется текущее время: сколько секунд прошло с 1 января 1970 года (программисты порой бывают странными), а также самые разнообразные генераторы энтропии. Это какие-то источники случайных процессов в окружающем мире. Например, испускание электронов радиоактивным элементом, шум собственного компьютера или даже космоса! Вот такая математика скрывается за каждым розыгрышем вконтакте. По этому поводу шутил математик Роберт Кавью: Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая Спасибо за чтение! Наш телеграм канал Источник: m.vk.com Комментарии: |
|