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

Алгоритмы *

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

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

Факторное моделирование с помощью нейронной сети

Время на прочтение16 мин
Количество просмотров19K
В статье рассматривается факторное моделирование с помощью метода факторизации на базе нейронной сети и алгоритма обратного распространения ошибки. Этот метод факторизации является альтернативой классическому факторному анализу. Данный метод был усовершенствован для проведения факторного вращения и получения интерпретируемого решения. Факторная структура, полученная с помощью данного метода факторизации, находятся в соответствии с результатами факторного моделирования посредством других методов.
Читать дальше →

ГОСТ Р 34.12 '15 на SSE2, или Не так уж и плох Кузнечик

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

На Хабре уже как минимум дважды упоминался новый отечественный стандарт блочного шифрования ГОСТ Р 34.12 2015 «Кузнечик», ru_crypt в своем посте рассмотрел основные механизмы и преобразования нового стандарта, а sebastian_mg занимался пошаговой трассировкой базового преобразования. Но многие вопросы остались без ответа. Насколько быстр новый ГОСТ? Можно ли его оптимизировать, эффективно реализовать, ускорить аппаратно?


GOST R 34.12 2015 with SSE2

А если можно, то как?

Разбор задач первого этапа отбора в школу программистов HeadHunter 2016

Время на прочтение9 мин
Количество просмотров21K
В сентябре 2016 прошел очередной ежегодный отбор молодых специалистов, студентов и выпускников инженерных и математических специальностей в школу программистов HeadHunter.

Для поступления предлагалось пройти несколько этапов, решая логические/математические задачи.
Варианты решения некоторых типовых задач первого этапа я и попытаюсь разобрать в данной статье.
PS: Для удобства быстрого написания и отладки кода подсчетов использовался JavaScript.

Пока писал статью, смотрю, в песочнице меня уже опередили по теме. Однако, у меня рассмотрены другие типы задач, только одна совпала про степени (но, судя по комментариям, не в обиду автору — решение неверное).
Читать дальше →

Генерируем псевдослучайные ID а-ля Youtube

Время на прочтение4 мин
Количество просмотров25K
Привет, %username%! Бывает необходимо генерировать ID не подряд, причем чтобы они гарантированно не повторялись. На youtube это используется для того, чтобы вы не могли брутфорсом получить все новые и старые видосики, так же это не редкость на разных файлообменниках и вообще везде где нужно предотвратить или хотя бы затруднить возможность прямого перебора значений.


К примеру, в системе moodle, которая использовалась у нас в универе для тестирования студентов, ID ответов были инкрементными и сквозными на всю базу. Логично предположить, что правильным ответом был тот, что с наименьшим ID в пределах вопроса. В общем, проблем с тестами у нас не было. Потом они перешли на GUID, но я к тому моменту уже выпустился, хехе.

Давайте рассмотрим несколько способов генерации таких ограниченных по длине последовательностей от самых простых до криптографически стойких.
Читать дальше →

Как оптимизировать запоминание иностранных слов

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


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

Школа Данных «Билайн», на Неве

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


Привет, Хабр! Вы уже не раз слышали про то, что мы проводим курсы машинного обучения и анализа данных в Школе Данных «Билайн». Сегодня мы отмечаем уже 6-й выпуск на нашем аналитическом курсе и 4й — на курсе для менеджеров. Только успев выпустить один курс — мы набираем новый. После каждого очередного выпуска мы собираем обратную связь от наших слушателей, анализируем ее и делаем нашу программу еще более насыщенной практикой и примерами из реального бизнеса.

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

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

Курс начинается 28-го октября, будет проходить по понедельникам и пятницам в вечернее время с 19.00 до 21.00 в офисе компании «Билайн» по адресу Васильевский остров, 21 линия, д. 6, литер А (ближайшая станция метро «Василеостровская»).

Впереди нас ждет 18 занятий (курс рассчитан на 9 недель), на которых мы постараемся покрыть самые важные темы анализа данных.
Читать дальше →

Размышления об алгоритмах и методах. Представление полного алгоритма порождения сочетаний + размещений с повторением

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

Разбор задач заочного тура школы программистов HeadHunter 2016. Часть 1

Время на прочтение5 мин
Количество просмотров16K
Всем доброго времени суток! 30 сентября закончился прием заявок в школу программирования HeadHunter 2016. В этой статье я хотела бы разобрать задачи заочного этапа. Надеюсь, что моя статья будет полезной, учитывая, что при решении задач пришлось посетить не один десяток сайтов. Я имею небольшой опыт в программировании, поэтому я не утверждаю, что мое решение единственно верное. Всегда буду рада услышать Вашу критику!
При решении задач используется язык программирования Java.
Читать дальше →

Генерирование паролей для серии игр Prince of Persia

