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

Алгоритмы *

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

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

5 результатов обучения в IT и не только

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

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

Из тех, кому вёл уроки более 2-х лет, многие сейчас учатся в технических вузах, кто-то подрабатывает уже. Отсеялись те, кто пошёл учиться изначально “для расширения кругозора”. За всё время более 2-х лет занималось около 50 подростков. В среднем за год через мои занятия проходило 96 человек (8 групп по 12 человек) в школах и на частном обучении около 20 человек в год.

10 лет в сумме проработал в ИТ-образовании. Была и компьютерная грамотность, и робототехника, и программирование, и тренинги, и выездные лагеря по личностному росту, в том числе.

Читать далее

Создаем алгоритм определения скорости объектов по видео

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

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

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

Читать далее

Решение задачи с собеседования Linked List Cycle [+ ВИДЕО]

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

Всем салют! Давайте решим задачу "Linked List Cycle"

Дан head, являющийся головой связного списка, необходимо определить, есть ли в списке цикл.

Читать далее

Обучение модели как ребёнка

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

Привет, я токсичный программист в области машинного обучения (МЛ), и у меня есть идея создать проект, посвящённый разработке сильного искусственного интеллекта (далее — СИИ (или же AGI)). В небольшом блоге я буду делиться с вами своим опытом в создании чат-бота, который будет обладать СИИ, ну или хотя бы казаться таким.

Читать далее

Настройка ПИД-регулятора для беспилотных автомобилей

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

Настройка ПИД-регулятора для беспилотных автомобилей

Этот проект иллюстрирует концепцию ПИД-регулятора, применяемого в беспилотных автомобилях в рамках программы Udacity «Беспилотный автомобиль»

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

В контексте беспилотных автомобилей они играют важную роль в управлении такими параметрами движения, как рулевое управление, ускорение и т. д. Сложные алгоритмы, используемые в беспилотных автомобилях, по сути, рассчитывают траекторию и скорость движения беспилотного автомобиля. Автономность может быть реализована только в том случае, если автомобиль следует по траектории с заданной скоростью. Именно здесь PID-регулятор играет свою роль, обеспечивая соблюдение беспилотным автомобилем рассчитанных параметров. Любое отклонение от рассчитанных параметров может привести к непредвиденным или катастрофическим последствиям.

Читать далее

Государственные перевороты: бармалеи выпрыгивают как черти из табакерки. Не хотите, дети, в Африку сыграть?

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

На исторических данных за 1991-2019 год покажем, как можно "увидеть" и "выцепить" признаки переворота.  С помощью машинного обучения и ансамблевых модели. Ансамбли (конечно, не музыкальные), как показывает практика, – более эффективны в таких делах, и самое главное -  хорошо "тюнятся" и "чипуются".

*Nota Bene (та Bene, что ни разу не гессерит). При всем негативном отношении к революциям, переворотам и прочим событиям в любой части мира, это – объективная реальность, которую можно не только изучать, но и предупреждать.

Читать далее

Как получить на 30% больше подписчиков, раздавая промокоды в Telegram

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

Каждый день на меня сыпятся предложения "Подпишись на канал!" И знаете, в чём их главная ошибка? Они все пытаются продать мне подписку, хотя я их вижу впервые. Холодный контакт, ноль доверия — нет, спасибо.

Вместо того, чтобы втюхивать подписку холодной аудитории, узнай:
- Как согреть холодных пользователей и превратить их в лояльных;
- Как использовать промокод грамотно и мотивировать подписку на Telegram-канал;
- Как автоматизировать выдачу промокодов и защитить их от злоупотреблений;

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

Читать далее

Пошаговое повышение производительности алгоритма

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

Недавно мне довелось работать над новым алгоритмом приближённого поиска ближайших соседей, который называется RaBitQ. Автор этого алгоритма уже предоставил достаточно скоростную реализацию на C++. Я попытался переписать этот алгоритм на Rust (ещё один случай «а почему бы не переписать на Rust»). Однако, я обнаружил, что моя реализация гораздо медленнее оригинальной. Далее я расскажу, как шаг за шагом доработал её производительность.

Читать далее

ИИ в диагностике рака кожи

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


