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

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

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

Подробнее

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

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

Подробнее

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

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

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

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

Подробнее

Скрытые сокровища стандартной библиотеки [перевод]

В этот раз я решил перевести для вас достаточно скромную статью за авторством Гарри Уилоби (автор блога nomad.so и создатель TkD), которую я так давно давно хотел выложить, но все не мог найти для этого временнЫе ресурсы…

И вот время перевода пришло…

Все то, что будет описано далее приводится практически без изменений, а также, возможно, несколько устарело, однако передаю слово автору статьи…

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

Подробнее

Генерирование массива псевдослучайных чисел

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

Перейдем же к заполнению массива псевдослучайными числами…

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

Подробнее

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

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

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

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

Подробнее

Функциональные возможности D [перевод]

Эта статья является переводом заметки под названием «D Functional Garden», которая расположена здесь и представляет собой небольшую коллекцию интересных сниппетов, интенсивно использующих возможности D в функциональном программировании.

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

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

Подробнее

Паттерн проектирования «Команда»

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

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

Подробнее

Паттерн проектирования «Фабричный метод»

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

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

Подробнее

Интерполяция по Лагранжу

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

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

Подробнее