Время на прочтение9 мин
Количество просмотров16K
Добрый день, уважаемые пользователи.
Сегодня я хотел бы рассказать про одну замечательную серию игр. Многие познакомились с ней, благодаря версии на NES, некоторые видели персидского принца на DOS, кто-то играл в Принц Персии на Sega Genesis и… вроде всё, но нет! Первая часть была портирована на большое количество разных игровых платформ. А сколько систем паролей было придумано по этому поводу? А сколько портов было у второй части? А какие пароли были там?
Про это я и хотел бы Вам рассказать.

Prince of Persia (Sega Master System/Sega Game Gear)


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

Речевая аналитика как инструмент управления KPI контакт-центра. Кейс «Ростелеком»

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


Сегодня мы расскажем о том, как «Ростелеком Северо-Запад» повысил бизнес-показатели своего Единого Контакт-центра (ЕКЦ) с помощью инновационных технологий речевой аналитики. Подведены итоги консалтингового проекта, в рамках которого специалисты ЦРТ с помощью инструментов речевой аналитики Speech Analytics Lab проанализировали обращения клиентов в ЕКЦ «Ростелеком» и предложили методику улучшения качества обслуживания.

Зачем в КЦ нужна речевая аналитика?


ЕКЦ Северо-Западного филиала «Ростелеком» — огромная система, которая ежедневно обрабатывает тысячи обращений. При контроле качества супервизоры могут проанализировать только случайную выборку звонков, которая, как правило, составляет до 2% от общего числа обращений. А это не всегда даёт объективную картину.

С помощью инструментов речевой аналитики специалисты могут работать со 100% обращений. Для этого все диалоги ЕКЦ переводятся в текст и анализируются с помощью системы Speech Analytics Lab. Благодаря инструментам поиска в массивах неструктурированной речевой информации аналитик может отработать гипотезы (найти ключевые слова) на выборках в сотни тысяч фонограмм за несколько секунд.

На основе такого анализа можно разработать программу изменений для действующих в ЕКЦ процедур и процессов и оптимизировать системы самообслуживания (IVR, Личный кабинет, сайт).
Читать дальше →

Программирование&Музыка: ADSR-огибающая сигнала. Часть 2

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

Всем привет!
Вы читаете вторую часть статьи про создание VST-синтезатора на С#. В первой части был рассмотрен SDK и библиотеки для создания VST плагинов, рассмотрено программирование осциллятора.
В этой части я расскажу про огибающие сигнала, их разновидности, применение в обработке звука. В статье будет рассмотрено программирование ADSR-огибающей для управления амплитудой сигнала, генерируемого осциллятором.
Огибающие есть в любом синтезаторе, применяются не только в синтезе, а повсеместно обработке звука.


Исходный код написанного мною синтезатора доступен на GitHub'е.



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

Как проверить причинную связь без эксперимента?

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


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

Действительно ли пациентам, тестирующим новое лекарство, становится лучше из-за лекарства, или они все все равно бы выздоровели? Ваши продавцы действительно эффективны или же они говорят с теми клиентами, которые и так готовы совершить покупку? Действительно ли Сойлент (или рекламная кампания, которая обойдётся фирме в миллион долларов) стоит вашего времени?
Читать дальше →

Лекции Техносферы. 1 семестр. Введение в анализ данных (весна 2016)

Время на прочтение3 мин
Количество просмотров44K
Слушайте и смотрите новую подборку лекций Техносферы Mail.Ru. На этот раз представляем в открытом доступе весенний курс «Введение в анализ данных», на котором слушателей знакомят со сферой анализа данных, основными инструментами, задачами и методами, с которыми сталкивается любой исследователь данных в работе. Курс преподают Евгений Завьялов (аналитик проекта Поиск Mail.Ru, занимающийся извлечением полезных бизнесу знаний из данных, генерируемых поисковым движком и десктопными приложениями), Михаил Гришин (программист-исследователь из отдела анализа данных) и Сергей Рыбалкин (старший программист из студии Allods Team).

Лекция 1. Введение в Python


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


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

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

Задача про улитку

Время на прочтение3 мин
Количество просмотров50K
image В этом топике я предлагаю 3 довольно базовые задачи на сообразительность. Для начинающих программистов (вероятно, для совсем начинающих, а-ля школа, потому что для настоящего программиста слишком банально). Или, возможно, для собеседования, но для проверки конкретно одного узкого аспекта: насколько человек может вообще принимать решения самостоятельно, а не передирать и подправлять под себя.
Читать дальше →

MapReduce из подручных материалов. Часть II – базовые интерфейсы реализации

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

Take it like a man by Joan PollakВ предыдущей части серии мы (в 100500й раз) попытались рассказать про основные приемы и стадии подхода Google MapReduce, должен признаться, что первая часть была намерено "капитанской", чтобы дать знать о MapReduce целевой аудитории последующих статей. Мы не успели показать ни строчки того, как всё это мы собираемся реализовывать в Caché ObjectScript. И про это наша рассказ сегодня (и в последующие дни).


