Алгоритмы для жизни: Простые способы принимать верные решения - [87]

Шрифт
Интервал

Рабин понял, что в данной ситуации шаг за пределы обычного «детерминированного» мира информатики может стать весьма значимым. Если число n не является простым, сколько возможных значений x дадут ложноположительный ответ, объявив n простым числом? Ответ, как показал Рабин, – одна четвертая. Так что для случайного значения x, если уравнение Миллера выходит верным, шанс, что число n не является простым, равен одному из четырех. И самое главное, каждый раз, когда мы берем случайное значение x и проверяем уравнение Миллера, вероятность, что число n только кажется простым, но не является таковым, снижается еще на одно число, кратное четырем. Повторите процедуру 10 раз, и вероятность ложноположительного результата будет равна одной четверти в десятой степени – меньше, чем один шанс из миллиона. Все еще не хватает достоверности? Проверьте еще пять раз, и вероятность снизится до одной миллиардной.

Воган Пратт, еще один информатик из MIT, применил алгоритм Рабина на практике. Однажды зимним вечером, когда Рабин отмечал с друзьями Хануку, ему позвонил Пратт. Рабин вспоминает тот полуночный звонок:

«Майкл, это Воган. Я получил результат этих экспериментов. Бери ручку с бумагой и записывай». И у него вышло, что 2400 – 593 – простое число. Обозначим как k произведение всех простых чисел p, меньших 300. Числа k × 338 + 821 и k × 338 + 823 – числа-близнецы[31]. Это были самые большие из известных на тот момент чисел-близнецов. У меня волосы встали дыбом! Это было невероятно! Это было просто невероятно.

Тест Миллера – Рабина на простоту чисел, как теперь известно, дает возможность быстро определить, являются ли простыми даже огромные числа, с произвольно заданной степенью точности.

Здесь мы могли бы задаться философским вопросом о значении слова «являться». Мы так привыкли к тому, что математика – царство точности, что не можем допустить мысли о том, что число может быть «вероятно простым» или «почти определенно простым». Какая достоверность достаточно достоверна? На практике современные шифровальные системы – те, что шифруют интернет-подключения и цифровые транзакции, – настроены на ложноположительные результаты в одном случае на миллион миллиардов миллиардов. Другими словами, это десятичная дробь, начинающаяся с двадцати четырех нулей после запятой, – и это меньше одного ложного простого числа на все количество песчинок на земле. Это значение получается после всего лишь сорока применений теста Миллера – Рабина. Вы действительно никогда не можете быть абсолютно уверены, но вы можете подойти очень близко к этому состоянию. И очень быстро.

Даже если вы никогда не слышали о тесте Миллера – Рабина, о нем хорошо осведомлены ваш ноутбук, планшет или телефон. Спустя несколько десятилетий с момента открытия он все еще остается основным методом, используемым для поиска и проверки простых чисел во многих областях. Он незримо работает, когда вы расплачиваетесь кредитной картой онлайн, и задействован практически каждый раз, когда защищенные коммуникации передаются по воздуху или по проводам.

В течение многих лет после открытия Миллера и Рабина оставалось неясным, будет ли когда-нибудь изобретен эффективный алгоритм для проверки простоты чисел по детерминированным стандартам с абсолютной точностью. В 2002 году такой метод был открыт Маниндрой Агравалом, Нираджем Каялом и Нитином Саксеной в Индийском институте технологий, но рандомизированные алгоритмы, подобные тесту Миллера – Рабина, работают гораздо быстрее и сегодня используются чаще всего.

Что же касается некоторых других задач, случайность по-прежнему остается единственным ключом к эффективным решениям. Вот один любопытный математический пример, известный как проверка полиномиального тождества. Если есть два многочлена: 2x3 + 13x2 + 22x + 8 и (2x + 1) × (x + 2) × (x + 4) – и вычисление обоих будет произведено фактически одним и тем же способом: произвести все умножения, затем сравнить результаты, – то это займет слишком много времени, тем более что число переменных растет.

И снова случайность приходит на помощь: просто возьмите случайные значения числа x и подставьте в выражение. Если два выражения не тождественны, то будет большим совпадением, если вы получите один и тот же ответ при подстановке случайно выбранных значений. И будет еще бóльшим совпадением, если вы снова получите одинаковый ответ, подставив случайные значения во второй раз. И куда бóльшим совпадением, если это произойдет трижды подряд. Так как не существует ни одного известного детерминированного алгоритма для эффективной проверки полиномиального тождества, то этот рандомизированный метод (с многочисленными повторениями, позволяющими максимально приблизиться к «почти точности») – единственный практический из имеющихся.

