Рубрика «algorithms»

Всем привет! Для начала давайте разберем что такое вообще Алгоритмы для работы с большими данными, основная суть алгоритмов для работы с большими данными  — это эффективная обработка огромных объёмов информации при минимальных вычислительных ресурсах (памяти, CPU, диске). Их суть — жертвовать точностью ради скорости и масштабируемости. Примеры:

  • Потоковая обработка

  • Распределённые системы (агрегация на многих узлах).

  • Реал‑тайм аналитика (быстрые ответы на лету).

Главные алгоритмы и их суть

Алгоритм

Что решает?

Читать полностью »

Недистрибутивность деления, или Как я считал среднюю величину - 1

Казалось бы: сложно отыскать формулу проще, чем нахождение среднего арифметического. Однако код — не формула, вдобавок, если вы пишете на С++, то разного (и в основном неприятного) рода сюрпризы могут ожидать вас где угодно.

Постановка задачи: реализовать функцию uint32_t average(uint32_t a, uint32_t b), не используя типов шире, чем uint32_t, и затем обобщить этот подход на произвольное количество аргументов.Читать полностью »

JavaScript: структуры данных и алгоритмы. Часть 11 - 1

Привет, друзья!

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

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

Код, представленный в этой и других статьях серии, можно найти в этом репозитории.

Интересно? Тогда прошу под кат.

Читать полностью »

Привет!

То, что будет происходить ниже – сущий ад. Я буду писать простейшие программы на языке Whitespace (Но не такие простые, как в прошлой статье). Этот язык настолько ненужный, что оригинальный сайт с интерпретатором для этого языка уже давно мертв, все ссылки на оригинальные гайды, соответственно – тоже. Но, слава интернету, у нас есть webarchive, который и дал мне возможность скачать исходники 2х версий этого языка на Haskell, а также парочку бинарников под линух. Также отрыл пару онлайн-интерпретаторов, которые уже использовал в предыдущей статье.

Читать полностью »

Поделить нельзя — умножить или алгоритм быстрого деления по методу Ньютона-Рафсона - 1

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

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

Заглядываем под капот FrozenDictionary: насколько он быстрее Dictionary и почему - 1

С релизом .NET 8 в арсенале C# разработчиков появилась новая коллекция – FrozenDictionary. Особенность этого словаря в том, что он неизменяемый, но при этом обеспечивает более быстрое чтение по сравнению с обычным DictionaryЧитать полностью »

Учимся летать: симуляция эволюции на Rust. 4-5 - 1

Это предпоследняя часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.

В сегодняшнем выпуске:

Сексуальные многоугольники

Учимся летать: симуляция эволюции на Rust. 4-5 - 2

Сертифицированные ISO диаграммы ASCII

------------
| ...%....|
|   ......|
|    @>....|
|      ...|
|        .|
------------

Клевые числа

Учимся летать: симуляция эволюции на Rust. 4-5 - 3

Читать полностью »

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

Ускорение роутера в Django в 51 раз - 1

Роутер

Читать полностью »

Фильтр Блума - 1

У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js