Интересно, что даже художественные произведения можно рассматривать как алгоритмы. Например, главный герой – это тот, кто ведёт нас по истории. Он имеет цель, которую достигает по сюжету. Алгоритм – это набор действий, которые образуют сюжет. Сюжет может быть сложным и изменчивым. Исполнитель истории обладает своими свойствами и возможностями. Он влияет на алгоритм и, наоборот, учится, меняется и развивается, вызывает у нас интерес и симпатию, заставляет нас следить за алгоритмом истории и ждать его конца.
Возьмём для примера сказку «Золушка» Шарля Перро. Главная героиня – Золушка, добрая и красивая девушка, которая живёт со злой мачехой и её дочерями. Из этой сказки можно выделить абстрактный объект. Алгоритм поведения абстрактного объекта можно описать так:
1. Терпеть обиды и унижения от других объектов.
2. Мечтать о том, чтобы попасть в лучшие условия.
3. Получить помощь, которая преобразит объект под лучшие условия.
4. Отправиться в место, где есть лучшие условия.
5. Оказаться нужным объектом для принимающего решения в новых условиях.
6. Уехать обратно, оставив после себя загадку.
7. Снова терпеть обиды и унижения в старых условиях.
8. Дождаться, когда принимающий решение найдёт и заберёт к себе.
Подобный алгоритм используют все сценаристы, которые создают современные истории с сюжетом о «Золушке».
С помощью алгоритмов мы можем лучше понимать происходящее. Например, если мы хотим узнать, как растёт дерево, то попытаемся описать этот процесс в виде алгоритма:
1. Определить тип образовательной ткани – меристемы (от др.-греч. μεριστός – «делимый»): первичная или вторичная. Первичные меристемы отвечают за увеличение дерева в длину, вторичные – за утолщение дерева.
2. Определить местоположение меристемы: на конце корня или стебля (верхушечная меристема) или под корой ствола или ветвей (боковая меристема).
3. Определить направление роста меристемы: вверх или вниз для верхушечных меристем, наружу или внутрь для боковых меристем.
4. Делить клетки меристемы с определённой скоростью и частотой, зависящими от условий окружающей среды и гормонов растений.
5. Дифференцировать новые клетки в разные типы тканей, такие как эпидермис, корковая ткань, древесина, камбий и т. д., в зависимости от типа и местоположения меристемы.
6. Образовывать новые элементы дерева из дифференцированных клеток, такие как почки, цветки, плоды, семена и т. д., в зависимости от типа и местоположения меристемы.
Это алгоритм роста дерева за счёт деления клеток в меристемах.