Не мог не поделиться одним маленьким и весёлым проектом

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2022-06-07 19:48

Теория хаоса

Наверняка вы хоть раз в жизни видели фрактал (множество, обладающее свойством самоподобия) (объект, в точности или приближённо совпадающий с частью себя самого, то есть целое имеет ту же форму, что и одна или более частей). Лично я не раз зависал над множеством Мандельброта. Так вот неделю назад я вспомнил, что я программист и могу сделать свой фрактал. Тем более ранее был сделан калькулятор, поддерживающий длинную арифметику (что является важной частью генератора фракталов).

Идея есть, но для реализации необходимо было ещё выбрать объект фрактализирования. Причин выбрать себя было много, но их здесь описывать не считаю нужным. Так была поставлена задача собрать как можно больше фотографий со мной. После больших поисков было собрано 235 фотографий. Но понятное дело обработать такое количество фотографий заняло бы очень много времени, поэтому я автоматизировал этот процесс, написав программу для выбора квадрата на изображении и сохранения выделенной части в разрешении 100px*100px. Дальше надо было объединить все фотографии в одну (написал ещё одну программу). 235 факторизируется (раскладывается на простые множители) на 5 и 47. А значит итоговое изображение может иметь только размер 500px*4700px, ну либо будут пустые клетки. Получив итоговое и единое изображение необходимо было создать из него собственно фрактал. Для этого я написал третью программу, которая:

1. Перебирала все изображения

2. Для каждого перебирала блоки 4px*4px

3. Для каждого блока перебирала все изображения

4. Для каждого изображения из пункта 3 считала сходство с блоком из 2 пункта

5. Ну и находила наилучшее сходство

(в итоге получался 5ти мерный массив, который сжимался в 3х мерный, который сжимался в одну строку длиной 428678 символов)

Дальше оставалось только написать программу для отображения фракталов. Здесь по сути ничего интересного. Длинная арифметика (из калькулятора) + отрисовка карты (из webКумира) + много оптимизаций + немного магии = новый проект за 3 дня.

По приблизительным расчётам предел увеличения = 2^-536870912 (примерно 10^-161614248), но даже так изображение на таком расстоянии будет рассчитываться 25*115608858*115608858 у.е., на что уйдёт около 5-10 лет даже на очень мощном компьютере. Из этих чисел так же можно вычислить и количество всех изображений в одном главном: (25^2)^(2^536870912). Несложно догадаться, что в таком числе около 10^451854046 цифр.

Фрактал доступен здесь: https://dimathenekov.github.io/recursion.html


Источник: dimathenekov.github.io

Комментарии: