#алгоритм — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #алгоритм, aggregated by home.social.
-
Как мы погрузились в теорию компиляторов и написали свой транслятор кода
Всем привет! Меня зовут Егор Ермаков, я бэкенд‑разработчик в группе разработки процессинга Техплатформы городских сервисов Яндекса. Техплатформа — это инфраструктурная платформа для всех городских сервисов Яндекса: Такси, Еды, Лавки, Доставки, а также для различных шеринговых сервисов — каршеринга, зарядных станций, самокатов и других. Один из ключевых сервисов нашей команды — ProcaaS (Processing as a Service). Он предназначен для асинхронного выполнения динамических сценариев. Подробнее о самом сервисе, его архитектуре и роли в сетке микросервисов Такси мы рассказывали в предыдущей статье . В этом материале я хочу поделиться опытом решения одной непростой и при этом очень интересной технической задачи, с которой мы столкнулись в рамках развития ProcaaS, а именно — рассказать, как мы написали свой транслятор кода.
-
Как мы погрузились в теорию компиляторов и написали свой транслятор кода
Всем привет! Меня зовут Егор Ермаков, я бэкенд‑разработчик в группе разработки процессинга Техплатформы городских сервисов Яндекса. Техплатформа — это инфраструктурная платформа для всех городских сервисов Яндекса: Такси, Еды, Лавки, Доставки, а также для различных шеринговых сервисов — каршеринга, зарядных станций, самокатов и других. Один из ключевых сервисов нашей команды — ProcaaS (Processing as a Service). Он предназначен для асинхронного выполнения динамических сценариев. Подробнее о самом сервисе, его архитектуре и роли в сетке микросервисов Такси мы рассказывали в предыдущей статье . В этом материале я хочу поделиться опытом решения одной непростой и при этом очень интересной технической задачи, с которой мы столкнулись в рамках развития ProcaaS, а именно — рассказать, как мы написали свой транслятор кода.
-
Как мы погрузились в теорию компиляторов и написали свой транслятор кода
Всем привет! Меня зовут Егор Ермаков, я бэкенд‑разработчик в группе разработки процессинга Техплатформы городских сервисов Яндекса. Техплатформа — это инфраструктурная платформа для всех городских сервисов Яндекса: Такси, Еды, Лавки, Доставки, а также для различных шеринговых сервисов — каршеринга, зарядных станций, самокатов и других. Один из ключевых сервисов нашей команды — ProcaaS (Processing as a Service). Он предназначен для асинхронного выполнения динамических сценариев. Подробнее о самом сервисе, его архитектуре и роли в сетке микросервисов Такси мы рассказывали в предыдущей статье . В этом материале я хочу поделиться опытом решения одной непростой и при этом очень интересной технической задачи, с которой мы столкнулись в рамках развития ProcaaS, а именно — рассказать, как мы написали свой транслятор кода.
-
Как мы погрузились в теорию компиляторов и написали свой транслятор кода
Всем привет! Меня зовут Егор Ермаков, я бэкенд‑разработчик в группе разработки процессинга Техплатформы городских сервисов Яндекса. Техплатформа — это инфраструктурная платформа для всех городских сервисов Яндекса: Такси, Еды, Лавки, Доставки, а также для различных шеринговых сервисов — каршеринга, зарядных станций, самокатов и других. Один из ключевых сервисов нашей команды — ProcaaS (Processing as a Service). Он предназначен для асинхронного выполнения динамических сценариев. Подробнее о самом сервисе, его архитектуре и роли в сетке микросервисов Такси мы рассказывали в предыдущей статье . В этом материале я хочу поделиться опытом решения одной непростой и при этом очень интересной технической задачи, с которой мы столкнулись в рамках развития ProcaaS, а именно — рассказать, как мы написали свой транслятор кода.
-
Заменит ли «Сложная обработка информации» востребованного специалиста?
Почему мы вообще обсуждаем конкуренцию людей и машин? Потому что мы стали жертвами удачного нейминга. Возврат в 1950-е. Алан Тьюринг и Клод Шеннон дали базу. Но термин «ИИ» придумал Джон Маккарти в 1956 году. Это был классический питч стартапа. Маккарти придумал громкое имя, чтобы откреститься от «Кибернетики» Норберта Винера, привлечь внимание и получить грант в $7,500 от Фонда Рокфеллера. Маккарти «прибил флаг к мачте» и очеловечил программы. Он хотел создать ИИ человеческого уровня за лето, но все специалисты, приглашенные для участия в гранте, занимались своими исследованиями, и скоординировать их было очень сложно. Вы можете почитать оригинал статьи Джона Маккарти — организатора Дартмутской конференции и дисциплины ИИ о том, как все начиналось. На деле то, что мы называем ИИ, — это Сложная обработка информации (СОИ) . Этот термин использовали Аллен Ньюэлл (Allen Newell) и Герберт Саймон (Herbert A. Simon). Это легендарные ученые, стоявшие у самых истоков отрасли (Саймон позже даже получил Нобелевскую премию, а вместе с Ньюэллом они стали лауреатами премии Тьюринга). Когда в 1956 году Джон Маккарти собирал Дартмутский семинар и активно пушил придуманный им термин ИИ (чтобы, как мы уже выяснили, «прибить флаг к мачте» и выбить гранты), Ньюэлл и Саймон были категорически против.
https://habr.com/ru/articles/1016462/
#искусственный_интеллект #chatgpt #нейросети #llm #машинное_обучение #алгоритм #обучение_it #карьера_программиста #карьера_итспециалиста #профессия
-
Заменит ли «Сложная обработка информации» востребованного специалиста?
Почему мы вообще обсуждаем конкуренцию людей и машин? Потому что мы стали жертвами удачного нейминга. Возврат в 1950-е. Алан Тьюринг и Клод Шеннон дали базу. Но термин «ИИ» придумал Джон Маккарти в 1956 году. Это был классический питч стартапа. Маккарти придумал громкое имя, чтобы откреститься от «Кибернетики» Норберта Винера, привлечь внимание и получить грант в $7,500 от Фонда Рокфеллера. Маккарти «прибил флаг к мачте» и очеловечил программы. Он хотел создать ИИ человеческого уровня за лето, но все специалисты, приглашенные для участия в гранте, занимались своими исследованиями, и скоординировать их было очень сложно. Вы можете почитать оригинал статьи Джона Маккарти — организатора Дартмутской конференции и дисциплины ИИ о том, как все начиналось. На деле то, что мы называем ИИ, — это Сложная обработка информации (СОИ) . Этот термин использовали Аллен Ньюэлл (Allen Newell) и Герберт Саймон (Herbert A. Simon). Это легендарные ученые, стоявшие у самых истоков отрасли (Саймон позже даже получил Нобелевскую премию, а вместе с Ньюэллом они стали лауреатами премии Тьюринга). Когда в 1956 году Джон Маккарти собирал Дартмутский семинар и активно пушил придуманный им термин ИИ (чтобы, как мы уже выяснили, «прибить флаг к мачте» и выбить гранты), Ньюэлл и Саймон были категорически против.
https://habr.com/ru/articles/1016462/
#искусственный_интеллект #chatgpt #нейросети #llm #машинное_обучение #алгоритм #обучение_it #карьера_программиста #карьера_итспециалиста #профессия
-
Заменит ли «Сложная обработка информации» востребованного специалиста?
Почему мы вообще обсуждаем конкуренцию людей и машин? Потому что мы стали жертвами удачного нейминга. Возврат в 1950-е. Алан Тьюринг и Клод Шеннон дали базу. Но термин «ИИ» придумал Джон Маккарти в 1956 году. Это был классический питч стартапа. Маккарти придумал громкое имя, чтобы откреститься от «Кибернетики» Норберта Винера, привлечь внимание и получить грант в $7,500 от Фонда Рокфеллера. Маккарти «прибил флаг к мачте» и очеловечил программы. Он хотел создать ИИ человеческого уровня за лето, но все специалисты, приглашенные для участия в гранте, занимались своими исследованиями, и скоординировать их было очень сложно. Вы можете почитать оригинал статьи Джона Маккарти — организатора Дартмутской конференции и дисциплины ИИ о том, как все начиналось. На деле то, что мы называем ИИ, — это Сложная обработка информации (СОИ) . Этот термин использовали Аллен Ньюэлл (Allen Newell) и Герберт Саймон (Herbert A. Simon). Это легендарные ученые, стоявшие у самых истоков отрасли (Саймон позже даже получил Нобелевскую премию, а вместе с Ньюэллом они стали лауреатами премии Тьюринга). Когда в 1956 году Джон Маккарти собирал Дартмутский семинар и активно пушил придуманный им термин ИИ (чтобы, как мы уже выяснили, «прибить флаг к мачте» и выбить гранты), Ньюэлл и Саймон были категорически против.
https://habr.com/ru/articles/1016462/
#искусственный_интеллект #chatgpt #нейросети #llm #машинное_обучение #алгоритм #обучение_it #карьера_программиста #карьера_итспециалиста #профессия
-
Заменит ли «Сложная обработка информации» востребованного специалиста?
Почему мы вообще обсуждаем конкуренцию людей и машин? Потому что мы стали жертвами удачного нейминга. Возврат в 1950-е. Алан Тьюринг и Клод Шеннон дали базу. Но термин «ИИ» придумал Джон Маккарти в 1956 году. Это был классический питч стартапа. Маккарти придумал громкое имя, чтобы откреститься от «Кибернетики» Норберта Винера, привлечь внимание и получить грант в $7,500 от Фонда Рокфеллера. Маккарти «прибил флаг к мачте» и очеловечил программы. Он хотел создать ИИ человеческого уровня за лето, но все специалисты, приглашенные для участия в гранте, занимались своими исследованиями, и скоординировать их было очень сложно. Вы можете почитать оригинал статьи Джона Маккарти — организатора Дартмутской конференции и дисциплины ИИ о том, как все начиналось. На деле то, что мы называем ИИ, — это Сложная обработка информации (СОИ) . Этот термин использовали Аллен Ньюэлл (Allen Newell) и Герберт Саймон (Herbert A. Simon). Это легендарные ученые, стоявшие у самых истоков отрасли (Саймон позже даже получил Нобелевскую премию, а вместе с Ньюэллом они стали лауреатами премии Тьюринга). Когда в 1956 году Джон Маккарти собирал Дартмутский семинар и активно пушил придуманный им термин ИИ (чтобы, как мы уже выяснили, «прибить флаг к мачте» и выбить гранты), Ньюэлл и Саймон были категорически против.
https://habr.com/ru/articles/1016462/
#искусственный_интеллект #chatgpt #нейросети #llm #машинное_обучение #алгоритм #обучение_it #карьера_программиста #карьера_итспециалиста #профессия
-
Не биты, а тетраэдры: как я построил геометрический движок состояний и ускорил точную задачу в 555 раз
Мы привыкли думать о вычислениях как о битах, регистрах и арифметике. А что, если базовой единицей вычисления сделать не бит, а локальную геометрическую конфигурацию тетраэдров? В этой статье я покажу дискретный тетраэдрический движок состояний, симметрийную канонизацию, аттракторы, иерархические jump-таблицы и реальные замеры на RTX 3090 — с измеренным exact-ускорением в 554.92 раза на одной и той же задаче.
https://habr.com/ru/articles/1011646/
#тетраэдр #геометрия #симметрия #алгоритм #аттрактор #канонизация #оптимизация #GPU #состояние #мотив
-
400 000 вникуда: почему новички бросают профессию после дорогих курсов
Все мы видели рекламу курсов в стиле: "супер-курс с гарантией трудоустройства за 3 месяца", "Стань востребованным специалистом с нуля", "Наши выпускники работают в Яндексе, Тинькофф и Ozon" и т.д. Максимально кликбейтные обещания. И это нормально, так и должно быть с точки зрения маркетинга. Вы ведётесь. Отдаёте вот столько кровных (угадайте, откуда скрин):
https://habr.com/ru/articles/1004032/
#карьера #обучение #деньги #алгоритм #курсы #карьера_в_itиндустрии #учебный_процесс #поиск_работы #поиск_работы_в_it
-
Генерация лабиринтов с использованием алгоритма Recursive backtracker
Расскажу о том, как сгенерировать рандомный лабиринт используя алгоритм Recursive backtracker. Все подробности об алгоритме, структуре кода, асимптотике и итоговых лабиринтах здесь.
https://habr.com/ru/articles/1002460/
#лабиринт #алгоритм #Recursive_backtracker #как_написать #визуализация #рандомная_генерация
-
Генерация лабиринтов с использованием алгоритма Recursive backtracker
Расскажу о том, как сгенерировать рандомный лабиринт используя алгоритм Recursive backtracker. Все подробности об алгоритме, структуре кода, асимптотике и итоговых лабиринтах здесь.
https://habr.com/ru/articles/1002460/
#лабиринт #алгоритм #Recursive_backtracker #как_написать #визуализация #рандомная_генерация
-
Генерация лабиринтов с использованием алгоритма Recursive backtracker
Расскажу о том, как сгенерировать рандомный лабиринт используя алгоритм Recursive backtracker. Все подробности об алгоритме, структуре кода, асимптотике и итоговых лабиринтах здесь.
https://habr.com/ru/articles/1002460/
#лабиринт #алгоритм #Recursive_backtracker #как_написать #визуализация #рандомная_генерация
-
Генерация лабиринтов с использованием алгоритма Recursive backtracker
Расскажу о том, как сгенерировать рандомный лабиринт используя алгоритм Recursive backtracker. Все подробности об алгоритме, структуре кода, асимптотике и итоговых лабиринтах здесь.
https://habr.com/ru/articles/1002460/
#лабиринт #алгоритм #Recursive_backtracker #как_написать #визуализация #рандомная_генерация
-
В поисках O(n): как научиться видеть эффективные решения задач
Привет, Хабр! Эта задача выглядит как разминка для разогрева: найти максимальное произведение двух чисел в массиве . Но именно с неё началось моё знакомство с алгоритмической культурой — на первом же собеседовании я убедился, что «работает» и «работает эффективно» — разные вещи. В статье — три решения: от интуитивного до элегантного, их сравнение и главный вывод: даже простые задачи учат нас думать.
https://habr.com/ru/articles/996212/
#алгоритм #сложность_алгоритма #линейная_скорость #обучение_программированию #разбор_задач
-
Как веб-камера и нейросеть помогают удалённо измерять частоту дыхания
Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала. Традиционные способы измерения частоты дыхания требуют физического контакта с пациентом. Например, для этого применяют нагрудный ремень или датчики у носа. Это не всегда удобно, особенно когда важны скорость или свобода движений. Существующие бесконтактные подходы либо работают исключительно в идеальных условиях, либо дают значительную погрешность — до 13%, что вызвано недостаточной способностью отфильтровывать естественные движения человека. Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех. Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа. Принцип работы В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы. Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат.
https://habr.com/ru/companies/kryptonite/articles/991902/
#телемедицина #частота_дыхания #мониторинг_здоровья #вебкамера #алгоритм #анализ_изображений #анализ_видео
-
Как веб-камера и нейросеть помогают удалённо измерять частоту дыхания
Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала. Традиционные способы измерения частоты дыхания требуют физического контакта с пациентом. Например, для этого применяют нагрудный ремень или датчики у носа. Это не всегда удобно, особенно когда важны скорость или свобода движений. Существующие бесконтактные подходы либо работают исключительно в идеальных условиях, либо дают значительную погрешность — до 13%, что вызвано недостаточной способностью отфильтровывать естественные движения человека. Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех. Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа. Принцип работы В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы. Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат.
https://habr.com/ru/companies/kryptonite/articles/991902/
#телемедицина #частота_дыхания #мониторинг_здоровья #вебкамера #алгоритм #анализ_изображений #анализ_видео
-
Как веб-камера и нейросеть помогают удалённо измерять частоту дыхания
Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала. Традиционные способы измерения частоты дыхания требуют физического контакта с пациентом. Например, для этого применяют нагрудный ремень или датчики у носа. Это не всегда удобно, особенно когда важны скорость или свобода движений. Существующие бесконтактные подходы либо работают исключительно в идеальных условиях, либо дают значительную погрешность — до 13%, что вызвано недостаточной способностью отфильтровывать естественные движения человека. Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех. Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа. Принцип работы В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы. Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат.
https://habr.com/ru/companies/kryptonite/articles/991902/
#телемедицина #частота_дыхания #мониторинг_здоровья #вебкамера #алгоритм #анализ_изображений #анализ_видео
-
Как веб-камера и нейросеть помогают удалённо измерять частоту дыхания
Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала. Традиционные способы измерения частоты дыхания требуют физического контакта с пациентом. Например, для этого применяют нагрудный ремень или датчики у носа. Это не всегда удобно, особенно когда важны скорость или свобода движений. Существующие бесконтактные подходы либо работают исключительно в идеальных условиях, либо дают значительную погрешность — до 13%, что вызвано недостаточной способностью отфильтровывать естественные движения человека. Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех. Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа. Принцип работы В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы. Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат.
https://habr.com/ru/companies/kryptonite/articles/991902/
#телемедицина #частота_дыхания #мониторинг_здоровья #вебкамера #алгоритм #анализ_изображений #анализ_видео
-
Идентификация звёзд и при чём тут сингулярное разложение
Рассказ о том, как с помощью одной матрицы и двух чисел научиться распознавать любые созвездия на небе.
https://habr.com/ru/articles/990722/
#идентификация #звёзды #алгоритм #микроконтроллер #датчик #программирование #обработка_изображений #геометрия #астрономия #космос
-
Идентификация звёзд и при чём тут сингулярное разложение
Рассказ о том, как с помощью одной матрицы и двух чисел научиться распознавать любые созвездия на небе.
https://habr.com/ru/articles/990722/
#идентификация #звёзды #алгоритм #микроконтроллер #датчик #программирование #обработка_изображений #геометрия #астрономия #космос
-
Идентификация звёзд и при чём тут сингулярное разложение
Рассказ о том, как с помощью одной матрицы и двух чисел научиться распознавать любые созвездия на небе.
https://habr.com/ru/articles/990722/
#идентификация #звёзды #алгоритм #микроконтроллер #датчик #программирование #обработка_изображений #геометрия #астрономия #космос
-
Идентификация звёзд и при чём тут сингулярное разложение
Рассказ о том, как с помощью одной матрицы и двух чисел научиться распознавать любые созвездия на небе.
https://habr.com/ru/articles/990722/
#идентификация #звёзды #алгоритм #микроконтроллер #датчик #программирование #обработка_изображений #геометрия #астрономия #космос
-
Как работает навигация между городами без интернета
2ГИС с самой первой версии навигатора умеет строить разные виды маршрутов — автомобильные, пешеходные, маршруты на общественном транспорте — на мобильных устройствах без доступа к интернету, но только внутри городов. С 2019 года 2ГИС также умеет строить маршруты между городами, но только при наличии интернета. Уже давно наши пользователи просили дать возможность строить междугородние маршруты без доступа к сети. И вот, мы наконец сделали это.
-
Как я написал торговый алгоритм с помощью GPT
Хочу поделиться историей одного R&D-эксперимента. Не так давно у меня появилась идея: а реально ли сегодня, не будучи Python-разработчиком, с нуля создать что-то относительно сложное, например, торговый алгоритм? И не просто создать, а сделать так, чтобы основной объем кода писали нейросети, как наверное вы уже успели догнаться. В качестве "программистов" я выбрал — ChatGPT и Gemini, я пытался как то разобраться с Cursor и deepseek, но сразу же попрощался, один слишком сложен для начального старта без знания программирования, второй как в дальнейшем выяснилось сильно отстает от своих конкурентов.
https://habr.com/ru/articles/945474/
#торговый_алгоритм #gpt #нейросеть #алгоритм #биржа #криптовалюта
-
Решение задачи о количестве клеток с суммой цифр координат меньше заданного числа
Условия задачи Есть бесконечная плоскость, вымощенная квадратными клетками У каждой клетки есть две координаты в виде целых чисел Координаты от минус бесконечности до плюс бесконечности В клетке с координатами (0,0) находится муравей (в другой версии обезьяна) Он может перемещаться вертикально или горизонтально только на 1 клетку, только на клетки, у которых сумма цифр координат не больше определённого числа N. Например, у клетки с координатами (758, -219) сумма цифр координат 7+5+8+2+1+9=32 Случай, когда рассматривается количество клеток без взаимосвязи с тем, можно ли к ним пройти или нет, рассматривать бессмысленно, т.к. существует бесконечное число клеток с координатами вида (0, 1000……000) с различным количеством нулей. Вопрос Сколько клеток доступно муравью при заданном N?
https://habr.com/ru/articles/944576/
#Математика #последовательность_чисел #координаты #алгоритм #алгоритмы
-
Просто о сложном: Нейросети, Графы
Просто о сложном: нейросети Введение В этой статье я хочу простыми словами объяснить практическое применение нейронных сетей для решения конкретных задач. Важно отметить, что мы не будем подробно разбирать, как устроены нейросети изнутри – об этом уже написано множество материалов. Вместо этого сосредоточимся на том, как применить нейросеть к конкретной задаче, как подобрать под неё данные и параметры. Мы не будем использовать готовые библиотеки машинного обучения – весь функционал реализован самостоятельно, чтобы наглядно разобраться, как можно написать нейросеть под свою задачу. Первое, с чего начнём: нейросеть имеет смысл применять только там, где действительно существуют закономерности в данных. Простой пример – домашний питомец, услышав будильник утром, с большой вероятностью понимает, что скоро получит свежую еду. Это примитивная закономерность (звук будильника → завтрак). Но бывают и очень сложные закономерности, которые не лежат на поверхности. То, что мы называем интуицией, по сути является распознаванием подобных скрытых закономерностей нашим мозгом. Итак, если в вашей задаче нет никаких паттернов или повторяющихся зависимостей, нейросеть не поможет – она просто будет гадать наугад. Если же вы предполагаете наличие закономерностей, можно попытаться их выявить с помощью обучения сети. Правда, будьте готовы к ситуации: если результат плохой, непонятно, то ли закономерностей нет, то ли вы неправильно обучили модель. В этой статье на конкретном примере мы рассмотрим весь путь: от зарождения идеи до реализации и обучения нейросети, а также разберём сложности, с которыми можно столкнуться. Примером послужит задача прогнозирования исхода спортивного события – будем пытаться угадать, выиграет ли первая команда первую четверть баскетбольного матча по ходу игры, используя нейросеть. Это своего рода модель для ставок на спорт, но сразу подчеркну: цель исключительно научная, а не научиться обыгрывать букмекеров (позже станет ясно почему). Постановка задачи: нейросеть для ставок на спорт
https://habr.com/ru/articles/942228/
#нейросети #ai #нейросеть #алгоритмы #алгоритм #алгоритмы_поиска #алгоритмы_сортировки #алгоритмическая_композиция #алгоритмы_машинного_обучения #алгоритмы_поиска_пути
-
Задача “Container With Most Water” 150 000$ от Amazon — мое не стандартное решение
💧 Условие задачи: «Аквариум» (Container With Most Water) Представим, что нам дан массив целых чисел — например: [1, 8, 6, 2, 5, 4, 8, 3, 7] Каждое число в этом массиве символизирует высоту вертикальной стенки — как будто это столбец, воткнутый вертикально в пол. Все столбцы стоят на одной горизонтальной линии, то есть на «полу» (ось x), и находятся на равном расстоянии друг от друга. 📦 Теперь представим, что между этими столбиками можно налить воду — как будто мы смотрим на 2D-аквариум сбоку. 🧠 Цель задачи Найти две такие стенки (столбцы), которые, если между ними налить воду (по нижней границе — полу), смогут удержать наибольшее количество воды. 💧 Объём воды между двумя столбцами рассчитывается так: • Высота воды ограничена меньшей из двух стенок — потому что вода не может быть выше, чем самая низкая из них (иначе вытечет). • Ширина — это расстояние между этими двумя столбцами (в индексах). объём = (индекс_правой − индекс_левой) × min(высота_левой, высота_правой) Массив: [1, 8, 6, 2, 5, 4, 8, 3, 7] Индексы: 0 1 2 3 4 5 6 7 8 Столбцы (высоты): вертикальные стенки Пол: горизонтальная база (ось x) Вода: заливается между двумя стенками и держится на уровне самой низкой из них. Забегая вперед скажу 2. Классическое решение и его недостатки Обычно задача решается методом двух указателей с линейной сложностью. Однако этот подход не всегда даёт глубокую интуицию выбора стенок. ⸻ 3. Предложенный подход Я ввожу понятие энергоэффективной оценки каждой стенки: При этом: • Если стенка ближе к центру, её расстояние меньше — значит штраф за “удалённость” ниже. • Высокая, но далёкая стенка будет “наказана” в оценке. • Выбираются две стенки с максимальными result, а затем между ними вычисляется реальный объём воды. ⸻ 4. Обоснование устойчивости (пример) При наличии сильно асимметричного массива (например, левые элементы — [1, 2, 1], правые — [9, 8, 9]), алгоритм всё равно выбирает правые высокие значения, потому что они превосходят штраф и сохраняют высокий итоговый результат. ✔ Это делает алгоритм устойчивым к локальным аномалиям и не требует явно жёстких условий или вложенных циклов. ⸻ 5. Заключение Предложенный алгоритм демонстрирует новый взгляд на задачу через призму “выгодности” стенки, объединяя геометрическую и энергетическую оценку. Он сохраняет линейную сложность, но обладает дополнительной устойчивостью и хорошей визуальной интерпретацией. Разница:
https://habr.com/ru/articles/941446/
#алгоритмы #алгоритм #алгоритмы_поиска #алгоритмы_сортировки #алгоритмическая_торговля #алгоритмы_поиска_пути #лучшее #лучшие_практики #сложность_алгоритма #сложность_разработки
-
Зеркальные равенства: красивая математическая симметрия
Математика полна удивительных закономерностей. В одном из номеров журнала «Наука и жизнь» была небольшая заметка в разделе «Математические досуги». С двумя примерами на умножение из разряда математических неожиданностей. 20646 × 35211 = 11253 × 64602 203313 × 657624 = 426756 × 313302 Примечательны эти примеры тем, что цифры в них расположены зеркально-симметрично относительно знака равенства. Зеркальные равенства напоминают палиндромы, но с ключевым отличием. Палиндром — это свойство одного числа, а зеркальное равенство — это свойство операции над числами. Как математический объект исследования зеркальные математические равенства не имеют определённого автора или даты первого упоминания. Это скорее концепция, которая возникает в процессе изучения чисел и их свойств, как естественное развитие темы палиндромов и симметрии в математике. Как много существует подобных комбинаций?
https://habr.com/ru/companies/first/articles/918242/
#зеркальные_равенства #палиндром #алгоритм #занимательная_математика #код #python
-
Алгоритмическая угадайка от Google: 1 000 000$ как я решил задачу и улучшил свой алгоритм трижды
Недавноя наткнулся на интересную задачку, которая, по слухам, используется на собеседованиях в Google. На первый взгляд — простая угадайка: нужно отгадать комбинацию из нескольких элементов, получая после каждой попытки лишь подсказку о числе совпадений. Но стоило мне углубиться, как стало ясно: эта задача отлично тренирует стратегическое мышление, анализ вероятностей и применение эвристик. Изначально я придумал решение, а затем трижды его улучшил, добившись стопроцентного результата и снизив среднее число попыток. В этой статье я подробно расскажу, как размышлял, какие гипотезы проверял, и как шаг за шагом превратил «угадайку» в чётко работающий алгоритм.
-
Как одной математической формулой определить цвет ячейки на рулетке?
Однажды моя девушка проходила курс по основам python. Она показала мне небольшую задачку на использование if-else: "по номеру кармана (ячейки) на рулетке определите его цвет". Казалось бы, все довольно просто — используем условные операторы и не знаем проблем! Но можно ли вывести математическую формулу которая будет работать для всех ячеек? В этой статье я описал поиски такой формулы!
-
Гений против алгоритма: почему ИИ не способен повторить «Войну и мир»
Нейросети стремительно обучаются и при грамотном запросе могут генерировать достаточно качественный литературный контент. Вопрос: «Может ли ИИ превзойти Льва Толстого и самостоятельно написать шедевр, подобный "Войне и миру"?» В обозримом будущем ответ: «Нет!» Конечно, шанс, что ИИ напишет лучше Толстого, есть, но равен 0,0001%. Это символическая вероятность — технически возможно, но практически нереально по ряду причин. Давайте разберёмся, почему даже самый продвинутый алгоритм уступает Льву Николаевичу.
https://habr.com/ru/articles/911530/
#нейросеть #языковая_модель #генеративный #генерация #токен #контекст #алгоритм #запрос #роман #Толстой
-
Решето дельт — простой способ раскладывать числа на множители, о котором вам не рассказывали
Что вы скажете, если я расскажу вам, что знаю метод разложения чисел на множители, который не так сложен, как алгоритмы QS и GNFS, основывается не на магии, а на логике и простых арифметических принципах, легко реализуется, его легко распараллелить для ускорения вычислений, он не требует много памяти и при этом зачастую в разы эффективнее метода Ферма́? Заинтересовало? Тогда постараюсь рассказать вам про него таким языком, чтобы он был понятен не только математикам. Не будет никаких сложных концепций, квантов или эллиптических кривых — только квадрат и остаток от деления. Примеры, объяснения, таблицы — всё на месте. Даже если вы забыли, что такое , вы всё равно поймёте, как это работает.
-
[Перевод] React Reconciliation: скрытый механизм, управляющий компонентами
❯ Механизм согласования В моих предыдущих статьях ( 1 , 2 ) я подробно рассматривал, как работает React.memo , а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation). Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.
https://habr.com/ru/companies/timeweb/articles/901212/
#timeweb_статьи_перевод #javascript #reactjs #reactjs #react #reconcilation #согласование #algorithm #алгоритм
-
[Перевод] React Reconciliation: скрытый механизм, управляющий компонентами
❯ Механизм согласования В моих предыдущих статьях ( 1 , 2 ) я подробно рассматривал, как работает React.memo , а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation). Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.
https://habr.com/ru/companies/timeweb/articles/901212/
#timeweb_статьи_перевод #javascript #reactjs #reactjs #react #reconcilation #согласование #algorithm #алгоритм
-
[Перевод] React Reconciliation: скрытый механизм, управляющий компонентами
❯ Механизм согласования В моих предыдущих статьях ( 1 , 2 ) я подробно рассматривал, как работает React.memo , а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation). Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.
https://habr.com/ru/companies/timeweb/articles/901212/
#timeweb_статьи_перевод #javascript #reactjs #reactjs #react #reconcilation #согласование #algorithm #алгоритм
-
[Перевод] React Reconciliation: скрытый механизм, управляющий компонентами
❯ Механизм согласования В моих предыдущих статьях ( 1 , 2 ) я подробно рассматривал, как работает React.memo , а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation). Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.
https://habr.com/ru/companies/timeweb/articles/901212/
#timeweb_статьи_перевод #javascript #reactjs #reactjs #react #reconcilation #согласование #algorithm #алгоритм
-
Как подготовиться к алгоритмическому собеседованию в Яндекс
В конце января мне написал рекрутер из Яндекса с предложением пройти алгоритмическое собеседование. На тот момент у меня было решено всего 55 задач на LeetCode, из которых 50 — по SQL. Знания в области алгоритмов были практически на нуле. Я решил взять паузу на два месяца и сосредоточиться на подготовке. В конце марта я успешно прошёл первый этап. О том, как прошли остальные этапы, расскажу ближе к концу статьи. В этой статье я хочу поделиться своим опытом подготовки: как я готовился, какие стратегии использовал и что в итоге действительно помогло.
https://habr.com/ru/articles/902908/
#собеседование #алгоритмы #алгоритм #яндекс #интервью #собес
-
Как подготовиться к алгоритмическому собеседованию в Яндекс
В конце января мне написал рекрутер из Яндекса с предложением пройти алгоритмическое собеседование. На тот момент у меня было решено всего 55 задач на LeetCode, из которых 50 — по SQL. Знания в области алгоритмов были практически на нуле. Я решил взять паузу на два месяца и сосредоточиться на подготовке. В конце марта я успешно прошёл первый этап. О том, как прошли остальные этапы, расскажу ближе к концу статьи. В этой статье я хочу поделиться своим опытом подготовки: как я готовился, какие стратегии использовал и что в итоге действительно помогло.
https://habr.com/ru/articles/902908/
#собеседование #алгоритмы #алгоритм #яндекс #интервью #собес
-
Как подготовиться к алгоритмическому собеседованию в Яндекс
В конце января мне написал рекрутер из Яндекса с предложением пройти алгоритмическое собеседование. На тот момент у меня было решено всего 55 задач на LeetCode, из которых 50 — по SQL. Знания в области алгоритмов были практически на нуле. Я решил взять паузу на два месяца и сосредоточиться на подготовке. В конце марта я успешно прошёл первый этап. О том, как прошли остальные этапы, расскажу ближе к концу статьи. В этой статье я хочу поделиться своим опытом подготовки: как я готовился, какие стратегии использовал и что в итоге действительно помогло.
https://habr.com/ru/articles/902908/
#собеседование #алгоритмы #алгоритм #яндекс #интервью #собес
-
Как подготовиться к алгоритмическому собеседованию в Яндекс
В конце января мне написал рекрутер из Яндекса с предложением пройти алгоритмическое собеседование. На тот момент у меня было решено всего 55 задач на LeetCode, из которых 50 — по SQL. Знания в области алгоритмов были практически на нуле. Я решил взять паузу на два месяца и сосредоточиться на подготовке. В конце марта я успешно прошёл первый этап. О том, как прошли остальные этапы, расскажу ближе к концу статьи. В этой статье я хочу поделиться своим опытом подготовки: как я готовился, какие стратегии использовал и что в итоге действительно помогло.
https://habr.com/ru/articles/902908/
#собеседование #алгоритмы #алгоритм #яндекс #интервью #собес
-
Рекурсивная Гипотеза Реальности – от аксиомы к сильному ИИ. Статья 1
Представьте: нет ни пространства, ни времени, ни законов — только пустота. И всё же из неё рождается всё — звёзды, галактики, мы с вами. Как? Рекурсивная гипотеза реальности (RHR) предлагает ответ: реальность — это самодостаточный процесс, где два простых состояния, 0 и 1, через рекурсию порождают бесконечность. Это не просто философия — это мост к созданию сильного ИИ, способного моделировать реальность как самодостаточный алгоритм. Здесь нет формул (пока!), но есть вызов: от аксиомы к космосу, от ветвления к сознанию, от идеи к сообществу. Хотите узнать, как из ничего возникает всё? И готовы ли вы превратить эту гипотезу в код, физику или алгоритм? Тогда шагните с нами в коридор зеркал — и давайте разберёмся вместе.
https://habr.com/ru/articles/893958/
#рекурсия #дуализм #случайность #алгоритм #мультивселенная #симметрия #сознание
-
Обновление SPA приложения в браузере пользователя Node/React
Всем привет. Мне читатели иногда присылают сообщения с одним и тем же вопросом, что ты же Software Engineer и Solution Architect, но почти все твои статьи касаются бизнеса, менеджмента, процессов, управления командами и так далее. Но нет статей технического характера, про разработку и создание разных фич (feature) для проекта. Причина по которой это происходит в том, что весь интернет забит информацией о том, как программировать, но очень мало информации о том, что именно программировать, и о том, что за пределами кодинга огромное количество нерешенных проблем, которые нивелируют весь процесс программирования. Но сегодня я расскажу об одной фиче, которая может оказаться очень полезной для многих.
https://habr.com/ru/articles/890304/
#spa #алгоритм #архитектура #nodejs #reactjs #решение #webразработка
-
Алгоритм генерации волн врагов в рогалике
Привет! Недавно в ранний доступ в Steam вышла наша игра Clayers: Prologue . Это рогалик в глиняном стиле, где нужно подбирать и смешивать цвета, чтобы убивать врагов. В этой статье разберём наш подход к генерации волн с учётом сложности противников.
https://habr.com/ru/articles/880924/
#рогалик #генерация #волны #алгоритм #формулы #математическое_ожидание #godot
-
Нестандартная обобщённая хеш-таблица на чистом Си
Когда я работал над программой для маршрутизации трафика через DNS-запросы, мне нужно было проверять наличие доменов в заранее определенном списке. В языке Си нет стандартной библиотеки для работы с хеш-таблицами, поэтому обычно используются сторонние решения или создаются собственные. Я попробовал несколько готовых реализаций, но оказалось, что они недостаточно эффективны для моих нужд, так как требовали слишком много памяти. В итоге я разработал свою собственную хеш-таблицу .
-
Алгоритм подготовка материалов для митапа
Во многих компаниях проводятся митапы, на которых работники обмениваются опытом и обсуждают актуальные темы в своей сфере деятельности. В данной небольшой статье рассмотрим алгоритм подготовка материала для митапа. Алгоритм может быть описан словами: пришел, увидел, рассказал...
https://habr.com/ru/articles/877422/
#митап #алгоритм #проведение_презентаций #проведение_вебинаров #семинар
-
Отчет о проекте эффективного приоритетного дерева SAPT
Отчет о, написанном мною, алгоритмическом статичном двунаправленном дереве, имеющим сложность по всем параметрам. Не считаю эту статью чем-то выдающимся, никуда не претендую, это всего лишь отчет моей работы. Если вам понравится можете свободно пользоваться. В качестве небольшого предисловия: Зачем я спроектировал дерево? Я пишу научный проект из сферы биологии, где присутствует элемент иерархии, и для последовательного выполнения действий следовало отсортировать данные по приоритетам, при этом делать это максимально быстро и эффективно. Пример профилей поведения будет в конце статьи. Читать отчет
https://habr.com/ru/articles/876878/
#алгоритмы_сортировки #алгоритмы_поиска #алгоритм #дерево #деревья_поиска
-
Алгоритмы сортировки в Go: простое объяснение и примеры реализации
Сортировка — это процесс упорядочивания элементов в массиве или списке по определенному критерию (например, по возрастанию или убыванию). В программировании это одна из базовых задач, которая помогает эффективно искать, обрабатывать и анализировать данные. Давайте разберем основные алгоритмы сортировки, их принципы работы и сложность на примерах реализации на языке Go.
https://habr.com/ru/articles/875182/
#сортировка #сортировка_слиянием #сортировка_вставками #сортировка_пузырьком #сортировка_выбором #алгоритм #алгоритмы #алгоритмы_сортировки
-
Python и нечеткое сопоставление: решение проблемы разнобоя в адресах
Иногда приходится заниматься сравнением больших списков адресов, в которых адреса записаны совершенно по разному без внятных идентификаторов вроде номера объекта - есть только адрес. Один и тот же адрес может фигурировать в различных списках следующим образом: 📍 "д. Малое Шилово, ул. Березовая, д. 7" и "Березовая 7_М Шилово". 📍 "п. Ласьва, ул. Весенняя, д. 5" и "Весенняя 5_Ласьва". 📍 "Луговой пер 5, Краснокамск г" и "г. Краснокамск, пер. Луговой, 5". 📍 "д. Новая Ивановка, ул. Солнечная, 18" и "д.Новая Ивановка, ул.Солнечная, 18". Уже выделенные отдельно адреса могут выглядеть как на скриншоте Экселя. А пример поставленной задачи может звучать так: « В реестре поданных объектов отметить все согласованные объекты (из общего списка согласованных) ». Если отбросить вариант ручного исполнения и обратиться к скриптам, то мне видится всего два решения: ✅ Использовать алгоритмы нечёткого сопоставления. ✅ Использовать геокодинг адресов. Ищем приемлемый вариант сопоставления
https://habr.com/ru/articles/873242/
#алгоритм #Алгоритм_нечёткого_сопоставления #карта #fuzzywuzzy
-
Python и нечеткое сопоставление: решение проблемы разнобоя в адресах
Иногда приходится заниматься сравнением больших списков адресов, в которых адреса записаны совершенно по разному без внятных идентификаторов вроде номера объекта - есть только адрес. Один и тот же адрес может фигурировать в различных списках следующим образом: 📍 "д. Малое Шилово, ул. Березовая, д. 7" и "Березовая 7_М Шилово". 📍 "п. Ласьва, ул. Весенняя, д. 5" и "Весенняя 5_Ласьва". 📍 "Луговой пер 5, Краснокамск г" и "г. Краснокамск, пер. Луговой, 5". 📍 "д. Новая Ивановка, ул. Солнечная, 18" и "д.Новая Ивановка, ул.Солнечная, 18". Уже выделенные отдельно адреса могут выглядеть как на скриншоте Экселя. А пример поставленной задачи может звучать так: « В реестре поданных объектов отметить все согласованные объекты (из общего списка согласованных) ». Если отбросить вариант ручного исполнения и обратиться к скриптам, то мне видится всего два решения: ✅ Использовать алгоритмы нечёткого сопоставления. ✅ Использовать геокодинг адресов. Ищем приемлемый вариант сопоставления
https://habr.com/ru/articles/873242/
#алгоритм #Алгоритм_нечёткого_сопоставления #карта #fuzzywuzzy