Все потоки
Поиск
Написать публикацию
Обновить
174.42

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Как машинное обучение помогает проекту «ЗабастКом» анализировать новости и освещать трудовые конфликты

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров6.7K


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


Для Забасткома получилось улучшить систему автоматической обработки новостей с помощью алгоритмов машинного обучения. Это привело к увеличению охвата важных событий и уменьшению ручного труда редакторов. Добавлю, что работа с ребятами была похожа на мечту любого DS специалиста: "заказчик" легко шел на контакт; присутствовала заинтересованность и неплохое понимание ML алгоритмов; некоторая продакшн-система уже функционировала; данные для обучения алгоритмов легко собирались. А под катом — поделюсь подробностями и кодом.

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

Сортировка слиянием через рекурсию

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

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

Читать далее

Происхождение и эволюция аллокатора памяти в С

Время на прочтение11 мин
Количество просмотров25K

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

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

Читать далее

Микропроцессоры будущего поколения

Время на прочтение19 мин
Количество просмотров9.8K

Микропроцессоры будущего поколения

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

Читать далее

Есть ли польза от решения алгоритмических задач на LeetCode?

Время на прочтение8 мин
Количество просмотров95K

Пожалуй каждый программист, который сталкивался с вопросом: "А как устроиться на работу в FAANG?" - получал ответ, что ему нужно разобраться с алгоритмами, со структурами данных и прорешать порядка 300-400 задач на leetcode по алгоритмам.

Однако вслед за этим советом тут же появляются люди, которые говорят, что это никоим образом не делает тебя лучше, как программиста. Да и вообще - просто пустая трата времени.

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

Читать далее

Модель камеры

Время на прочтение9 мин
Количество просмотров14K

Модель камеры описывает преобразование из 3D координат сцены в 2D координаты изображения.

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

Читать далее

Распознавание образов с помощью искусственного интеллекта

Время на прочтение18 мин
Количество просмотров71K

Пожалуй, самая популярная и перспективная задача нейросетей – технологии распознавания образов. Они либо по отдельности, либо в интегрированном виде используются в таких сферах, как безопасность и наблюдение, сканирование и создание изображений, маркетинг и реклама, дополненная реальность и поиск изображений.

Сегодня создаются и уже используются сети, в которых машины способны распознавать символы на бумаге и банковских картах, подписи на официальных документах, детектировать объекты и т.д. Эти функции облегчают труд человека и повышают точность и надежность различных рабочих процессов благодаря исключению из задачи человеческого фактора. Но научить компьютер распознавать объекты не так уж и просто. Одна из сложностей заключается в том, что компьютер видит не так же, как люди. У компьютера нет жизненного опыта и способности так же, как человеческий мозг идентифицировать объекты на изображения и видео. Изначально он не способен отличить дом от дерева, не имея каких‑то исходных данных. Чтобы научить компьютер видеть и понимать, что находится на изображении, люди используют технологии машинного обучения.

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

Читать далее

Вычисление сигнатуры строки для её применения в сортировке строк в алфавитном порядке по всем символам

Время на прочтение3 мин
Количество просмотров3.8K

Динамическое вычисление сигнатуры строки с возможностью применения этих сигнатур для сортировки строк в алфавитном порядке по всем символам.

Как отсортировать строки в алфавитном порядке не сортируя их в алфавитном порядке.

Читать далее сортировка строк в алфавитном

Обучаем нейросеть распознавать цифры на выборке от MNIST. Реализация алгоритма обратного распространения на C#

Время на прочтение17 мин
Количество просмотров27K

Привет!

Будем обучать нейросеть распознавать рукописные цифры

Читать далее

6 Python декораторов, которые значительно упростят ваш код

Время на прочтение5 мин
Количество просмотров67K

"Простое лучше сложного".

Лучшая функция Python, которая применяет эту философию из "дзен Python", - это декоратор.

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

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

Болтать не буду. Давайте посмотрим на отобранные мной 6 декораторов, которые покажут вам, насколько элегантен Python.

Читать далее

Самосинхронизирующиеся коды для связи через SPI интерфейс

Время на прочтение3 мин
Количество просмотров5K

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

Про устройство и про коды — под катом

Falang.io: редактор блок-схем

Время на прочтение2 мин
Количество просмотров10K

Здравствуйте, позвольте рассказать вам про сервис falang.io - редактор блок схем.

Он основан на теоретической основе, заложенной при разработке визуального языка Дракон, но расширяет и дополняет его.

Читать далее

Как создать эвристический алгоритм онлайн-мастеринга и получить предупреждение от RIAA

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров18K

