Обновить
273.36

Алгоритмы *

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

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

Типизация (определение свойств) объекта руками пользователей сайта

Время на прочтение4 мин
Охват и читатели4.5K
Нередки случаи, когда требуется определить набор свойств вновь созданного объекта. Например, это может касаться сайта с описаниями товаров, фильмов (и, соответственно, для каждого объекта необходим набор тегов или свойств). Вообще, это касается любого хранилища описаний любых объектов, которые предполагают наличие свойств и возможности сравнивать объекты между собой по принципу «похож или непохож».

Итак, дано: на сайте есть готовый набор объектов, свойства для которых определены и проверены. И добавляется новый объект, о котором мы ничего не знаем, но посетители сайта могут судить. Задача: сделать так, чтобы администратору не надо было добавлять вручную требуемые свойства, а все делалось само, руками посетителей сайта.
Читать дальше →

Конкурс разработчиков «Родная речь» — начинаем обратный отсчет!

Время на прочтение1 мин
Охват и читатели2.4K
Важная информация для всех участников.

15 февраля в общий доступ выложена конкурсная база, с которой вам предстоит работать. Пароль для скачивания: SKT38G9MC28

image

Задание нужно выполнить до конца марта. Дедлайн отправки готового задания организаторам – 2 апреля. 3 апреля состоится полуфинал.

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

Быстрый старт на фондовом рынке: 10 шагов

Время на прочтение3 мин
Охват и читатели47K
image

В комментариях к предыдущим статьям нас просили написать руководство, которое бы помогло новичкам быстрее освоиться на фондовом рынке и не потерять при этом все свои деньги. Мы ведем блог на хабре уже несколько месяцев, так что у наc накопилось некоторое количество полезных, а не только развлекательных материалов, которые помогут на первом этапе лучше понять устройство фондового рынка.
Читать дальше →

Boids — простой алгоритм перемещения групп юнитов

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



Под катом описание алгоритма с примерами кода.

Читать дальше →

Никлаус Вирт: 80-летие классика программирования

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


15 февраля исполняется 80 лет выдающемуся швейцарскому учёному и инженеру — Никлаусу Вирту (Niklaus Wirth), лауреату премии Тьюринга — самой престижной премии в компьютерных науках, аналога Нобелевки.

Знаменитый профессор Высшей политехнической школы ETH из Цюриха, где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923).

Его знают как автора классического Паскаля (1970), но многие даже понятия не имеют, что было десятилетиями позже. Что его разработки во многом инициировали создание Java и C#. Что нынешние космические спутники, новейшие беспилотники и безупречные по качеству швейцарские железные дороги работают благодаря его блестящей инженерной мысли.

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

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

Истинное величие И.С.Баха человечество благодаря Феликсу Мендельсону оценило спустя почти сто лет после его смерти. Надеюсь, мудрого профессора Никлауса Вирта — компьютерного Баха — люди оценят по достоинству всё же немного раньше.

Юбилей Никлауса Вирта — очень хорошая проверка на компетентность не только российских СМИ, но и мировых.

Руслан Богатырёв. 15.02.2014, Москва

Читать дальше →

Моделируем мир для поисковой системы. Лекция в Яндексе

Время на прочтение4 мин
Охват и читатели15K
Сегодня мы поговорим о моделировании реальности как о способе мышления, восприятия информации и анализа данных. Будем вместе заново изобретать и улучшать модели, которые сегодня используются в поисковых системах: в метриках качества поиска, при создании факторов ранжирования и даже при построении новых интернет-сервисов. Именно этому посвящена лекция Федора Романенко.



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

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

Время на прочтение2 мин
Охват и читатели15K
Всем известно, что для наиболее эффективного решения всех проблем Вашего софта, необходимы грамотный баг-репорт и соответствующие логи. Но, зачастую, пользователи не предоставляют исчерпывающую и качественную информацию об ошибках, так что приходится обходиться тем, что есть. Так произошло и в этом случае: некий юзер mdickie прислал скриншот лога, хранивший в себе тайну зависания нашей ОС на его компьютере. Но фото оказалось крайне низкого качества, так что часть текста можно было разобрать с трудом, а остальной текст — невозможно разобрать вообще. yogev_ezra попробовал улучшить качество с помощью программ обработки изображений, но почти безуспешно.

