Обновить
277

Алгоритмы *

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

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

Кривая эластичности в девелопменте и почему её не существует

Время на прочтение5 мин
Охват и читатели815

Когда речь заходит об ожиданиях от динамического ценообразования (ДЦО), многие застройщики представляют себе безотказную машину, которая 24/7 мониторит спрос, в реальном времени выдаёт оптимальные цены, обеспечивает максимальную прибыль и заставляет конкурентов нервно курить в сторонке. Но, увы, суровая реальность напоминает, что не всё в жизни так просто.

 Эта статья — первая из серии, где мы разберёмся, как ДЦО может работать на вас, даже если пока кажется, что это больше головная боль, чем инструмент максимизации прибыли. В этом цикле мы разложим всё по полочкам: от теории и мифов до конкретных решений, которые действительно приносят деньги. Приготовьтесь: будет полезно, интересно и немного иронично. 

 Для многих очевидно, что система ДЦО должна подстраиваться под изменяющийся спрос. Поэтому многие девелоперы в поисках максимальной прибыли сначала обратились к классике экономической мысли — вспомнили Курно, Маршалла, кривую спроса-цены и эластичность спроса. В идеальном мире эти инструменты показывают точное сочетание цены и объёмов продаж, которое можно использовать для нахождения «Святого Грааля» максимальной выручки. 

 Однако в суровых реалиях девелопмента эта кривая эластичности работает не столь безотказно.

Читать далее

Как эффективно бороться с галлюцинациями нейросетей

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3K

Привет, я — Олег Рогов, руководитель фронтенд-разработки. В статье рассмотрю, почему искусственный интеллект (ИИ) галлюцинирует и как с этим бороться. С развитием ИИ больших языковых моделей перед пользователями встает вопрос о достоверности информации, которую они предоставляют. Иногда ИИ может выдавать ответы, которые выглядят убедительно, но на самом деле являются вымышленными или неточными. Явление, при котором языковая модель генерирует ложную информацию, получило название «галлюцинация».

Читать далее

Как пройти алгоритмическое собеседование: полный гид по алгоритмам, сложностям и стратегиям

Время на прочтение31 мин
Охват и читатели32K

Не тратьте время на задачи – сначала разберитесь в основах. В статье:

1. Как проходят собеседования (ВАЖНО!)
2. Big O, оценка сложности алгоритмов
3. Популярные техники: два указателя, DFS, динамическое программирование и другие
4. Какие задачи решать, чтобы пройти в Яндекс

Читаем, практикуемся, получаем оффер!

Читать далее

Структуры данных для подготовки к собеседованиям по алгоритмам

Уровень сложностиСредний
Время на прочтение32 мин
Охват и читатели19K

Хочешь пройти собеседование в Яндекс? Без этих структур данных не обойтись!

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

Готов ли ты к техническому интервью? Проверь себя!

Читать далее

Самые быстрые алгоритмы распределенного и асинхронного обучения (с точки зрения теории)

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели3.1K

Всем привет! Меня зовут Александр Тюрин, я руководитель группы «Методы оптимизации в машинном обучении» в AIRI и старший преподаватель Сколтеха. Мы с коллегами занимается оптимизацией распределённого обучения — это довольно актуальная проблема, учитывая, что современные модели обучаются на многих тысячах GPU.

За последние 2 года нам удалось сделать несколько открытий в асинхронных методах оптимизации, которые мы изложили в 5 статьях [1–5] на NeurIPS и ICLR. В этой статье я расскажу, в чём заключаются особенности распределённого обучения и что нового привнесли в него мы с точки зрения теории.

Читать далее

Алгоритмы манипуляций с битами

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели10K

в статье приведены алгоритмы обработки коротких битовых строк, обычно вмещающихся в машинное слово, в большей степени эти алгоритмы предназначены для обработки строк длины 32 или 64, но многие из них можно применять для SIMD инструкций или даже GPU.

Читать далее

Я заставил новую модель Claude 3.7 Sonnet пройти собес по алгоритмам

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.4K

Недавно в мире GenAI появились захватывающие новости: компания Anthropic представила новую языковую модель Claude 3.7 Sonnet. Эта модель объединяет в себе высокую скорость реакции и способности "глубокого" рассуждения (deep reasoning), что делает её одной из самых универсальных и продвинутых моделей на рынке коммерческих LLM. Благодаря инновационному подходу к гибридноcти, Claude 3.7 Sonnet способна как быстро отвечать на запросы, так и предоставлять подробное пошаговое обоснование своих выводов в зависимости от выбранного режима.

Читать далее

После прочтения сжечь. Или алгоритмы обработки данных вслепую (oblivious)

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели1.4K

То есть:

