Как я отказался от вычисления квадратного корня

Очень часто, при цифровой обработке сигналов необходимо вычислить длинну вектора, обычно это делается по формуле A=SQR(X^2+Y^2). Здесь возвести в квадрат значение не сложно, но операция вычисления квадратного корня не является простой операцией, особенно для микроконтроллеров. Кроме того, алгоритмы вычисления корня выполняются не стабильное время, и для алгоритмов, которых таких вычислений ПОДРОБНЕЕ

Почему успехи ИИ DeepMind в Atari вызывают у меня разочарование

Картинка, которую вы видите, позаимствована с сайта DeepMind, и демонстрирует 57 игр, в которых их новейшая разработка Agent57 (обзор статьи на Хабре) достигла успеха. Само число 57 взято не с потолка, — именно столько игр было выбрано еще в 2012 году, чтобы стать своеобразным бенчмарком среди разработчиков ИИ для игр ПОДРОБНЕЕ

Алгоритмы на экзамене в ШАД

Привет! Меня зовут Александр Курилкин, и я веду курс по алгоритмам в «ШАД Helper». В этом посте я разберу несколько задач из вступительных экзаменов прошлых лет, чтобы вы смогли увидеть, что вас ждет, и понять, чему мы сможем вас научить на нашем курсе. Надеюсь, что вы разделяете мою любовь к ПОДРОБНЕЕ

«Ломай меня полностью!» Как одни алгоритмы генерируют капчу, а другие её взламывают

Неважно, какой у вас интеллект – искусственный или естественный – после этого подробного разбора никакая капча не будет помехой. В конце статьи – самое простое и эффективное решение для обхода. CAPTCHA – полностью автоматизированный публичный обратный тест Тьюринга для различения компьютеров и людей путем автоматической настройки определенных заданий, которые трудны ПОДРОБНЕЕ

Must-have алгоритмы для работы со строками на C++

Алгоритмы на C++ для строковых задач, в которых наивное решение имело бы недопустимую сложность: полиномиальное хеширование, КМП, работа с префиксным деревом и алгоритм Ахо – Корасик. Полиномиальное хеширование Хеширование строк позволяет эффективно отвечать на вопрос о равенстве строк, сравнивая их хеш-коды. Хеш-код – целое число, вычисляемое по символам строки. Если ПОДРОБНЕЕ

Как на C++ быстро заполнить нулями большой массив?

Пара слов к вопросу об эффективном заполнении массивов одинаковыми значениями и о том, почему нельзя слепо доверять компиляторам. Трэвис Даунс в недавнем посте рассказал, что некоторые компиляторы C++ испытывают проблемы в производительности при заполнении массивов нулями. Даниэль Лемир продолжил разговор об этой проблеме в своём блоге и провёл наглядный тест ПОДРОБНЕЕ

Поиск анаграмм и сабанаграмм во всех словах языка

Решение задач с анаграммами натолкнуло на мысль: Сколько останется слов, если удалить все анаграммы и сабанграммы из словаря русского языка В найденном словаре больше 1,5 млн слов в различных формах Можно сравнить каждое слово с каждым, но для 1,5 млн записей это долго и неоптимально. В мире с бесконечной памятью ПОДРОБНЕЕ

Фильтр Калмана — Введение

Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д. Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), ПОДРОБНЕЕ

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

Перед вами руководство для того, чтобы научиться быстро и без труда решать алгоритмические задачи. Готовьтесь к собеседованиям правильно. Для начала, если вы думаете, что изучения основ компьютерных наук хватит для того, чтобы вам посыпались предложения от разных компаний, вы можете закончить читать здесь. Это руководство предназначено для тех, кто хочет ПОДРОБНЕЕ

Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы

В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих понимание как простых, так и продвинутых алгоритмов. Воодушевленный awesome-awesomeness и некоторыми другими шикарными библиотеками, я написал список лучших, на мой взгляд, источников для изучения и практики знаний алгоритмов. Если вы хотите поспособствовать развитию списка, пожалуйста, прочтите Гайд по развитию списка. ПОДРОБНЕЕ