Тогда мы решили провести конкурс на Хабре, суть которого заключалась в том, что любой читатель Хабра может попытаться улучшить оригинальную смазанную фотографию с помощью любой программы обработки изображений, и опубликовать свой результат. Читателя, добившегося наилучшего результата, ждёт приз — фирменная флешка и футболка с логотипом KolibriOS (включая пересылку на указанный победителем адрес). Обработанные фотографии надлежало выкладывать в комментариях к посту с конкурсом, либо на нашем форуме (в той теме, где находилась оригинальная фотография), до 17 сентября 2013 года 24:00 GMT. (Осторожно, трафик — под катом много фото)
Осторожно, трафик - под катом много фото

AES-128. Детали и реализация на python

Время на прочтение12 мин
Охват и читатели84K
Идея написать для себя что-то шифрующее родилась довольно тривиально — пришлось завести еще одну дебетовую карту и, следовательно, хранить в голове еще один пин-код. Хранить такую информацию в открытом виде паранойя не позволяет, использовать сторонние сервисы тоже, поэтому после некоторых поисков остановился на стандарте AES. Сразу захотелось разобраться и реализовать алгоритм самому, не прибегая к дополнительным модулям.

В статье я расскажу подробно о составляющих алгоритма, немного окунемся в мат часть и приведу пример реализации на python. В разработке я ограничивался только тем, что входит в состав стандартной библиотеки.
Читать дальше →

Алгоритм Улучшенной Самоорганизующейся Растущей Нейронной Сети (ESOINN)

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

Введение


В моей предыдущей статье о методах машинного обучения без учителя был рассмотрен базовый алгоритм SOINN — алгоритм построения самоорганизующихся растущих нейронных сетей. Как было отмечено, базовая модель сети SOINN имеет ряд недостатков, не позволяющих использовать её для обучения в режиме lifetime (т.е. для обучения в процессе всего срока эксплуатации сети). К таким недостаткам относилась двухслойная структура сети, требующая при незначительных изменениях в первом слое сети переобучать второй слой полностью. Также алгоритм имел много настраиваемых параметров, что затрудняло его применение при работе с реальными данными.

В этой статье будет рассмотрен алгоритм An Enhanced Self-Organizing Incremental Neural Network, являющийся расширением базовой модели SOINN и частично решающий озвученные проблемы.
Читать дальше →

Арифметика полей Галуа для кодирования информации кодами Рида-Соломона

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

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

Алгоритм и тактика поиска слов в игре Балда

Время на прочтение5 мин
Охват и читатели26K
Однажды на Хабре нашел статью об алгоритме поиска слов в игре балда: habrahabr.ru/post/207734 Я сам являюсь автором решателя «Робот Балда 2», который за многие годы приобрел популярность у многих онлайн игроков в игре Балда. И я хотел бы то же поделиться своим опытом и рассказать об одном уникальном алгоритме в игре балда, который еще ни кем не применялся.

Читать дальше →

Знаете ли Вы массивы?

Время на прочтение5 мин
Охват и читатели130K
Думаю, мало кто из готовящихся к своему первому интервью, при приеме на первую работу в должности (pre)junior программиста, ответит на этот вопрос отрицательно. Или хотя бы усомнится в положительном ответе. Конечно, такая простая структура данных с прямым доступом по индексу — никаких подвохов! Нет, в некоторых языках типа JavaScript или PHP массивы, конечно, реализованы очень интересно и по сути являются много большим чем просто массив. Но речь не об этом, а о «традиционной» реализации массивов в виде «сплошного участка памяти». В этом случае на основании индексов и размера одного элемента просто вычисляется адрес и осуществляется доступ к соответствующему значению. Что тут сложного?
Давайте разберемся

