История: узоры, которые повторяют себя

Треугольник из 1915 года

В 1915 году польский математик Вацлав Серпинский описал фигуру: возьми треугольник, вырежи из середины перевёрнутый треугольник — останутся три поменьше; из каждого вырежи середину — и так без конца. Часть фигуры похожа на целое — такие фигуры позже назовут фракталами.

шаг 0шаг 1шаг 2шаг 3
Построение Серпинского (1915): из треугольника вырезаем середину — остаются три треугольника вдвое меньше; из каждого снова вырезаем середину… Через бесконечно много шагов получается фрактал.

Тот же узор задолго до этого прятался в треугольнике Паскаля: закрась нечётные числа — получится треугольник Серпинского.

11112113311464115101051161520156117213535217118285670562881
Треугольник Паскаля: каждое число — сумма двух над ним. Закрась нечётные — и проступает треугольник Серпинского. Ровно это и считает правило (x AND y) = 0.

Автоматы без процессора

Первые игровые автоматы — Space Race и Pong (1972), Breakout (1976) — не имели процессора. Картинку на экране рисовали счётчики развёртки: они бежали по строкам вслед за лучом, а логика в каждой точке решала, есть ли тут мяч, ракетка или кирпич. Ровно так работает наша машина: счётчики X, Y и правило «гореть ли точке».

Munching Squares

В 1962 году в MIT на компьютере PDP-1 несколько строк программы рисовали на экране узор из «жующих» квадратов — Munching Squares: точка горит, если (x XOR y) < t, а t растёт с каждым кадром. Это одна из первых компьютерных анимаций. Мы соберём её не программой, а логикой.

«Игра в хаос»

В 1988 году математик Майкл Барнсли показал, что случайные шаги к вершинам треугольника рисуют треугольник Серпинского, а другие правила — папоротник и деревья. Это называют «игрой в хаос»: порядок из случайности.

1988, Барнсли:та же игра в хаос,другие правила
Папоротник Барнсли: та же «игра в хаос», только вместо «шага на полпути к вершине» — четыре правила сдвига и поворота. Случайные точки складываются в лист папоротника.

Дальше — Мандельброт

В 1980 году Бенуа Мандельброт на компьютерах IBM получил первые картинки множества, которое теперь носит его имя: z = z² + c, повторять, пока |z| не убежит. Машина рисовала точку за точкой — как наша. Это — следующий набор.

z = z² + c1980, IBM
Множество Мандельброта на экране 64 × 64 — так его нарисует следующий набор: для каждой точки повторять z = z² + c и смотреть, убежит ли z.
PDP-1 — торговая марка Digital Equipment Corporation; IBM — торговая марка IBM Corp.; Pong и Breakout — торговые марки своих владельцев. Набор не связан с ними и не одобрен ими; названия упоминаются, чтобы рассказать историю.