Привет, Хабр! Я – Петр, эксперт по ML/AI (и не только) в Skillbox (и не только), а ещё – CEO межбанковской скоринговой платформы Bloomtech. Так уж вышло, что я неплохо разбираюсь в разных PET (Privacy-Enhancing Technologies) и уже писал на хабре про совместные конфиденциальные вычисления. Сегодня повышаю градус и рассказываю про магию следующего порядка: слепую (забывчивую) передачу или oblivious transfer. Как обычно, на примере.    

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

Читать далее

Почему QR-коды в верхнем регистре меньше, чем в нижнем?

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели11K

Взгляните на эти два QR-кода. Отсканируйте их, если хотите: обещаю, в них нет ничего опасного.

Слева HTTPS://EDENT.TEL/ в верхнем регистре, а справа — https://edent.tel/ в нижнем.

Можно чётко заметить, что слева QR-код «меньше», то есть в нём меньше битов данных. Оба ведут на один и тот же URl, единственное различие заключается в регистре.

Что здесь происходит?

Читать далее

SQL HowTo: поиск пути и дихотомия (Advent of Code 2024, Day 18: RAM Run)

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели803

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

Сегодня напишем для решения простую реализацию алгоритма Ли и дихотомии.

Читать далее

Реализация метода принятия решений в экспертных группах

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.1K

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

Принять решение

Инвентарь в Godot

Время на прочтение11 мин
Охват и читатели3.8K

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

Читать далее

Как мы ускоряли виртуальные фоны в Толке

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.3K

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

Читать далее

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

Модель составного полупростого числа

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели549

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

В предлагаемой вниманию читателей модели роль исследуемого числа отводится модулю N КЧКВ, т.е. N задан (может быть большим) и требуется в одной из задач отыскивать делители N.

Для моделирования выбрана простая зависимость (линейная) N = х1 + хо. Очевидно, что список представлений такой модели конечен, и для чисел ограниченного размера может быть легко построен в форме таблицы, содержащей S =½ (N –1) строк. Модель названа списочной многострочной моделью и кратко обозначается (СММ, СМ-модель).

Читать далее

Решение головоломки Fillwords на Python

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели1.9K

Игра Fillwords популярна благодаря своей простоте и увлекательности: она развивает словарный запас, тренирует внимательность и логику. Миллионы игроков по всему миру используют её как способ расслабиться и одновременно размять мозг, а сложные уровни делают процесс поиска слов настоящим вызовом.

Играя в Fillwords, я заметил, что сложные уровни требуют всё больше времени. Это натолкнуло меня на идею создать программу-помощник на Python.

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

Читать далее

Задача о рюкзаке. Простое решение, но где-то должен быть подвох

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели3.4K

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

Читать далее

SQL HowTo: подбираем значение ветвлением (Advent of Code 2024, Day 17: Chronospatial Computer)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели839

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

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

Читать далее

Введение в многокритериальную оптимизацию, или как потерять чуть меньше денег на крипте

Время на прочтение16 мин
Охват и читатели4.3K

"Лежит на струнах пыль
Ржавеет под окном
Разбитый телевизор
Ты сгладил все углы
И жизнь твоя сплошной
Проклятый компромисс
Ни вверх ни вниз"

Так поёт группа Би-2 в песне "Компромисс" и с ними трудно не согласиться. Наша жизнь действительно состоит из сплошных проклятых компромиссов между несколькими решениями. Мы пытаемся найти максимально дешёвую, но качественную электронику, ищем экономичный, но быстрый автомобиль и красивого, но надёжного партнёра для отношений.

Каждая из этих повседневных задач заключается в поиске оптимума нескольких конфликтующих между собой функций. Это называется многокритериальная оптимизация (Multi-objective optimization). В этой статье мы ближе познакомимся с этой задачей, посмотрим на 2 популярных метода её решения и узнаем, как с её помощью заработать на криптовалюте с минимальным риском.

Читать далее

Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope

Время на прочтение12 мин
Охват и читатели2.7K

Structured Concurrency это одна из главных фишек Kotlin Coroutines, позволяющая оперировать иерархиями корутин через единый интерфейс, благодаря такой организации можно легко отменить сразу все корутины, имея ссылку только на самый высокоуровневый объект. В этой статье я разберу две базовые штуки на основе которых строится Structured Concurrency - CoroutineContext и CoroutineScope. Поехали!

Читать далее

B-Tree — сбалансированный куст поиска

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели2.7K

В реляционных СУБД есть дефолтный тип индекса — B‑Tree: Tree в названии однозначно указывает на дерево, ну а В это, наверно, Binary? Или Balanced? Или Balanced Binary? Почему‑то долгое время я полагал, что это Balanced Binary, и эта версия даже «работала». На деле всё куда интереснее, предлагаю проследовать под кат, чтобы посмотреть на этот на самом деле скорее низкорослый куст и сравнить его с Red‑Black Tree на Java.

Точно куст?

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