Фракталы, как правило, управляются довольно простыми правилами, порождая удивительную красоту. Однако я не встречал способов построения фракталов, основанных на простоте чисел. Фрактал, который получился у меня, быть может не так красив, как фрактал Мандельброта, и не содержит явного само-подобия (self-similarity), но также имеет бесконечно сложную структуру.
![](https://habrastorage.org/getpro/habr/upload_files/021/1db/ac5/0211dbac55235100dc4454bb8d046c7e.png)
За 4 шага я покажу, как я его получил. Будет много картинок и мало формул.
Постоянные Фейгенбаума и теория хаоса
![](https://habrastorage.org/getpro/habr/upload_files/a51/8d5/794/a518d579465cfdc81ed767ec24916370.jpg)
Многие уже узнали эту картинку, связанную с размножением кроликов. Пусть каждый год популяция кроликов увеличивается в a раз:
Если a, коэффициент размножения больше 1, то каждый год кроликов все больше и больше. В природе так не бывает. Пусть, если x приближается к 1, то кролики начинают умирать от болезней:
Дополнительная часть уравнения как раз отвечает за смертность кроликов, а картинка вверху показывает зависимость х (в пределе многих лет) от a. Как видно, при увеличении a до 3 равновесная плотность популяции растет, а потом мы видим неожиданное: происходит бифуркация: в один год кроликов меньше, в другой больше. Впрочем, мы такое поведение природы знаем по урожаю яблок, когда урожайные годы идут через один.
При дальнейшем увеличении a возникает вторая бифуркация, потом еще и еще, все чаще и чаще, а потом настает полный хаос. По мере приближения к хаосу время как бы ускоряется, плотность событий увеличивается. Предел отношений длин отрезков L является первой константой Фейгенбаума, 4.669... и она проявляет себя для очень широкого класса систем. Даже отношения размеров 'бубликов' (кардиоидов) у множества Мандельброта тоже 4.669.
Если за L0 (см. картинку вверху) взять промежуток времени 24 февраля - 21 сентября, то следующая бифуркация будет в первых числах ноября.
Фрактал Ляпунова
Фрактал назван в память о Ляпунове, который пустил себе пулю в голову за пол века до открытия фрактала, в котором используется экспонента Ляпунова. Идея генерации фрактала заключается в том, чтобы вместо одного значения a использовать два разных, a и b, и чередовать их по какому-нибудь правилу, например, abababab...:
![](https://habrastorage.org/getpro/habr/upload_files/493/c6b/c0d/493c6bc0dd75cf96061672bebeb1cbe4.png)
начинаем мы с x=0.5, выбираем a и b (оси x и y), и вычисляем экспоненту Ляпунова. Для других последовательностей ab картинка будет выглядеть иначе, например для aabab:
![](https://habrastorage.org/getpro/habr/upload_files/e0e/b2f/aa7/e0eb2faa7c389b8313b265cad20ad7f0.png)
А теперь простые числа
Что если вместо периодической последовательности ab использовать апериодическую последовательность abbababaaa..., где a одначает что число составное, а b простое:
1-a, 2-простое, b, 3-простое b, 4- составное, a, 5 - b, 6-a, 7-b итд.
![](https://habrastorage.org/getpro/habr/upload_files/c81/301/f61/c81301f6175d33418f8a8ac5fcdba21a.png)
Картинка стала резко ассиметричной (что не удивительно, простых чисел меньше), но стала смазанной и менее интересной, на мой взгляд.
Кстати, а вы заметили, что оси у нас рисуются до значения 4? Это не случайно. При величине a>4 фрактал теряет устойчивость, значения улетают в бесконечность... Как и при отрисовке фрактала Мандельброта! Что если выкинуть экспоненту Ляпунова и отрисовывать (логарифм) количества итераций до того, как модуль x превысит некоторое значение, например, 1000?
Простые числа, вторая попытка
Теперь наши оси не ограничены значением 4:
![](https://habrastorage.org/getpro/habr/upload_files/a62/60e/f48/a6260ef48b4da1521f88dcfb7414d324.png)
Черный цвет означает стабильность - бесконечности не получается. Это наша знакомая область до 4. А вот дальше все интереснее/ Давайте увеличим район относительной стабильности около 4:
![](https://habrastorage.org/getpro/habr/upload_files/ad2/896/61d/ad289661dab33d35b9c8d99a41c9c590.png)
Картинка меняется довольно сильно, если 'объявить' число 3 или 5 составным, а вот большие числа (91, например) на картинку почти не влияют.
Еще один zoom:
![](https://habrastorage.org/getpro/habr/upload_files/2ee/171/f83/2ee171f83ee44add0fb89475ee28e67d.png)
И еще, кусочек справа:
![](https://habrastorage.org/getpro/habr/upload_files/ea4/b68/58b/ea4b6858ba1e2f02f8bb94bea4c92796.png)
'Прожектора', светящие в разные стороны, связаны с локальными сгущениями и разрежениями простых чисел. Просчитываются эти картинки довольно долго, 500x500 точек, для каждой надо скользить по простым числам до заданного предела (я брал 10-100 миллионов)