Ферма показал, что если
Утверждение, обратное малой теореме Ферма, неверно, потому что, подобно тому как юноша с фальшивым удостоверением личности может обмануть самого сурового вышибалу, некоторые составные числа проходят такой тест. Наименьшее из этих чисел – 341. (Хотя этот пример, кажется, был открыт только в 1819 году!) Другой пример – то самое подлое число 4 294 967 297, одурачившее Ферма. И таких чисел бесконечно много.
Однако их наличие не делает тест бесполезным, он просто несовершенен. Внешний мир часто думает, что математика – это наука о безупречном и определенном, однако несовершенные вещи нам тоже нравятся, особенно если мы знаем границы их несовершенства. Вот как можно сгенерировать большие простые числа методом проб и ошибок. Напишите трехсотзначное число. Примените к нему тест Ферма (или лучше его современный вариант: тест Миллера – Рабина). Если число не прошло тест, выберите другое и повторите попытку. Продолжайте, пока не наткнетесь на то, которое пройдет тест.
Все вышеизложенное возвращает нас к компьютерному го. Игра го намного старше шашек и шахмат и (просто для разнообразия!) действительно древняя и китайская. С другой стороны, машины, играющие в го, появились позже автоматов для других игр. Еще в 1912 году испанский математик Леонардо Торрес-и-Кеведо построил машину «Шахматист» (El Ajedrecista), которая умела разыгрывать некоторые шахматные эндшпили, а Алан Тьюринг изложил план функционального шахматного компьютера в 1950-х годах. Сама идея автомата, играющего в шахматы, еще старше: она восходит к «Шахматному турку» Вольфганга фон Кемпелена, чрезвычайно популярному автомату в XVIII и XIX веках, который вдохновлял Чарльза Бэббиджа, озадачивал Эдгара По[275]
и ставил мат Наполеону, однако на самом деле управлялся человеком небольшого роста, скрытым внутри механизма[276].Первая компьютерная программа, играющая в го, появилась только в конце 1960-х: ее написал Альберт Зобрист в рамках свой диссертации по информатике в Висконсинском университете. В 1994 году, когда «Чинук» на равных сражался с Марионом Тинсли, машины были бессильны против профессиональных игроков в го. Но, как выяснил Ли Седоль, все быстро изменилось.
Что делает высококлассная машина для игры в го (например, AlphaGo) без притаившегося внутри маленького человека, двигающего детальки? Она не маркирует каждый узел дерева го буквой В или П (буква Н не нужна, потому что в стандартном варианте го нет ничьих). Дерево го очень высокое и густое, никто не может справиться с этой чертовой штукой. Однако, как и в тесте Ферма, мы можем ограничиться приближением – функцией, которая присваивает каждой позиции на доске определенное число с помощью какого-то легкого вычисления. Это число должно быть большим, если позиция хороша для игрока, собирающегося делать ход, и маленьким, если ситуация на доске благоприятна для его противника. Наличие такой оценки предлагает стратегию: среди всех доступных ходов вы выбираете тот, который оставляет противнику позицию с наименьшим числом, так вы ставите противника в наихудшее из потенциально возможных положений. Полезно представить себя внутри подобного алгоритма. Вы занимаетесь повседневными делами и каждый раз, принимая какое-то решение (например, я хочу шоколадный круассан, миндальный круассан или бейгл?), быстро перебираете все имеющиеся варианты. Для каждого почти мгновенно высвечиваются какие-то числовые значения и складываются в общую оценку каждого вида выпечки: вкус плюс насыщение минус цена минус количество углеводов и т. д. Это звучит одновременно и грандиозно, и фантастически устрашающе.