— Моделируешь?
— Да. В жизни есть много чего интересного, что можно проверить на математических моделях. Слышал про математика Джона Конвея? Сорок лет назад он придумал игру, которая имитировала настоящую жизнь — рождение, развитие и гибель организмов…
Интересно?
— Еще бы! А что здесь на экране — какие-то кружочки в квадратиках?
Алексей взял со стола листок бумаги в клетку, положил перед Юркой и нарисовал карандашом в одном из квадратиков то ли жирную кляксу, то ли маленького колобка.
— Вот смотри. Если бы это был живой организм, что бы он чувствовал?
— Не знаю. Одному ему было бы скучно.
— Точно. Вокруг клеточки, в которой он «живет», восемь соседних «ячеек», и все они — пустые. Значит — ему одиноко! А если вот так… — Алексей нарисовал вокруг первого «колобка» восемь таких же, так что получился заполненный квадрат размером три на три клетки. — Что теперь чувствует этот организм в середине?
— А теперь тесно!
— Молодец. Правила у игры Конвея очень простые: если у организма два или три соседа-элемента, то он выживает в следующем поколении. Если у него менее двух соседей, в следующем поколении он погибает от голода и одиночества. А если более трех, то в следующем поколении организм погибает от перенаселения.
— То есть эти организмы не могут жить без друзей, но если их слишком много, то тоже плохо.
— Верно. Похоже на настоящую жизнь?
— Похоже. — Юрка очень не любил оставаться один дома, ему тогда бывало скучно. Да и толпу он тоже не любил, особенно в транспорте. — Постой! Но если все только выживают или умирают, откуда появляются новые жители?
— А это и есть последнее правило. Если пустую клетку окружают ровно три соседа, то в следующем поколении там рождается новый организм.
Алексей перевернул листок и нарисовал на этот раз трех «колобков» в один ряд, похожих на маленькую гусеницу.
— Ну-ка, попробуй сам. Вычисли, что произойдет в следующем поколении.
— Сейчас… — Юрка взял карандаш. Задачки он любил, и с математикой у него в школе было все в порядке. — У «колобка», что посредине, два соседа, значит, он выживет. У двух крайних только один сосед в центре — значит, они погибнут. А новые колобки появятся… — он окинул взглядом клетки, находящиеся возле «гусеницы», и быстро пометил точками две клетки «над» и «под» гусеницей, у которых было ровно три соседа, стер ластиком «обреченные» клетки и дорисовал две новые. Получилась такая же фигура, только развернутая поперек!
— Правильно! А что будет в следующем поколении?
— Опять все вернется, как было, — быстро сообразил Юрка.
— Именно! Ты только что изучил одну из простейших фигур. Называется «мигалка». — Алексей повернулся к монитору, кликнул мышью (экран очистился, оставив пустую сетку) и быстро «поместил» в три клетки организмы, составившие «гусеницу», нажал на кнопку «Старт», и картинка ожила. Она переходила из одного состояния в другое и действительно как будто мигала.
— «Мигалка» — одна из самых простых циклических комбинаций, у нее цикл повторения всего два «поколения». Бывают и такие, у которых цикл дольше. — Алексей набросал новую комбинацию: картинка запульсировала и через восемь тактов вернулась в исходное состояние.
— Класс! А еще какие фигуры бывают?
— Бывают застывшие комбинации. Мы их называем «мертвые камни». Простейшая из них — «блок» размером два на два.
— Так он и будет стоять — вечно? Разве бывают вечные существа?
— Не бывают. Но как только «колония» переходит в неподвижное состояние — в набор блоков, например, — это выглядит, как будто жизнь прекратилась.
Потому и называем — «мертвые камни». Смотри, сейчас покажу эволюцию на большой скорости…
Алексей наугад заполнил экран целой кучей «колобков» — как будто кто-то рассыпал пригоршню черных пуговиц — и нажал на «Старт». Колония забурлила. Организмы гибли и возрождались с бешеной скоростью, так что отследить за существованием одного отдельно взятого «колобка» было невозможно. Зато появилась возможность увидеть всю картину целиком. Самое сильное «кипение» достигалось на пространствах, где организмам было не слишком тесно и не слишком свободно.
Число «умерших» компенсировалось числом «рождавшихся», многие «жители» комфортно висели гроздьями, словно держась за своих соседей. То тут, то там возникали пустоты или, напротив, слишком плотные зоны, которые тут же вымирали от перенаселения. Колония разваливалась на несколько частей, бурлящих с тем же темпом. Какие-то части колонии исчезали, какие-то превращались в россыпь блоков или других неподвижных фрагментов, где-то отчаянно суетились на одном месте уже знакомые Юрке «мигалки», а кое-где жило «облако» беспорядочно эволюционирующих организмов, которые использовали мертвые зоны как поля для питания, проходя по ним, словно стада травоядных животных, оставляя за собой шлейф таких же мертвых, неподвижных или циклически меняющихся организмов. Это было похоже на изображение циклона из прогноза погоды по телевизору.
Юрка не мог поверить, что происходящее на экране было задано такими простыми правилами.
— Красиво?
— Да. А что это? — Юрка показал пальцем в ту часть колонии, от которой отделился сгусток организмов, перемещающийся по диагонали куда-то в сторону, к границе экрана.