Эта головоломка моложе iPhone. Но идее, с которой она играет, — что два знака могут передать всё, если их правильно ограничить, — три века, и она до сих пор работает внутри устройства, на котором вы это читаете.
Написано и отредактировано на английском языке. Эта русская версия создана машинным переводом; там, где важна точность, авторитетным остаётся английский оригинал. Читать оригинал на английском →
Binairo — молодая головоломка. Её создали бельгийцы Петер Де Схеппер и Франк Куссеман в 2009 году — почти в тот же момент, когда итальянец Адольфо Дзанеллати придумал почти такую же игру, назвав её Tohu wa Vohu («Тоху ва-воху»). 1 Идея, очевидно, созрела: сетка, два символа и небольшой набор правил равновесия и соседства. Она появилась независимо сразу в двух странах.
В результате головоломка откликается на целую толпу имён. В зависимости от газеты или приложения, где вы её встретите, одна и та же игра называется Takuzu, Binero, Binoxxo, Tic-Tac-Logic, Binary Puzzles, Sudoku Binary и не только; «Binairo» и «Takuzu» — зарегистрированные товарные знаки в Европейском союзе. 1 Под любым именем действуют те правила, которые соблюдает этот движок: сбалансированные линии, никаких серий из трёх и никаких двух одинаковых линий. 2
Настоящий предок головоломки — сама двоичная система счисления. В 1703 году Готфрид Вильгельм Лейбниц написал Explication de l'Arithmétique Binaire («Объяснение двоичной арифметики, которая использует только знаки 1 и 0»), сформулировав мысль, что любую величину, а в конечном счёте и любое сообщение можно записать всего двумя знаками. 3 Лейбниц был настолько увлечён, что посвятил этой теме более сотни рукописей, большая часть которых так и не была опубликована. 3
Три века спустя этот двухсимвольный алфавит — основа всего цифрового, а сетка Binairo — его маленькое обнажение, которое можно решить вручную. Каждая клетка — буквально бит; готовая доска 10×10 — стобитовый узор, который удовлетворяет нескольким весьма специфическим ограничениям. Игра, по сути, тихо рассказывает об арифметике двух символов — той самой, которую изложил Лейбниц.
Посмотрите на решённую доску Binairo — и она читается как россыпь шума. Но это совсем не так. Два её правила — держать каждую линию сбалансированной и никогда не допускать, чтобы символ встретился трижды подряд, — это именно те свойства, которыми, как люди ошибочно полагают, должна обладать подлинная случайность. Когда нас просят придумать последовательность бросков монеты, большинство из нас инстинктивно держит число орлов и решек почти равным на каждом коротком отрезке и избегает серий, потому что серия кажется «неслучайной». 4
Но настоящие монеты так себя не ведут. Истинная случайность постоянно порождает серии и местные перекосы; убеждение, что она должна сама себя выправлять, — хорошо изученная ошибка игрока, коренящаяся в нашей привычке ожидать, что короткие выборки будут отражать долгосрочное среднее. 4 Binairo берёт эту ошибочную интуицию и делает её законом. Её доски вовсе не случайны: это тщательно сконструированная имитация того беспорядка, который мы себе воображаем, — аккуратнее, чем когда-либо бывает случай.
Сетка Binairo — это беспорядок по уставу: аккуратная, лишённая серий, идеально сбалансированная случайность, которой жаждет человеческая интуиция и которой настоящий случай никогда не даёт.
Вот поворот, который замыкает круг. Эти два ограничения «поддельной случайности» — не просто причуда мышления: инженеры сознательно накладывают их на реальные потоки битов, и по веским физическим причинам. Когда данные передаются по проводу или записываются на диск, длинная серия одинаковых битов опасна: приёмник может потерять синхронизацию с тактовым сигналом, а среднее напряжение сигнала может дрейфовать. Поэтому коды передачи строятся так, чтобы запрещать именно то, что запрещает Binairo.
Классический пример — кодирование 8b/10b, описанное в 1983 году Элом Уидмером и Питером Франашеком из IBM и применяемое в таких интерфейсах, как Gigabit Ethernet, USB 3.0 и ранние поколения PCI Express. Оно гарантирует, что «подряд идёт не более пяти единиц или нулей», — это ограничение длины серии, — а с помощью текущего подсчёта, называемого диспаритетом, поддерживает число единиц и нулей почти равным, так что «разница между числом единиц и нулей в строке длиной не менее 20 бит не превышает двух». 5 Ограничение длины серии и правило равновесия: два ограничения, которые инженер накладывает на здоровый поток битов, по духу совпадают с двумя ограничениями, которые доска Binairo накладывает на свои строки и столбцы.
Так скромная логическая головоломка оказывается на неожиданном перекрёстке. Её алфавит — лейбницевский, её фактура — аккуратная псевдослучайность, которой жаждет наш ум, а её правила — те самые, что сохраняют реальные данные читаемыми, пока они мчатся по оптоволокну и флеш-памяти. Заполняя сетку Binairo, уравновешивая каждую линию и отвергая каждый третий знак подряд, вы в миниатюре выполняете работу, которую микросхема линейного кодирования проделывает до сотен миллионов раз в секунду: превращаете сырые биты в поток — сбалансированный, без серий и однозначный. 2
Возможно, в этом и кроется тихая причина того, что головоломка приносит удовлетворение. Готовая доска не просто верна; она правильно построена — так же, как правильно построен чистый сигнал. Два символа, несколько ограничений, ровно один ответ — древнейшая идея вычислительной техники, превращённая в то, что можно решить вручную за чашкой кофе.