Одним из самых коварных и гадких заболеваний у человека является рак. Независимо от его локализации, он может нанести колоссальный ущерб здоровью или привести к летальному исходу. Одним из самых распространенных считается рак кожи, а именно меланома. Проблема этого типа рака заключается в том, что он может быть на видном месте и не вызывать каких-либо ощутимых симптомов до момента, когда уже будет поздно что-либо делать. Именно потому людям, которые входят в группу риска, необходимо регулярно проверяться у дерматоонколога. Однако даже самый опытный специалист все равно остается человеком, который может упустить малозаметные признаки, тем самым подарив раку шанс на развитие. По этой причине человечество начало изобретать множество разнообразных инструментов диагностики, помогающие врачам найти рак вовремя. Одним из потенциально полезных инструментов в данном начинании может быть искусственный интеллект. Ученые из Университета им. Раскина (Великобритания) провели исследование, в котором обучили систему ИИ определять ранние признаки меланомы. Как именно проходило это обучение, и насколько эффективен ИИ в качестве диагноста? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Насколько быстры B-деревья по сравнению с хэш-таблицами?

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

Во многих «скриптовых» языках для стандартных ассоциативных структур данных используется хэш-таблица (hashmap) (объекты Javascript, словари Python и так далее). Хэш-таблицы обладают множеством раздражающих свойств:

  • Уязвимость к hash flooding.
  • В случае защиты от hash flooding случайными seed порядок итераций становится недетерминированным, что мешает при тестировании снэпшотов, создании воспроизводимых сборок и так далее.
  • При вставке может требоваться рехэширование, что в наихудших случаях создаёт для больших хэш-таблиц ужасные задержки.
  • Многократное увеличение больших распределений памяти без фрагментации сложно реализовать в целевых платформах wasm, потому что трюки с виртуальной памятью недоступны, а для страниц невозможно выполнить unmapping.
  • Векторные команды в wasm ограничены, а команды AES отсутствуют. Это делает многие хэш-функции ещё более медленными.

Упорядоченные структуры данных наподобие B-деревьев не имеют этих недостатков. Обычно они медленнее хэш-таблиц, но меня удивило, насколько разнятся ожидания людей относительно их скорости.
Читать дальше →

Как мы в Яндексе делаем роборуку с искусственным интеллектом

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

Ещё 10–20 лет назад многие думали, что роботы под управлением искусственного интеллекта возьмут на себя всю тяжёлую и опасную работу на предприятиях. Однако нейросети нашли применение в офисах, колл‑центрах, службе поддержки и даже стали полезны людям из творческих профессий — копирайтерам, дизайнерам, программистам. Тем не менее создание роботов, которые могут самостоятельно выполнять сложные физические манипуляции с материальными объектами, остаётся трудной и нерешённой задачей.

В этой статье я расскажу, как команда ML R&D в отделе робототехники Маркета создаёт роборуку и обучает нейросети, благодаря которым робот взаимодействует с физическим миром.

Читать далее

ПО шагам: Защищаем сайт от парсеров и поведенческих ботов с помощью DNS-прокси

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

- контент не будет спаршен
- с ВПН работает
- выявит высокоуровневых JS ботов
- реальных не заблокирует
- фиксирование только настоящих просмотров
- рекомендательная система будет работать изумительно

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

Читать далее

Задачки «полуфинала» соревнования МТС (True Tech Arena 2024) — обзор, разбор

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

Немного неожиданно что этот уровень назвали "полуфинал" - участники попадали в него сразу после квалификации, проходившей в первой половине октября. И в квалификации задачки были "не бей лежачего" (коротко упомянем их тоже). В "полуфинале" же предложили 5 задач с тем чтобы решить их за 5 часов, но время можно было выбрать любое в течение нескольких дней. Я решил две, ещё две понимаю как решать и по одной кажется без идей. На решённые задачи затратил минут 20, на нерешенные часа полтора. Давайте посмотрим на них вместе - вдруг вам будет интересно обсудить, поправить или подсказать.

Оговорюсь: я не имею отношения к МТС и не занимаюсь "спортивным/олимпиадным" программированием. Обычный мидл-девелопер из обычной конторы. Отчасти поэтому мне как и большинству из вас подобные задачки в излишних количествах кажутся немного скучными :)