Хвала методу выборки

Проверка полиномиального тождества демонстрирует, что зачастую нам лучше сосредоточить усилия на расчете случайных величин (например, значений двух выражений, о которых мы хотим что-то узнать), чем пытаться распутать хитросплетения их внутренних взаимосвязей. Это кажется более-менее наглядным. Если вам дадут пару непонятных гаджетов и попросят определить, два ли это разных устройства или копии одного и того же, большинство из нас скорее начнут нажимать на разные кнопки, нежели взломают корпус и начнут рассматривать соединения проводов. И мы не особенно удивляемся, когда киношный наркобарон вскрывает ножом несколько упаковок наугад, чтобы удостовериться в качестве всей партии.


Рекомендуем почитать
Особенности личностного и семейного функционирования родственников наркозависимых

В монографии представлен аналитический обзор современной литературы, отражающий основные научные подходы к изучению родственников больных с аддиктивными расстройствами. В работе описываются особенности личностного и семейного функционирования различных категорий родственников больных, страдающих героиновой наркоманией, в сопоставлении с показателями их сверстников из нормативной выборки. Нормативная группа включала практически здоровых лиц, не имеющих выраженных нарушений социальной адаптации. Среди членов семьи нормативной группы отсутствовали лица, страдающие наркотической зависимостью, выраженными нервно-психическими или тяжелыми хроническими соматическими заболеваниями. Описан характер семейной и личностной дисфункциональности родственников наркозависимых, в частности, среди показателей семейного функционирования особое внимание уделено таким, как: нарушение семейного климата и уровня организации семьи, снижение показателей семейной социокультурной ориентации.


Страх ничего не решает

Именно страх рождает разочарования и застой в нашей жизни, лишая ее целей и радости. Вместо того чтобы искать способы ужиться со страхом или примириться с ним, стоит сделать выбор в пользу высших устремлений и бесстрашия. Мы можем изгнать страх из нашей жизни. Эта книга вдохновляет и заставляет задуматься, являясь как историей личной победы, так и пособием по внутренней трансформации. Для того, кто мечтает прийти к своему высшему «я», воплотить мечты, жить радостной и наполненной жизнью, страх ничего не решает!


На пути к новой пенитенциарной ролевой парадигме

Монографическое исследование на основе ролевой теории (теории ролей), современных концепций психологии, социологии, конфликтологии и юриспруденции представляет собой нестандартный анализ пенитенциарного процесса. В результате исследования выявляются универсальные факторы, которые приводят процесс исполнения наказания в виде лишения свободы в состояние криминального кризиса. Краеугольным камнем исследования стал вывод о том, что первопричиной конфликтов в местах лишения свободы с криминальной динамикой является наличие у сотрудников архаичной пенитенциарной парадигмы применения власти.


Психологика успешности от А до Я

Успешность – это реальность или призрак? Ради неё многие люди готовы на всё! Но как её достичь? Использовать логику или довериться случаю? Эта книга поможет достичь подлинной успешности и счастья в жизни! Почему бы не начать её читать? Несомненно вы найдёте много полезного для своей жизни!


Кокология 2

«Кокология» – модная японская игра, представляющая собой серию увлекательных психологических тестов, – входит сегодня в число популярнейших американских бестселлеров. «Кокология-2» предлагает читателям более 50 совершенно новых тестов, рассчитанных как на опытных кокологов, так и на новичков. Кокология – наука, занимающаяся изучением кокоро, что по-японски значит «ум» или «дух», – предлагает вам совершенно безобидные на первый взгляд вопросы вроде «Какая комната в вашем воображаемом доме самая чистая?», после чего выдает на основе полученных ответов описание вашего характера, ваших помыслов и предпочтений.


Матрица `Матрице` - рознь

(О рецепте обретения “свободы” в фильме «Матрица») 1. Вот такое кино 2. Охота на человека и вопросы жизни и смерти 3. Математика и Божий Промысел 4. «Матричное» управление 5. О матрицах и эгрегорах 6. Освобождение — в Преображении содержания, а не в смене обличий.