SFINAE в C++
Сегодня я хочу поговорить про SFINAE, загадочную аббревиатуру из C++. Расшифровывается SFINAE не менее загадочно: Substitution Failure Is Not An Error, по-русски: «неудавшаяся подстановка — не ошибка». Сейчас рассмотрим, почему это правило появилось, как оно работает и как мы можем использовать его себе во благо.
https://habr.com/ru/companies/otus/articles/971354/
Алгоритмы и Структуры данных
Сегодня я хочу поговорить про SFINAE, загадочную аббревиатуру из C++. Расшифровывается SFINAE не менее загадочно: Substitution Failure Is Not An Error, по-русски: «неудавшаяся подстановка — не ошибка». Сейчас рассмотрим, почему это правило появилось, как оно работает и как мы можем использовать его себе во благо.
https://habr.com/ru/companies/otus/articles/971354/
Алгоритмы и Структуры данных
Хабр
SFINAE в C++
Привет, Хабр! Сегодня я хочу поговорить про SFINAE, загадочную аббревиатуру из C++ . Расшифровывается SFINAE не менее загадочно: Substitution Failure Is Not An Error , по-русски: «неудавшаяся...
Два притопа, три прихлопа
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку. К чему это привело, далее мы и поговорим.
Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.
https://habr.com/ru/articles/975032/
Алгоритмы и Структуры данных
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку. К чему это привело, далее мы и поговорим.
Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.
https://habr.com/ru/articles/975032/
Алгоритмы и Структуры данных
Хабр
Два притопа, три прихлопа
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить...
Измерение сложности моделей — Часть 2: Применяем теорию на практике
В предыдущей статье мы заложили фундамент для анализатора сложности, определив ключевые метрики для оценки сложности моделей процессов. Теперь разберем, как превратить эту теорию в реально работающий инструмент.
От метрик к уровням сложности
Задача — автоматически разделить модели на три категории: низкая, средняя и высокая сложность. Классический кейс для алгоритмов кластеризации (обучение без учителя). Идея простая: модели с похожими значениями метрик сами собой группируются в кластеры. Простые модели обычно имеют низкие NOAJS и CFC, а сложные — высокие значения этих метрик из-за обилия шлюзов. Для решения выбрали алгоритм K-Means — он отлично подходит для такого сценария.
https://habr.com/ru/articles/973666/
Алгоритмы и Структуры данных
В предыдущей статье мы заложили фундамент для анализатора сложности, определив ключевые метрики для оценки сложности моделей процессов. Теперь разберем, как превратить эту теорию в реально работающий инструмент.
От метрик к уровням сложности
Задача — автоматически разделить модели на три категории: низкая, средняя и высокая сложность. Классический кейс для алгоритмов кластеризации (обучение без учителя). Идея простая: модели с похожими значениями метрик сами собой группируются в кластеры. Простые модели обычно имеют низкие NOAJS и CFC, а сложные — высокие значения этих метрик из-за обилия шлюзов. Для решения выбрали алгоритм K-Means — он отлично подходит для такого сценария.
https://habr.com/ru/articles/973666/
Алгоритмы и Структуры данных
Хабр
Измерение сложности моделей — Часть 2: Применяем теорию на практике
В предыдущей статье мы заложили фундамент для анализатора сложности, определив ключевые метрики для оценки сложности моделей процессов. Теперь разберем, как превратить эту теорию в реально работающий...
Два притопа, три прихлопа
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку. К чему это привело, далее мы и поговорим.
Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.
https://habr.com/ru/articles/975032/
Алгоритмы и Структуры данных
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку. К чему это привело, далее мы и поговорим.
Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.
https://habr.com/ru/articles/975032/
Алгоритмы и Структуры данных
Хабр
Два притопа, три прихлопа
Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить...
Решение головоломки NYTimes Pips с помощью решателя ограничений
Недавно The New York Times запустила новую ежедневную головоломку под названием Pips. Суть в том, что нужно разложить набор костяшек домино на сетке так, чтобы выполнялись различные условия. Например, в головоломке ниже сумма очков (точек на костях домино) в фиолетовых клетках должна быть равна 8, в красной клетке должно быть меньше 5 очков, а в трёх зелёных клетках значения должны быть одинаковыми. (Чтобы решить эту «лёгкую» головоломку, много думать не нужно, а вот варианты «medium» и «hard» уже заметно сложнее.)
https://habr.com/ru/companies/otus/articles/975004/
Алгоритмы и Структуры данных
Недавно The New York Times запустила новую ежедневную головоломку под названием Pips. Суть в том, что нужно разложить набор костяшек домино на сетке так, чтобы выполнялись различные условия. Например, в головоломке ниже сумма очков (точек на костях домино) в фиолетовых клетках должна быть равна 8, в красной клетке должно быть меньше 5 очков, а в трёх зелёных клетках значения должны быть одинаковыми. (Чтобы решить эту «лёгкую» головоломку, много думать не нужно, а вот варианты «medium» и «hard» уже заметно сложнее.)
https://habr.com/ru/companies/otus/articles/975004/
Алгоритмы и Структуры данных
Хабр
Решение головоломки NYTimes Pips с помощью решателя ограничений
TL;DR Автор берёт новую головоломку NYT Pips и моделирует её в MiniZinc как задачу удовлетворения ограничений: домино, координаты, сетка, суммы по цветным областям. Вместо процедурного кода задаётся...
Из мёртвой зоны — в зелёную: как мы запускали техподдержку для системы утилизации токсичных отходов
С 1 марта 2022 года тысячи российских компаний — от промышленных гигантов до сельских школ — в один день перешли на новую систему по обращению с отходами I и II классов опасности, которая стала частью управляемого процесса обращения с отходами в стране.
Простыми словами, это самые вредные отходы: отслужившие ртутные лампы, батарейки, аккумуляторы, промышленные химикаты. Для многих это стало шоком: привычные процессы рушились, вызывая панику и раздражение. Весь этот шквал эмоций и вопросов обрушился на нас — команду техподдержки.
Раньше оборот таких отходов был серой зоной: кто-то пытался соблюдать правила, а кто-то просто сливал их в овраг. Новая система была создана по заказу Минприроды и призвана сделать этот процесс прозрачным и контролируемым.
https://habr.com/ru/companies/greenatom/articles/975314/
Алгоритмы и Структуры данных
С 1 марта 2022 года тысячи российских компаний — от промышленных гигантов до сельских школ — в один день перешли на новую систему по обращению с отходами I и II классов опасности, которая стала частью управляемого процесса обращения с отходами в стране.
Простыми словами, это самые вредные отходы: отслужившие ртутные лампы, батарейки, аккумуляторы, промышленные химикаты. Для многих это стало шоком: привычные процессы рушились, вызывая панику и раздражение. Весь этот шквал эмоций и вопросов обрушился на нас — команду техподдержки.
Раньше оборот таких отходов был серой зоной: кто-то пытался соблюдать правила, а кто-то просто сливал их в овраг. Новая система была создана по заказу Минприроды и призвана сделать этот процесс прозрачным и контролируемым.
https://habr.com/ru/companies/greenatom/articles/975314/
Алгоритмы и Структуры данных
Хабр
Из мёртвой зоны — в зелёную: как мы запускали техподдержку для системы утилизации токсичных отходов
С 1 марта 2022 года тысячи российских компаний — от промышленных гигантов до сельских школ — в один день перешли на новую систему по обращению с отходами I и II классов опасности, которая стала частью...
Моя любимая маленькая хеш-таблица
Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с применением линейного зондирования, где размер самой таблицы увеличивается как степень двойки. Если вы не знакомы с терминологией хеш-таблиц, то все эти слова могут показаться вам каким-то невразумительным салатиком, но, когда мы разберём этот п��имер с привлечением кода — всё должно стать понятнее.
https://habr.com/ru/articles/975636/
Алгоритмы и Структуры данных
Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с применением линейного зондирования, где размер самой таблицы увеличивается как степень двойки. Если вы не знакомы с терминологией хеш-таблиц, то все эти слова могут показаться вам каким-то невразумительным салатиком, но, когда мы разберём этот п��имер с привлечением кода — всё должно стать понятнее.
https://habr.com/ru/articles/975636/
Алгоритмы и Структуры данных
Хабр
Моя любимая маленькая хеш-таблица
Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с...
Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM и картиночная Alice AI ART.
В части про Alice AI LLM расскажем, как сделали упор в Alignment на RL и Reward Modeling: мы минимизируем число разрозненных RL-стадий, собирая «общий RL». Вместо хрупкого «суперсигнала» используем аспектную формулировку качества и агрегируем её в целевую функцию, чтобы изменения критериев не требовали пересборки всей разметки. В главе про Alice AI LLM Search расскажем про многократные последовательные походы в Поиск с последующей фильтрацией/ранжированием источников. А также о том, как готовим ответы с использованием документов разной модальности (веб-документы, картинки, видео, гео).
https://habr.com/ru/companies/yandex/articles/974594/
Алгоритмы и Структуры данных
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM и картиночная Alice AI ART.
В части про Alice AI LLM расскажем, как сделали упор в Alignment на RL и Reward Modeling: мы минимизируем число разрозненных RL-стадий, собирая «общий RL». Вместо хрупкого «суперсигнала» используем аспектную формулировку качества и агрегируем её в целевую функцию, чтобы изменения критериев не требовали пересборки всей разметки. В главе про Alice AI LLM Search расскажем про многократные последовательные походы в Поиск с последующей фильтрацией/ранжированием источников. А также о том, как готовим ответы с использованием документов разной модальности (веб-документы, картинки, видео, гео).
https://habr.com/ru/companies/yandex/articles/974594/
Алгоритмы и Структуры данных
Хабр
Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM...
Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM и картиночная Alice AI ART.
В части про Alice AI LLM расскажем, как сделали упор в Alignment на RL и Reward Modeling: мы минимизируем число разрозненных RL-стадий, собирая «общий RL». Вместо хрупкого «суперсигнала» используем аспектную формулировку качества и агрегируем её в целевую функцию, чтобы изменения критериев не требовали пересборки всей разметки. В главе про Alice AI LLM Search расскажем про многократные последовательные походы в Поиск с последующей фильтрацией/ранжированием источников. А также о том, как готовим ответы с использованием документов разной модальности (веб-документы, картинки, видео, гео).
https://habr.com/ru/companies/yandex/articles/974594/
Алгоритмы и Структуры данных
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM и картиночная Alice AI ART.
В части про Alice AI LLM расскажем, как сделали упор в Alignment на RL и Reward Modeling: мы минимизируем число разрозненных RL-стадий, собирая «общий RL». Вместо хрупкого «суперсигнала» используем аспектную формулировку качества и агрегируем её в целевую функцию, чтобы изменения критериев не требовали пересборки всей разметки. В главе про Alice AI LLM Search расскажем про многократные последовательные походы в Поиск с последующей фильтрацией/ранжированием источников. А также о том, как готовим ответы с использованием документов разной модальности (веб-документы, картинки, видео, гео).
https://habr.com/ru/companies/yandex/articles/974594/
Алгоритмы и Структуры данных
Хабр
Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России
Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM...
Два режима SPEC: разгоняемся на Peak, притормаживаем на Base
Все мы любим быстрые программы и высокие показатели в бенчмарках. Когда гоняешь тесты производительности, так и тянет включить все оптимизации компилятора, чтобы выжать максимум. Но если вы имели дело с пакетами тестов SPEC (например, SPEC CPU), то, вероятно, замечали, результаты там делятся на две категории Base и Peak.
В тестах SPEC CPU есть концепция базового прогона (base run) и пикового (peak run). Это строго определенные режимы с разными правилами оптимизации. Base про честность и сопоставимость, Peak про максимальную производительность любой ценой (ну, почти любой).
https://habr.com/ru/companies/otus/articles/971100/
Алгоритмы и Структуры данных
Все мы любим быстрые программы и высокие показатели в бенчмарках. Когда гоняешь тесты производительности, так и тянет включить все оптимизации компилятора, чтобы выжать максимум. Но если вы имели дело с пакетами тестов SPEC (например, SPEC CPU), то, вероятно, замечали, результаты там делятся на две категории Base и Peak.
В тестах SPEC CPU есть концепция базового прогона (base run) и пикового (peak run). Это строго определенные режимы с разными правилами оптимизации. Base про честность и сопоставимость, Peak про максимальную производительность любой ценой (ну, почти любой).
https://habr.com/ru/companies/otus/articles/971100/
Алгоритмы и Структуры данных
Хабр
Два режима SPEC: разгоняемся на Peak, притормаживаем на Base
Привет, Хабр! Все мы любим быстрые программы и высокие показатели в бенчмарках. Когда гоняешь тесты производительности, так и тянет включить все оптимизации компилятора, чтобы выжать...
❤1
Измерение сложности модели — Часть 3: Представляем Complexity Analyzer
В предыдущей статье мы разобрались, как измерять сложность моделей. В этой статье мы покажем, как инструмент FlowComplexity помогает превратить теорию в практику.
https://habr.com/ru/articles/975784/
Алгоритмы и Структуры данных
В предыдущей статье мы разобрались, как измерять сложность моделей. В этой статье мы покажем, как инструмент FlowComplexity помогает превратить теорию в практику.
https://habr.com/ru/articles/975784/
Алгоритмы и Структуры данных
Хабр
Измерение сложности модели — Часть 3: Представляем Complexity Analyzer
В предыдущей статье мы разобрались, как измерять сложность моделей. В этой статье мы покажем, как инструмент FlowComplexity помогает превратить теорию в практику. Представляем FlowComplexity...
Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA
Операция проверки делимости — одна из фундаментальных в информатике и теории чисел. Для обычных чисел, помещающихся в машинное слово, это одна быстрая аппаратная инструкция. Но для очень больших целых чисел (Big Integers), размер которых превышает разрядность регистра процессора, классическое взятие остатка N \bmod d становится ресурсоёмкой многословной процедурой.
Эта статья предлагает чёткую и явную формулировку детерминированного алгоритма для проверки делимости целого числа N на нечётный делитель d, родственного бинарному алгоритму Евклида. Его ключевая особенность: он использует исключительно операции сложения (X + d) и деления на 2 (побитового сдвига вправо, X \gg 1), что позволяет полностью избежать дорогой операции взятия остатка в его явном виде.
https://habr.com/ru/articles/975814/
Алгоритмы и Структуры данных
Операция проверки делимости — одна из фундаментальных в информатике и теории чисел. Для обычных чисел, помещающихся в машинное слово, это одна быстрая аппаратная инструкция. Но для очень больших целых чисел (Big Integers), размер которых превышает разрядность регистра процессора, классическое взятие остатка N \bmod d становится ресурсоёмкой многословной процедурой.
Эта статья предлагает чёткую и явную формулировку детерминированного алгоритма для проверки делимости целого числа N на нечётный делитель d, родственного бинарному алгоритму Евклида. Его ключевая особенность: он использует исключительно операции сложения (X + d) и деления на 2 (побитового сдвига вправо, X \gg 1), что позволяет полностью избежать дорогой операции взятия остатка в его явном виде.
https://habr.com/ru/articles/975814/
Алгоритмы и Структуры данных
Хабр
Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA
Привет, Хабр! Операция проверки делимости — одна из фундаментальных в информатике и теории чисел. Для обычных чисел, помещающихся в машинное слово, это одна быстрая аппаратная инструкция. Но для очень...
Правда ли, что ICPC работает как социальный лифт в IT-карьере
Поэтому, когда мне поставили задачу написать про полуфинал Международной студенческой олимпиады по программированию (ICPC) для региона «Северная Евразия», я решил не пересказывать данные из Википедии. Вы и сами можете их прочитать, а кто-то даже рассказать о собственном опыте участия. Я спросил коллег внутри X5 Tech, как навыки, полученные на соревнованиях по программированию помогли им в реальной жизни: на собеседованиях, в продакшене, в решении сложных системных задач или даже в бытовых ситуациях. Про то, что спортивное программирование развивает алгоритмическое мышление, стрессоустойчивость и умение работать в команде в ограниченное время, пишут много, но теория не всегда переносится на практику.
Так как же обстоят дела на самом деле? Какие алгоритмические привычки пятичасовых контестов переходят в инженерную практику? И помогают ли навыки с олимпиад, когда сталкиваешься с реальным сервисом, данными и нагрузками, а не с абстрактными задачами?
https://habr.com/ru/companies/X5Tech/articles/976028/
Алгоритмы и Структуры данных
Поэтому, когда мне поставили задачу написать про полуфинал Международной студенческой олимпиады по программированию (ICPC) для региона «Северная Евразия», я решил не пересказывать данные из Википедии. Вы и сами можете их прочитать, а кто-то даже рассказать о собственном опыте участия. Я спросил коллег внутри X5 Tech, как навыки, полученные на соревнованиях по программированию помогли им в реальной жизни: на собеседованиях, в продакшене, в решении сложных системных задач или даже в бытовых ситуациях. Про то, что спортивное программирование развивает алгоритмическое мышление, стрессоустойчивость и умение работать в команде в ограниченное время, пишут много, но теория не всегда переносится на практику.
Так как же обстоят дела на самом деле? Какие алгоритмические привычки пятичасовых контестов переходят в инженерную практику? И помогают ли навыки с олимпиад, когда сталкиваешься с реальным сервисом, данными и нагрузками, а не с абстрактными задачами?
https://habr.com/ru/companies/X5Tech/articles/976028/
Алгоритмы и Структуры данных
Хабр
Правда ли, что ICPC работает как социальный лифт в IT-карьере
Привет, Хабр! Я давно отучился в школе и институте, но хорошо помню, как мне говорили: «Учи! Тебе это пригодится! Без этого никуда! Это очень важно…» и почти никогда не объясняли, зачем учить, когда...
Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах
Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#. В целом, эффективное использование вычислительных ресурсов, включая процессор, является одним из главных аспектов разработки программного обеспечения. В этой статье мы рассмотрим несколько ключевых подходов и стратегий оптимизации нагрузки на CPU в языке программирования C#.
Использование эффективных алгоритмов
Одним из важнейших аспектов оптимизации CPU является выбор эффективных алгоритмов. При написании кода на C# убедитесь, что вы используете алгоритмы с минимальной временной сложностью. Например, при поиске элемента в большом массиве используйте алгоритмы со сложностью O(log n) или O(1), такие как бинарный поиск, вместо алгоритмов со сложностью O(n), таких как последовательный поиск.
https://habr.com/ru/articles/976414/
Алгоритмы и Структуры данных
Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#. В целом, эффективное использование вычислительных ресурсов, включая процессор, является одним из главных аспектов разработки программного обеспечения. В этой статье мы рассмотрим несколько ключевых подходов и стратегий оптимизации нагрузки на CPU в языке программирования C#.
Использование эффективных алгоритмов
Одним из важнейших аспектов оптимизации CPU является выбор эффективных алгоритмов. При написании кода на C# убедитесь, что вы используете алгоритмы с минимальной временной сложностью. Например, при поиске элемента в большом массиве используйте алгоритмы со сложностью O(log n) или O(1), такие как бинарный поиск, вместо алгоритмов со сложностью O(n), таких как последовательный поиск.
https://habr.com/ru/articles/976414/
Алгоритмы и Структуры данных
Хабр
Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах
Оптимизация CPU в приложениях на C# Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#. В целом, эффективное использование вычислительных...
❤1
SQL HowTo: проверяем и объединяем диапазоны (Advent of Code 2025, Day 5: Cafeteria)
В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.
https://habr.com/ru/companies/tensor/articles/976670/
Алгоритмы и Структуры данных
В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.
https://habr.com/ru/companies/tensor/articles/976670/
Алгоритмы и Структуры данных
Хабр
SQL HowTo: проверяем и объединяем диапазоны (Advent of Code 2025, Day 5: Cafeteria)
Осторожно, спойлеры! Не читайте, пока хотите решить задачу самостоятельно. В этой челлендж-серии статей, начатой с прошлогоднего эвента , попробуем использовать PostgreSQL как среду для решения...
Робот в лабиринте: обрабатываем в Python очереди с приоритетом
Данная статья является переводом публикации одного из разработчиков Twisted Моше Задка The Python heapq Module: Using Heaps and Priority Queues. Текст также адаптирован в виде блокнота Jupyter, с которым можно поиграть в интерактивном режиме в Colab.
https://proglib.io/p/robot-v-labirinte-obrabatyvaem-ocheredi-s-prioritetom-v-python-2020-07-07
Алгоритмы и Структуры данных
Данная статья является переводом публикации одного из разработчиков Twisted Моше Задка The Python heapq Module: Using Heaps and Priority Queues. Текст также адаптирован в виде блокнота Jupyter, с которым можно поиграть в интерактивном режиме в Colab.
https://proglib.io/p/robot-v-labirinte-obrabatyvaem-ocheredi-s-prioritetom-v-python-2020-07-07
Алгоритмы и Структуры данных
Библиотека программиста
🤖 Робот в лабиринте: обрабатываем в Python очереди с приоритетом
Иногда полная сортировка элементов избыточна – нужно лишь найти приоритетный элемент. Для реализации соответствующих структур данных в стандартной библиотеке Python есть модуль heapq.
Дешевый как автобус, удобный как такси: перспективный вид общественного транспорта для больших и средних городов. Часть1
Если я только не допустил критической ошибки, то мне удалось обнаружить удивительную по своим характеристикам схему пассажирских перевозок. Представьте себе такую картину: вы находитесь в большом городе и вам нужно добраться из точки A в точку B. Все, что от вас требуется — это дойти до ближайшего перекрестка и на вашем смартфоне или установленном там специальном терминале указать точку назначения. Через несколько минут к вам подъедет небольшой, но просторный автобус. Автобус, в который можно войти, не пригибаясь, внести с собой детскую коляску, велосипед или даже виолончель, в котором всегда можно сесть и вытянуть ноги. Этот автобус довезет и высадит вас на ближайшем от точки B перекрестке. Вы доберетесь туда без каких-либо пересадок, а все путешествие, включая ожидание на остановке, займет всего на 25-50% времени больше, чем если бы совершили его на личном автомобиле. По моим оценкам в условиях современных мегаполисов такой вид транспорта будет достаточно массовым, чтобы цена одной поездки на нем была близка к стоимости билета на обычный городской автобус.
https://habr.com/ru/articles/713792/
Алгоритмы и Структуры данных
Если я только не допустил критической ошибки, то мне удалось обнаружить удивительную по своим характеристикам схему пассажирских перевозок. Представьте себе такую картину: вы находитесь в большом городе и вам нужно добраться из точки A в точку B. Все, что от вас требуется — это дойти до ближайшего перекрестка и на вашем смартфоне или установленном там специальном терминале указать точку назначения. Через несколько минут к вам подъедет небольшой, но просторный автобус. Автобус, в который можно войти, не пригибаясь, внести с собой детскую коляску, велосипед или даже виолончель, в котором всегда можно сесть и вытянуть ноги. Этот автобус довезет и высадит вас на ближайшем от точки B перекрестке. Вы доберетесь туда без каких-либо пересадок, а все путешествие, включая ожидание на остановке, займет всего на 25-50% времени больше, чем если бы совершили его на личном автомобиле. По моим оценкам в условиях современных мегаполисов такой вид транспорта будет достаточно массовым, чтобы цена одной поездки на нем была близка к стоимости билета на обычный городской автобус.
https://habr.com/ru/articles/713792/
Алгоритмы и Структуры данных
Хабр
Дешевый как автобус, удобный как такси: перспективный вид общественного транспорта для больших и средних городов. Часть1
( Jean-Claude Mézières ) Ссылка на Часть1: «Предварительный анализ» ( ру / eng ) Ссылка на Часть2: «Эксперименты на торе» ( ру / eng ) Cсылка на «Часть3: Практически значимые решения» ( ру / eng )...
IT-Забавы. 1. Обход конем шахматной доски с получением Магического квадрата
Найти обход конем всей шахматной доски, так чтобы:
Ходы образовывали непрерывную цепочку
Были посещены все поля по 1 разу с номерами от 1 до 64
Суммы номеров клеток обхода в каждом столбце были равны
-//- в каждой строке давали сумму 260
(*) Маршрут был замкнут (с поля 64 был ход на поле 1)
(*) Маршрут был симметричен относительно центра
(*) на обеих диагоналях сумма 260
(*) - необязательное дополнительное требование
https://habr.com/ru/articles/726726/
Алгоритмы и Структуры данных
Найти обход конем всей шахматной доски, так чтобы:
Ходы образовывали непрерывную цепочку
Были посещены все поля по 1 разу с номерами от 1 до 64
Суммы номеров клеток обхода в каждом столбце были равны
-//- в каждой строке давали сумму 260
(*) Маршрут был замкнут (с поля 64 был ход на поле 1)
(*) Маршрут был симметричен относительно центра
(*) на обеих диагоналях сумма 260
(*) - необязательное дополнительное требование
https://habr.com/ru/articles/726726/
Алгоритмы и Структуры данных
Хабр
IT-Забавы. 1. Обход конем шахматной доски с получением Магического квадрата
Задача Найти обход конем всей шахматной доски, так чтобы: Ходы образовывали непрерывную цепочку Были посещены все поля по 1 разу с номерами от 1 до 64 Суммы номеров клеток обхода в каждом столбце были...
Азбука тензорных сетей, часть 1: кружочки и палочки
Меня зовут Алексей Капранов, я архитектор-исследователь в команде квантовых вычислений в Cloud.ru. Сегодня я расскажу про подход, который позволяет не только моделировать большие квантово-механические системы, но и полезен для целого ряда задач, включая машинное обучение и нейронные сети.
И физики, и математики страдают от так называемого проклятия размерности, которое заключается в экспоненциальном росте сложности вычислений и необходимой памяти при увеличении числа параметров. Методы тензорных сетей позволяют существенно сократить этот скейлинг и в ряде случаев даже получить линейную сложность по количеству параметров и размерности задачи.
В этой части мы вспомним основы тензорной алгебры и на простых примерах узнаем, что же такое тензорная сеть и как представлять операции с тензорами в виде комбинации палочек и кружочков.
https://habr.com/ru/companies/cloud_ru/articles/976884/
Алгоритмы и Структуры данных
Меня зовут Алексей Капранов, я архитектор-исследователь в команде квантовых вычислений в Cloud.ru. Сегодня я расскажу про подход, который позволяет не только моделировать большие квантово-механические системы, но и полезен для целого ряда задач, включая машинное обучение и нейронные сети.
И физики, и математики страдают от так называемого проклятия размерности, которое заключается в экспоненциальном росте сложности вычислений и необходимой памяти при увеличении числа параметров. Методы тензорных сетей позволяют существенно сократить этот скейлинг и в ряде случаев даже получить линейную сложность по количеству параметров и размерности задачи.
В этой части мы вспомним основы тензорной алгебры и на простых примерах узнаем, что же такое тензорная сеть и как представлять операции с тензорами в виде комбинации палочек и кружочков.
https://habr.com/ru/companies/cloud_ru/articles/976884/
Алгоритмы и Структуры данных
Хабр
Азбука тензорных сетей, часть 1: кружочки и палочки
Тензорные сети они как лук: кто в них вникает, тот слезы проливает Привет, Хабр! Меня зовут Алексей Капранов, я архитектор-исследователь в команде квантовых вычислений в Cloud.ru . Сегодня я расскажу...
Как появился ИИ: три тысячи лет алгоритмических ритуалов
Считаете алгоритмы результатом современных технологий? Это не так. Узнайте историю возникновения ИИ из вычислений пространства.
https://proglib.io/p/ai-emergence
Алгоритмы и Структуры данных
Считаете алгоритмы результатом современных технологий? Это не так. Узнайте историю возникновения ИИ из вычислений пространства.
https://proglib.io/p/ai-emergence
Алгоритмы и Структуры данных
Библиотека программиста
Как появился ИИ: три тысячи лет алгоритмических ритуалов
Считаете алгоритмы результатом современных технологий? Это не так. Узнайте историю возникновения ИИ из вычислений пространства.
Ищем по-соседски: методы приближённого поиска ближайших соседей для A/B-тестирования гипотез
В этой статье мы рассмотрим один из подходов к офлайновому A/B-тестированию, поговорим о сложностях, которые возникают при оценке результатов пилотного проекта (далее — пилота) и разберём реализацию в коде.
В Сбербанке постоянно проводится много пилотов, часть из которых реализуются в сети продаж Банка (отделения, банкоматы) и требуют нестандартного подхода к оценке результатов.
https://habr.com/ru/companies/sberbank/articles/726532/
Алгоритмы и Структуры данных
В этой статье мы рассмотрим один из подходов к офлайновому A/B-тестированию, поговорим о сложностях, которые возникают при оценке результатов пилотного проекта (далее — пилота) и разберём реализацию в коде.
В Сбербанке постоянно проводится много пилотов, часть из которых реализуются в сети продаж Банка (отделения, банкоматы) и требуют нестандартного подхода к оценке результатов.
https://habr.com/ru/companies/sberbank/articles/726532/
Алгоритмы и Структуры данных
Хабр
Ищем по-соседски: методы приближённого поиска ближайших соседей для A/B-тестирования гипотез
Привет, Хабр! В этой статье мы рассмотрим один из подходов к офлайновому A/B-тестированию, поговорим о сложностях, которые возникают при оценке результатов пилотного проекта (далее — пилота) и...