Напомним первоначальный посыл нашего мини-проекта: вы всё еще планируем реализовать MapReduce алгоритм используя те подручные средства, что есть в Caché ObjectScript. При создании интерфейсов, мы попытаемся придерживаться того API, что мы описали в предыдущей статье про оригинальную реализацию Google MapReduce, любые девиации будут озвучены соответствующе.


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

0b1001 путей решения задачи перевода чисел в римскую запись

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

Привет друзья. Вот вам простенькая задачка. Как бы вы перевели арабские числа в римские используя Python? Правда с одним условием — числа не могут быть больше чем 4000.

Я думаю это должно быть просто, но позвольте я вам покажу вам серию интересных решений и не тривиальных подходов:
Читать дальше →

Книга «Распределенные алгоритмы. Интуитивный подход»

Время на прочтение5 мин
Количество просмотров18K
image Эта книга рассчитана на курс по распределенным алгоритмам для студентов старших курсов и аспирантов по специальностям, связанным с информатикой и программной инженерией. Она также может быть использована в качестве справочника исследователями в этих областях. Книга делает упор на базовые алгоритмы и результаты, полученные в сфере распределенных вычислений. Рассматриваемые в ней алгоритмы в основном относятся к «классическим» и были выбраны в первую очередь потому, что поучительны с точки зрения проектирования алгоритмов для распределенных систем или проливают свет на ключевые проблемы в распределенном и параллельном программировании.

Книга состоит из двух частей. Первая часть посвящена взаимодействию процессов посредством передачи сообщений. Она сформировалась на основе курса, читаемого в университете Врийе (Амстердам), изначально основанного на учебнике «Введение в распределенные алгоритмы» Герарда Теля. Вторая часть посвящена архитектурам с общей памятью.
Читать дальше →

96 вычислительных ядер и оптимизация кода муравьиного алгоритма поиска маршрутов

Время на прочтение10 мин
Количество просмотров18K
Сегодня поговорим об оптимизации кода, который реализует муравьиный алгоритм нахождения оптимальных путей на графах. Узкие места в программе будем искать с помощью Intel VTune Amplifier XE 2016 Update 2, а оптимизировать с использованием MPI, OpenMP и библиотеки Intel Threading Building Blocks.



Наша цель заключается в том, чтобы добиться эффективной работы программы на компьютере с четырьмя процессорами Intel Xeon E7-8890 v4. Система оснащена 512 Гб оперативной памяти, на ней установлена Linux 3.10.0-327.el7.x86_64, код компилировался с помощью Intel Parallel Studio XE 2016 U2.
Читать дальше →

Как посчитать перестановки. Лекция в Яндексе

Время на прочтение22 мин
Количество просмотров28K
Некоторое время назад в московский офис Яндекса приезжал Игорь Пак — ученый с множеством научных работ, выпускник мехмата МГУ и аспирантуры Гарварда. Сейчас Игорь работает в Калифорнийском университете. Его лекция в Яндексе была посвящена различным классам последовательностей и перестановкам. В том числе прямо по ходу лекции он представил выкладки, опровергающие гипотезу Нунана и Зайлбергера — одну из ключевых в области перестановок.



Под катом — подробная текстовая расшифровка и большинство слайдов.

«Боевая алгебра» или криптография «по ГОСТу»

Время на прочтение7 мин
Количество просмотров14K
На первый взгляд название статьи абсурдно, видимо единственное, что приходит на ум читателю, это использование расчетных методов в баллистике. Но там скорее боевая физика, нежели боевая математика. Область применения «чистой» математики в военной сфере — криптография. О важности темы распространяться не буду, это понятно еще со времен «Энигмы». В настоящее время в криптографии проходят очень тревожные события, на которые, к сожалению, не реагируют Российские специалисты. А если и реагируют, то очень специфическим образом, об этом уже писалось, но видимо мало, придется продолжить тему.

«Особенности национальной криптографии»


В середине 2015 года были принято несколько новых ГОСТов стандартизирующих криптографические операции. Даже титульные листы этих важнейших государственных документов вызывают, мягко говоря, недоумение. Посмотрите, вот один из них:

image

Я тоже «впервые» вижу официальные документы особой государственной важности в разработках которых принимала участие некая коммерческая фирма из разряда «Рога и Копыта».

Фирма «Инфотекс» не имеет даже собственного помещения и размещается на площадях «Офисного торгового центра» (цитата с сайта компании). Кто не верит, может убедиться сам, вот ссылка на публичный сайт этой фирмы.

Разрабатывались, между прочим, стандарты криптографических алгоритмов, а не ГОСТ на производство Докторской колбасы…
Читать дальше →

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