Рубрика «алгоритм» - 7

Введение

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

Подготовка

Сначала опишем структуру данных, в которой будет храниться исходная математическая функция. Опишем трейт MathAST:

sealed trait MathAST

И его наследников:
Читать полностью »

Facebook уволил редакторов — и алгоритм пошёл вразнос - 1

Модуль подбора «Популярных новостей» в новостной ленте Facebook работает очень хитро. «Список тем персонализируется на основе разных факторов, включая ваши отметки «Нравится» для Страниц, ваше местонахождение и те новости, которые популярны по всему сайту Facebook», — сказано в справочном центре. На сегодняшний день раздел «Популярное» со списком популярных тем (Trending Topics) доступен только на английском языке в некоторых странах.

Исторически, в Facebook работал отдел редакторов, который модерировал список популярных новостей, потому что в социальной сети нередко распространяются вирусные и фейковые новости с непроверенными источниками. Редакторы удаляли фейки и добавляли в список материалы из надёжных источников. Предполагалось, что выбор редакторов в том числе поможет обучать алгоритм. Человеческая модерация не вызывала особых претензий, пока в США не началась избирательная кампания перед президентскими выборами. И на сцену не вышел известный политик — идеальный генератор вирусных новостей.
Читать полностью »

В этом посте речь пойдёт о реализации процедуры вычисления значения функции распределения Стьюдента без использования каких-либо специальных математических библиотек. Только Java (либо C/C++, код вполне универсален).

Читать полностью »

Центральная симметрия сетки - 1Исследуя одну задачу оптимизации, столкнулся с проблемой симметричности конфигураций при прямом переборе вариантов. Схожая проблема возникает в некоторых решениях задачи о восьми ферзях. Исследуя центральную симметрию прямоугольной сетки, я обнаружил революционный довольно интересный метод определения и проверки симметричных конфигураций с использованием чисел-«перевертышей».
Читать полностью »

Понадобилось мне недавно написать аналог функции strstr(поиск подстроки в строке). Я решил его ускорить. В результате получился алгоритм. Я не нашел его по первым ссылкам в поисковике, зато там куча других алгоритмов, поэтому и написал это.

График сравнения скорости работы моего алгоритма, с функцией strstr на 600 кб тексте русскоязычной книги, при поиске строк размером от 1 до 255 байт:

image

Читать полностью »

Это завершение статьи habrahabr.ru/post/303342

Спасибо комментаторам, сделавшим более ясным мое слишком уж конспективное изложение метода Лобачевского.

В самом деле, мне следовало явно написать, что квадрированный полином надо рассматривать как полином от аргумента x^2, где x — аргумент исходного полинома.

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

Теперь на этом фундаменте будет построен вполне элементарный алгоритм вычисления комплексного корня полинома, не имеющего вещественных корней.
Читать полностью »

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

А теперь по порядку.
Читать полностью »

Наверное, каждый, кто интересуется регулярными выражениями и читает Хабр, видел этот кроссворд из регулярных выражений:

image

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

Читать полностью »

Не так давно вышла моя первая личная игра для мобильных. Суть заключается в том, что врагов надо пережевывать пальцами. Алгоритм не уникальный, но встречается редко. На первый взгляд, нужно только прослушать зум-движение двух пальцев, вроде ничего сложного, однако в процессе разработки игры выявляются различные подводные камни.
Читать полностью »

Метод Монте-Карло для поиска в дереве - 1

Метод Монте-Карло это алгоритм принятия решений, часто используемый в играх в качестве основы искусственного интеллекта. Сильное влияние он оказал на программы для игры в Го, хотя находит свое применение и в других играх, как настольных, так и обычных компьютерных (например Total War: Rome II). Так же, стоит отметить, что метод Монте-Карло используется в нашумевшей программе AlphaGo, победившей го-профессионала 9-го дана Ли Седоля в серии из 5 игр.

В данной статье хотелось бы рассказать про версию алгоритма Монте-Карло под названием Upper Confidence bound applied to Trees (UCT). Именно после публикации этого алгоритма в 2006-м году, программы для игры в Го сильно усилили свои позиции и достигли значительных успехов в игре против человека.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js