Складываем пасьянс Медичи

В этой статье, я попытаюсь объяснить, как мне удалось своими силами создать алгоритм свертки одного из самых загадочных пасьянсов — Пасьянса Медичи. Предупреждаю сразу, в отличии от множества эзотерически настроенных людей, я не склонен думать, что этот пасьянс как-то влияет на события или описывает алгоритм их схождения к некому результату. Я скромный экспериментатор, которому интересна любая нетривиальная задача, которой в этот раз оказался злополучный пасьянс…

Читать далее →

Подробнее

Алгоритм для «перемешивания» массива случайным образом

Этот рецепт продемонстрирует вам алгоритм, работающий с любым диапазоном ввода и генерирующий новый диапазон, в котором элементы переставлены («перемешаны») случайным образом. Алгоритм, в контексте данного рецепта, обозначает нечто такое, что манипулирует диапазонами (т.е практически то же понимание термина «алгоритм», которое и используется в D) и ни в коем случае не намекает на традиционный смысл понятия «алгоритм»).

Читать далее →

Подробнее

Отрисовка и закраска многоугольников в dlib

Данный простой рецепт публикуется как один из исторических материалов, который является сейчас частью проекта R.I.P и поможет вам справится с отрисовкой многоугольников (и не только правильных), а также с задачей их закраски. Читать далее →

Подробнее

Формула Бэйли-Боруэйна-Плаффа

В этом небольшом рецепте, я покажу результат портирования алгоритма для вычисления по формуле Бэйли-Боруэйна-Плаффа.

Данная формула позволяет найти любую цифру числа Пи без вычисления предыдущих (правда, в шестнадцатеричном представлении), что дает в свою очередь возможность точного расчета числа Пи с требуемой точностью.

Читать далее →

Подробнее

Дискретное вейвлет-преобразование в dlib

В нескольких статьях нашего блога уже затрагивалась тема различной цифровой обработки изображений, но, в основном в них мы касались вопросов явной трансформации изображений (перевод в оттенки серого, фильтрация, применение фильтров и некоторые другие операции) и никак не обращались к способам изменения избыточности изображений. Под избыточностью, в данном случае, понимается некая абстрактная мера, связанная с количеством информации, которое содержится в некоем изображении. Обычно, когда упоминаются выражения наподобии «способ изменения избыточности» или «метод уменьшения информационной энтропии», то речь идет об алгоритмах сжатия или алгоритмах эффективного представления неких данных.

Конечно, я бы хотел рассмотреть здесь методы сжатия изображений, но больше всего мне бы хотелось продемонстрировать суть подобных приемов, обращаясь непосредственно к внутреннему устройству и самым базовым их принципам, но, тематика сжатия изображений слишком обширна для данного блога.

Поэтому, я хотел бы рассказать сегодня о дискретном вейвлет-преобразовании, а точнее, об одной из самых известных его версий — дискретном преобразовании Хаара.

Читать далее →

Подробнее

Формула Таппера в D [посредством dlib]

В этой статье я расскажу про то, что я очень давно намеревался сделать в D, но никак не получалось и постоянно вылезали разные непреодолимые (на тот момент) ошибки. Разумеется, будет описан весь эксперимент с очень простым и легко читаемым кодом, и вы легко сможете его повторить, используя текущую версию dlib.

Эксперимент будет, как обычно, с математической графикой, и на этот раз познакомлю вас с самореферентной формулой, которая называется формулой Таппера.

Читать далее →

Подробнее

Живой узор в QtE5

В этой статье я познакомлю вас с еще одним удивительным примером самоорганизации, который позволяет наглядно (в режиме реального времени) пронаблюдать как из беспорядочного хаоса раскрашенных клеток возникают по своему красивые узоры. Этот пример, отчасти является дальним и очень упрощенным родственником одного из наших проектов по построению клеточного автомата с помощью QtE5, однако, правил в предлагаемом мной эксперименте гораздо меньше, что делает его более притягательным для собcтвенных опытов.

Читать далее →

Подробнее

Idiomatic D. Подводные камни при портировании с C

Очень часто программистам приходится портировать код из одного языка программирования в другой, ведь не писать же свой «велосипед», когда можно просто «скопипастить» чужой код и немного подправить… Однако, не все так просто! Существуют различные сложности, связанные с архитектурой языков, компиляторов и «железа». Это, своего рода, «подводные камни», для преодоления которых, при портировании кода из C в D, может помочь наш очередной перевод статьи Idiomatic D. Читать далее →

Подробнее

Делаем текст невидимым

В этой статье, я, основываясь на материалах с ресурса ХабраХабр, покажу как превратить обычный текст в серию символов, которые не видны невооруженному человеческому глазу.

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

Читать далее →

Подробнее

Множество Мандельброта в dlib

В одной из статей, посвященных D, я уже описывал множество Мандельброта, которое выглядит очень впечатляюще, но я очень хотел повторить эксперимент еще раз. Такое желание возникло из-за того, что меня не очень устроили результаты прошлого раза: множество получилось перевернутым и к тому же не раскрашенным.

По этой причине, я решил вернуться еще раз к построению данного множества, но уже без помощи DGui.

Читать далее →

Подробнее