Сергей Герасимов (xcontcom) wrote,
Сергей Герасимов
xcontcom

Category:

Генератор фракталов на основе алгоритма perfect shuffle





Здесь: генератор фракталов (жмякаем F5 или кнопочку внизу, чтобы сгенерировать новый фрактал)

В двух словах:

Perfect Shuffle - это такой алгоритм "смешиваний" или тасований. Делим исходный массив пополам. Четные элементы размещаем в начале массива, нечетные - в конце. На картинке наглядно:



Интересно то, что для любой длины массива, после некоторого числа итераций, все элементы возвращаются в исходное состояние.



Еще интересней то, что невозможно предугадать, какое число перестановок понадобится, чтобы вернуть все элементы в исходной состояние. На графике ниже: X - длина массива, Y - количество итераций, белыми точками отмечены исходные состояния:



Про траекторию первого элемента: http://xcontcom.livejournal.com/14840.html

Вместо одномерного массива, можно использовать двумерную матрицу. Берем матрицу (на первой итерации 2х2), делаем 4 копии. С каждой копией производим некоторое действие (поворот, инверсия), дальше совмещаем 4 копии, используя алгоритм perfect shuffle. Получаем новую матрицу.



С учетом всех возможных действий, можно сгенерировать 65536 фракталов. Некоторые из них:



























































Tags: fractal, perfect shuffle, permutations, хаос, энтропия
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 13 comments