Math
Игра в хаос
Кубик и прыжок к случайному углу строят фрактал, которого никто не рисовал — треугольник Серпинского, папоротник, дракон, губку Менгера — один и тот же из любого старта; таскай углы, меняй прыжок, считай клетки и измеряй его размерность.

Что происходит
Случайно выберите вершину и переместите точку к ней на заданную долю расстояния. Повторение этого локального правила создаёт фрактал. В треугольном примере прыжок на половину расстояния после начального переходного процесса формирует аттрактор Серпинского.
Две точки, использующие одну последовательность вершин, забывают начальное расстояние: при половинных прыжках после k шагов оно равно d_k = d_0·(1/2)^k, где d_0 — начальное расстояние. Это точное сжатие относится к паре траекторий с одинаковыми выборами, а не к двум независимым случайным последовательностям. Перетащите вершину, чтобы повторить сохранённые выборы в новой геометрии.
Сравните треугольник, тетраэдр, квадрат с ограничениями, пятиугольник, папоротник, дракон, кривую Коха и губку Менгера. Подсчёт покрывающих ячеек оценивает размерность конечного облака точек. Формула подобия D = log(n)/log(1/c) применима к n копиям с общим коэффициентом сжатия c при соответствующих условиях разделения; это не универсальная формула для перекрывающихся или неодинаковых аффинных отображений.
Уравнения модуля
Уравнения игра: x ← x + r·(v − x) = (1 − r)·x + r·v к случайной вершине v; доля прыжка r, коэффициент сжатия c = 1 − r; общий вид x ← A_i·x + b_i с вероятностью p_i (система итерированных функций) забытое начало: две точки x, y при одной и той же последовательности случайных выборов: |x_k − y_k| = c^k·|x_0 − y_0| точно для подобий - после 20 делений пополам остаётся 1.79·10^−6 от исходных 1.88; папоротник (не подобие) сжимается до 2.4·10^−5 от 5.26 за 40 прыжков дыра: при r = 1/2 средняя четверть треугольника точно пуста (0 из 50 000 точек после прогрева); при r = 0.45 копии масштабируются с коэффициентом 0.55, перекрываются, и туда попадают 10 435 из 50 000 точек; при r = 0.55 дыра расширяется размерность: ячейки со стороной 2^−k в объемлющем кубе; N(k) ∝ 2^(k·D); D = наклон прямой log2 N от k, подобранный на участке k = 4 … 7 (плоский случай) или 3 … 5 (пространственный); формула Морана: n непересекающихся копий с коэффициентом c дают Σ c^D = 1, D = log n / log(1/c) наборы: треугольник log3/log2 = 1.585 (измерено 1.60 на 200 000 точек); тетраэдр 2 (1.90); квадрат без повторов, три варианта выбора при 1/2: log3/log2 (1.586); пятиугольник при r = 1/φ, c = 1/φ²: log5/log φ² = 1.672 (1.64); папоротник - нет размерности подобия (1.81); дракон, два отображения с коэффициентом 1/√2: 2 (1.80); кривая Коха, четыре копии с коэффициентом 1/3: log4/log3 = 1.262 (1.34); губка Менгера, двадцать копий с коэффициентом 1/3: log20/log3 = 2.727 (2.79) папоротник: A₁ = [[0, 0], [0, 0.16]], p = 0.01; A₂ = [[0.85, 0.04], [−0.04, 0.85]], b = (0, 1.6), p = 0.85; A₃ = [[0.20, −0.26], [0.23, 0.22]], b = (0, 1.6), p = 0.07; A₄ = [[−0.15, 0.28], [0.26, 0.24]], b = (0, 0.44), p = 0.07 генератор: общий xorshift; 20 прыжков прогрева не записываются; старт (0.1, 0.2), z = 0.3 в пространстве


