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

Алгоритмы *

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

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

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

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

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

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

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

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

image

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров33K
Во время разработки клона одной игрушки мне понадобилось перемещать группы юнитов от одной планеты к другой. Первое что пришло в голову — заспавнить юниты один за другим и двигать их по прямой. Но это выглядело не очень весело, кроме того — нужно было как-то обходить планеты. После беглого ознакомления с алгоритмами группового перемещения я решил попробовать 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 мин
Количество просмотров79K
Идея написать для себя что-то шифрующее родилась довольно тривиально — пришлось завести еще одну дебетовую карту и, следовательно, хранить в голове еще один пин-код. Хранить такую информацию в открытом виде паранойя не позволяет, использовать сторонние сервисы тоже, поэтому после некоторых поисков остановился на стандарте AES. Сразу захотелось разобраться и реализовать алгоритм самому, не прибегая к дополнительным модулям.

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

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

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

Введение


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

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

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

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

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

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

Время на прочтение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 мин
Количество просмотров52K
В данной статье речь пойдет об алгоритме HEngine и реализации решения проблемы подсчета расстояния Хэмминга на больших объемах данных.
Читать дальше →

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

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

Let's fix NAs

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

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