Добрый день, меня зовут Сергей. В своей статье я бы хотел осветить тему аудио мастеринга, а именно: автоматизированного онлайн-мастеринга музыки.

Я расскажу о своём пути от продюсера психоделического транса до мейнтейнера самой популярной open source библиотеки автоматизированного референсного мастеринга на Python, получившей предупреждение от американской ассоциации звукозаписывающих компаний RIAA.

Читать далее

Ближайшие события

Как алгоритм 1972 года спас наш проект и при чем тут Тарьян?

Время на прочтение5 мин
Количество просмотров15K

Я часто вижу в интернете дискуссии, а должен ли True-разработчик знать теорию алгоритмов и стандартные алгоритмы. Про алгоритмические собеседования вообще молчу - мнения на этот счет у всех разные, оно и понятно.

Читать далее

Boson — разработка СУБД «с нуля» (часть I)

Время на прочтение9 мин
Количество просмотров20K

После разработки виртуальной машины и компилятора в рамках хобби прошел год и захотелось попробовать реализовать ёмкий по алгоритмам проект по системному программированию.

Каждый разработчик "кровавого" enterprise в своей работе использует СУБД (SQL/NoSQL) и меня всегда искренне интересовало как они устроены в самом сердце, на самом низком уровне. Почитав документацию и исходный код SQLite и MongoDB, про используемые в индексах и интерпретаторах запросов алгоритмы, осознал, что несмотря на широкую распространенность и некую привычность, системы управления базами данных (СУБД) - это сложные программные продукты, реализация которых не всем под силу. Отлично - как раз то, что мне надо. С мотивацией разобрались, перейдем к делу.

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

Читать далее

Алгоритмы диапазонов C++20 — сортировка, множества, обновления C++23 и прочее

Время на прочтение9 мин
Количество просмотров5.9K


Эта статья — третья и последняя в мини-серии об алгоритмах диапазонов. Мы рассмотрим некоторые алгоритмы сортировки, поиска и другие, а также познакомимся с готовящимися крутыми улучшениями этих алгоритмов в версии C++23. Поехали! Подробности — к старту курса по разработке на С++.

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

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров133K

С наступающим наступившим вновь наступающим, Хабр.

Новый год – точка, после которой все мы собираемся что-то начать, чем-то заняться, в чём-то поднатореть. Сегодня я расскажу об одном из таких вариантов – что можно начать и как к этому подойти.

Конечно, про литкод все слышали и, казалось бы, о чём тут рассказывать? Ну задачник, перед техсобесами можно открыть на день-два. Но для того рассказать и стоит, дабы чуть разбавить это мнение.

С сайтом несколько больно знакомиться, он отпугивает вездесущими приписками "premium", пользуясь славой ресурса для техсобесов продвигает функционал вроде списков компаний, где встречался вопрос n и симуляции интервью в компанию m, да и сам не особо стремится рассказать о себе, потому в нём зачастую и видно голый задачник с одной страницей "problems".

За всем этим теряется важный пункт – а можно ли использовать сайт не для механического зазубривания популярных вопрос-ответов, а для изучения/закрепления алгоритмов и структур данных? Можно. Но подход к этому нужно формировать самостоятельно.

🏆

Алгоритмы диапазонов C++20 — 11 модифицирующих операций

Время на прочтение14 мин
Количество просмотров6.3K


В предыдущей статье серии «Диапазоны» я рассмотрел основы и некоторые немодифицирующие операции. Сегодня пришло время таких алгоритмов, как transform, copy, generate, shuffle и многих других… даже rotate. Подробности — к старту курса по разработке на С++.


Прежде чем мы начнём


Ключевые наблюдения об алгоритмах std::ranges:

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

Чтобы не терять деньги: оповещения о падениях продуктовых метрик

Время на прочтение9 мин
Количество просмотров12K

Пытаясь уследить за всем многообразием метрик и срезов на дашбордах, можно легко упустить из виду важное изменение метрик, сигнализирующее о проблеме. И если вовремя не отреагировать, то можно лишиться аудитории или выручки. Расскажем, как мы автоматизировали оповещения о падениях (или нездоровых взлётах) продуктовых метрик, чтобы сразу оценивать масштаб проблемы в деньгах, и что это дало продукту. Наш опыт будет полезен в первую очередь аналитикам и руководителям продуктов.

Читать далее

Стандарты использования сообщений пользователю в 1С

Время на прочтение7 мин
Количество просмотров5.1K

Введение

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

Читать далее

Вклад авторов