Конкурс «Родная речь» — неделя до старта!

Время на прочтение1 мин
Охват и читатели2.6K
Дорогие участники конкурса разработчиков! До открытия доступа к конкурсной базе осталась всего одна неделя!

image

У вас еще семь дней на то, чтобы изучить задачу, пример, задать на форуме все интересующие вопросы и настроиться на творческий лад!
Не забудьте официально зарегистрироваться на портале m2ies.com: подробная инструкция здесь.

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

Читать дальше →

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

Поиск маршрутов за 1 человеко-месяц

Время на прочтение10 мин
Охват и читатели20K
Однажды для нашего проекта потребовался функционал прокладки маршрутов. Программистов у нас не то чтобы очень много, а скорее наоборот, поэтому мы хотели найти какое-то готовое решение, поискали и ничего хорошего не нашли.

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



О процессе разработки сервиса и расскажу.
Читать дальше →

Разбиение веб-страниц на семантические блоки

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

Пример работы алгоритма на сайте Автокадабра.

Задача


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

Гораздо полезней отследить взаимодействие посетителей с сайтом, выяснить чем живёт сайт, с возможностью охватить одновременно множество посетителей. В итоге, появилась идея записывать информацию в виде осмысленного списка действий посетителей:
  • Dima: переход на сайт с поисковой системы Yandex RU по запросу sepyra (3м. 10 сек. назад)
  • Dima: переход со страницы "Веб-аналитика Sepyra | Официальный сайт" на страницу "О системе | Веб-аналитика Sepyra (1 м. 30 сек. назад)
  • Dima: выделение текста "времени" в блоке "Одна из ключевых особенностей веб-аналитики Sepyra — возможность… кто хочет быть в курсе каждого шага посетителей" (40 сек. назад)
  • Dima: средний интерес к подблоку "Подключиться" в блоке "Тарифы О системе FAQ Контакты Русский English Подключиться Войти" (20 сек. назад)
  • Dima: заполнение/изменение поля "Ваше имя" в форме "Регистрация" (10 сек. назад)

Запись состоит из двух частей: блок в котором происходит действие посетителя и само действие, например — выделение текста "времени" в блоке "Одна из ключевых особенностей ...". Для этого описания необходимо определить блок на странице и его имя. Если с именем было более-менее понятно, то над выделением блоков пришлось подумать.
Читать дальше →

Как сохранить финансы: Банки vs Биржи

Время на прочтение6 мин
Охват и читатели56K
image

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

Подсчет расстояния Хэмминга на большом наборе данных

Время на прочтение8 мин
Охват и читатели54K
В данной статье речь пойдет об алгоритме HEngine и реализации решения проблемы подсчета расстояния Хэмминга на больших объемах данных.
Читать дальше →

Алгоритмы логики бота для игры «Сапёр»

Время на прочтение9 мин
Охват и читатели97K
Наверное каждый из нас когда-нибудь играл, или по крайней мере пробовал играть в «Сапёр» («MineSweeper»). Логика игры проста, но в свое время за алгоритм ее прохождения даже обещали вознаграждение. В моем боте логика имеет три алгоритма, которые используются в зависимости от ситуации на поле. Основной алгоритм позволяет находить все ячейки со 100- и 0-процентной вероятностью нахождения мины. Используя только этот алгоритм и открывая наугад произвольные ячейки при отсутствии достоверного решения в стандартном сапере на уровне «Эксперт» можно достичь 33% выигрышей. Однако некоторые дополнительные алгоритмы позволяют поднять это значение до 44% (Windows 7).
Читать дальше →

Let's fix NAs

Время на прочтение5 мин
Охват и читатели7.4K
Довольно часто встречаются неполные наборы данных, в которых некоторые переменные не определены. В языке R содержимое таких переменных задается как «Not Available» — или сокращенно NA. Соответственно, возникает вопрос, как поступать с неопределенными значениям: стоит ли их игнорировать или откорректировать каким-либо образом?
Читать дальше →

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