Здесь речь про "алгоритмический трек" - а насчет параллельного соревнования по "роботам" можно посмотреть мою предыдущую статью.

Итак, к задачкам!

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

Предиктивная аналитика политических кризисов с помощью machine learning (на исторических данных)

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

Допустим, вы инвестор-финансист, покупающий государственные облигации банановой республики или акции компании по выращиванию и поставке бананов или даже правитель бананового рая – всегда необходимо учитывать не только финансовые, но и политические риски в развитии страны. Представим, что наша основная задача - оценить риски. Просто, цинично, в стиле real politic без всякой душеспасительности и ... котиков.

Читать далее

Закон распределения делителей числа (расширенная версия)

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

В арифметике известны элементарные действия с числами (+), (–), (×), (/) и др., использование которых при заданных исходных данных дает нам возможность получать определенные результаты: сумму, разность, произведение, частное. Обратное действие с результатами в качестве исходных данных возможно далеко не всегда. Например, возведение в третью степень числа 7 3 = 343, обратным действием имеет извлечение из результата корня третьей степени (343)1/3= 7. При заданных результатах определить какими были исходные данные не всегда возможно.  Для суммы даже двух слагаемых 7 + 6 = 13 такого единственного обратного действия нет. Для числа 13 мы можем получить очень разные исходные 13 = 1+12 = 2+11 = 3+10 = 4 +9 = 5 + 8 = 6+7.

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

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

Задавая произведение простых чисел N = p˖q˖h˖s, мы понимаем, что каждое из p, q, h, s меньше самого N. Если ограничить начальный фрагмент НРЧ или ПНЧ значением N, то в пределах выделенного фрагмента будут присутствовать кратные делителей с возрастающими от 1 коэффициентами (для ПНЧ коэффициенты будут нечетными). Сможем ли мы увидеть и выделить такие кратные делителей N? Они ведь нам неизвестны.

Сегодня ответ на этот вопрос положителен. В 2014 году мной на Хабре был опубликован закон распределения делителей (ЗРД) натурального числа N в НРЧ. Применение закона позволяет получать для заданного натурального N его простые делители и их кратные в НРЧ. Ниже я кратко повторю публикацию 2014 года и приведу расширенную версию ЗРД на ряд целых чисел N.

Читать далее.

PinkHash: Незабываемые розовые хеши

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

Розовый хеш — это как розовый слон, только хеш.

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

К эндокринологам и многомерным антихристам

Продуктовая матрица. Что это такое? Как её сделать? Подробное руководство для маркетолога

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

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

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

И еще: всё, что далее написано, работает только, если это внедрять, поэтому лучше всего сразу брать и переносить эти наработки на собственные проекты.

Результат изучения статьи:

Читать далее

Решение задачи с Leetcode про возведение числа в степень

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

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

Читать далее

Два в одном: как древние морские существа спасаются от гибели, сливаясь в единое нечто

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

Хабр, привет! Это Дарья Фролова из команды спецпроектов МТС Диджитал. Сегодня поговорим о скилах, которые освоила живая природа. Однажды я наблюдала, как у аксолотля моей подруги отросла утраченная конечность. Выглядело впечатляюще, ведь это реальность, а не фильм о Дэдпуле. А вот гребневики ничего общего с грибами и медузами выдают штуки еще поинтереснее, чем аксолотли. Эти странные существа не только умеют восстанавливать части тела, но и в случае сильных повреждений сливаются с другими особями своего вида и таким образом выживают. Подробнее об этой суперсиле — под катом.

Читать далее

При чем здесь крипта  –  концептуальное SEO WEB 3.0:  в 2025 году все изменится

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

Дж. Биллингс: «Я не предложу и двух центов за простоту по эту сторону сложности, но отдам жизнь за простоту по ту сторону сложности». 

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

В статье:

Почему Google стал таким какой он сейчас

Не даем пользы, а удовлетворяем сиюминутные желания

Как SEO-шник читает твои мысли

Концептуальный подход в SEO  –  это не для всех

Крипта и SEO

Как работать с SEO-специалистом

Читать далее

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