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

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

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

Подробнее

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

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

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

Подробнее

Кодируем файл в UUE

В одной из статей по Icon, я уже показывал как написать такую программу, которая превращает исходный файл (формат файла значения не имеет) в код UUE, использовавшийся в некогда популярной сети Фидонет, однако, я не объяснял деталей того, как именно функционирует данная программа. Более того, мне любопытно взглянуть иногда назад, чтобы посмотреть, как далеко я ушел в своих изысканиях, а алгоритм положенный в утилиту на Icon кажется мне несколько непрактичным и слишком наивным.

Именно по этой причине, я решился взяться за старое, но с новыми инструментами.

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

Подробнее

Исследуем энтропию файлов

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

Данная утилитка (не буду говорить, как называется) была разработана для просмотра и изучения различного рода файлов прошивок устройств, но не это меня заинтересовало…

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

Подробнее

Алгоритм шифрования XTEA

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

В этом рецепте, я покажу несколько классов, реализующих алгоритм шифрования XTEA с разными размерами блока и разными размерами ключей, которые вы можете использовать в своих приложениях, которые рассчитаны на сокрытие некоторого объема информации, но при этом не столь требовательны к безопасности шифруемых данных

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

Подробнее

Отображение шкалы для диапазона значений в консоли

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

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

Подробнее

Удаление элемента из массива по его индексу

Удалить элемент из массива, зная его индекс очень просто, и при этом совершенно не обязательно для этих целей использовать диапазоны и алгоритмы из стандартной библиотеки! Читать далее →

Подробнее

Трюки из C в D

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

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

Подробнее

Опыт применения D в химической лаборатории

Наверное, название этой статьи слишком громкое для того, о чем я собираюсь рассказать, но как говорится за неимением лучшего, воспользуемся тем, что есть под рукой в данный момент… Читать далее →

Подробнее

Добавление графических примитивов в dlib

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

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

Подробнее