top of page

Как мы строили фрактал

„Фракталы выражаются не в первичных геометрических  формах, а в алгоритмах, в наборах математических процедур"

Из статьи Хартмуса Юргенса, Хайнца-Отто Пайтгена, Дитмара Заупе "Язык фракталов" (1990)

Математическое обоснование и алгоритм построения

  1. Перед тем как начать строить фрактал, мы предположили, что столкнёмся с проблемой больших чисел. Действительно, он-лайн расчёт биномиальных коэффициентов показал, что уже на 50-ой строке появляются 13-ти значные числа. 

  2. Мы стали рассуждать так: а зачем нам сами числа? Чтобы построить фрактал, нам нужно знать только место (ячейку), на котором стоит число, кратное 4-м, а не само число.

  3. Тогда мы воспользовались определением кратности (6 класс!)число а кратно числу n, если остаток от деления а на n равен 0. Это можно выразить так: a=q*n+r, где q - целая часть от деления а на n, а r - остаток от этого деления, и r=0, если а кратно n.

  4. Следуя этому определению, мы решили в каждую ячейку записывать не само число, а его остаток от деления на 4, то есть значения r.

  5. При построении мы использовали тот вид треугольника, который рассматривал сам Блез Паскаль - не равнобедренный, а прямоугольный. Тогда каждую ячейку мы заполняли числом, которое получалось, как и у Паскаля,  сложением двух  соседних ячеек: верхней и левой.

  6. Пусть в этих ячейках стоят числа а и b: 

    • a=q1*4+r1​

    • b=q2*4+r2

    • a+b=(q1+q2)*4+(r1+r2). 

    • Если сумма кратна 4-м, то остаток должен быть равен 0. Поэтому именно сумма r1+r2 давала нам ответ на вопрос: кратно число 4-м или нет.

    • Если r1+r2<4, то r1+r2 - остаток от деления a+b на 4.

    • Если r1+r2>3, то r1+r2 включает в себя 1*4, которое относится к целой части, и остатком от деления a+b на 4 будет число r1+r2-4

    • Наш вывод: чтобы найти ячейки с числами кратными 4-м, надо записывать или r1+r2, или r1+r2-4 и выделять ячейки, в которых записывается 0.

Основные этапы построения

Шаг 1. Разметка листа

0.jpg

Мы учли размеры ватмана и решили: чтобы получить 100 ячеек по ширине и 100 ячеек по длине, нужно разметить сетку с ячейками 5 мм х 5 мм.

Проводим горизонтальную прямую.

Результат

наш фрактал.bmp

Закономерности, которые мы обнаружили

То, что мы получили, очень похоже на фрактал "треугольник Серпинского", но есть и отличия: 

  • На каждом уровне выделяется треугольный контур - большой прямоугольный треугольник (желтый, красный, зеленый);  если его повернуть на 45 градусов по часовой стрелке, получится обычное расположение треугольника Паскаля.  

  • Этот прямоугольный треугольник состоит из 4-х частей, которые можно получить, если провести три средние линии. Как и в треугольнике Серпинского, если не рассматривать  центральную часть, то останутся 3 равных треугольных фрагмента.

  • Если в треугольнике Серпинского центральная часть удаляется полностью, то в нашем фрактале в центральной части тоже проводятся средние линии и из 4-х частей удаляются только 3. Структура нашего фрактала сложнее структуры треугольника Серпинского :)

Свойства​, которыми обладает наш фрактал

  • Самоподобие: любой фрагмент какого-нибудь уровня  фрактала похож на его подобный фрагмент следующего  (или предыдущего!) уровня. Это не значит, что уровни состоят из одних и тех же элементов - но у них одинаковая структура.

Например, каждый красный треугольник 4-го уровня подобен зеленому треугольнику 3-го уровня или желтому треугольнику 5-го уровня. Участок фрактала, обведенный красным контуром, подобен участку, обведенному желтым  или зеленым контурами. 

  • Алгоритмичность: наш фрактал построен с помощью простого рекурсивного алгоритма, где каждая ячейка зависит от двух предыдущих.

Хотя построение закончено из-за размеров листа, можно предположить, какие элементы и какого размера будут входить в новые уровни. Если сначала вырезались (закрашивались синим цветом) 3 точки  - прямоугольные равнобедренные треугольники с катетами 1, на следующем уровне  они превратились в треугольники с катетами 3, потом - с катетами 7, 15 , 31 и 63;  значит, потом появятся треугольники с катетами 2^n-1  (127, 255 и т.д)

  • Многомерность: если уменьшать  масштаб изображения фрактала, его фрагменты все равно будут хорошо видны

  • Неравномерность: переход от уровня к уровню не означает простое изменение размеров; на более высоких уровнях появляются новые элементы. Особенно хорошо это заметно на треугольниках, расположенных на диагонали - биссектрисе прямого угла. 

  • Повторение: в структуре фрактала постоянно повторяются одни и те же фрагменты, которые всюду встречаются, но всякий раз по-новому, с "новыми подробностями".

  • Бесконечность: треугольник Паскаля можно продолжать до бесконечности, и до бесконечности будут возникать фрагменты фрактала - треугольники, которые соответствуют группам натуральных чисел, кратных 4.

Наш алгоритм построения фрактала

 

  • Записать в первой строке и первом столбце единицы: это и сами числа в треугольнике Паскаля, и их остатки от деления на 4.

  • В каждой ячейке, начиная со второй в каждом ряду или в каждом столбце, записывать сумму левой и верхней ячеек, при этом используя правило:

    • если сумма меньше 4, то пишем её без изменений;

    • если сумма больше 3, то уменьшаем её на 4.

  • Выделить цветом ячейки, в которых стоит 0.

bottom of page