• Как перетасовать песни?

    • Перевод
    Мы здесь в Spotify серьёзно относимся к фидбеку от пользователей. Какое-то время назад мы заметили, что пользователи жалуются на то, что при включенном режиме случайного перемешивания плейлиста порядок песен на самом деле не случаен — например, несколько песен одного и того же исполнителя могут быть воспроизведены одна за другой, при том, что в плейлисте множество песен разных исполнителей. Пользователи спрашивали неужели мы не способны сделать такую простую вещь, как случайный порядок воспроизведения треков? Мы отвечали «Он правда-правда случаен! Мы проверяли!»

    Так кто же был прав — мы или пользователи? Как оказалось — и мы, и они. Ну и вообще дело обстояло значительно серьёзнее, чем казалось на первый взгляд.

    Наш точка зрения


    Ещё в самом первом релизе нашего плеера в нём была функция случайного перемешивания плейлиста. Мы использовали для этого алгоритм Фишера-Йетса — и он давал идеально случайное перемешивание. Но что такое «идеально случайное»? Это значит, например, что мы можем получить один из двух нижеуказанных порядков песен с одинаковой вероятностью (разные цвета означают треки разных исполнителей):

    image
    Читать дальше →
  • История стартапа ROI4CIO: Можно ли автоматизировать продажи ИТ решений в B2B сфере и не только?

      Свой проект мы задумали потому, что видели насколько не эффективен процесс продаж больших и малых ИТ-технологий, программ и услуг. Продажи “крутых ИТ технологий” осуществляется “по старинке”, ручными расчетами спецификаций (смет). Идея нашего ресурса ROI4CIO – свести к минимуму лишние затраты участников ИТ на поиск друг друга и создание инструментов взаимодействия в цепочке продаж.



      Если говорить в общем: задача для ИТ-директора компании клиента — не прогадать с выбором ИТ-решения. Главная задача ИТ-поставщика — правильно осуществить квотирование, “предсказать”, что понадобится клиенту для решения его задач и заранее заказать поставку нужных элементов для ИТ решения клиента. ROI4CIO — задуман как помощник, который покажет ИТ-директорам пользу от ИТ-технологий еще ДО их покупки. Также сервис помогает автоматизировать цепочку продаж и для ИТ поставщиков и для клиентов.

      Участники нашей команды имеют опыт в ИТ сфере от 5 до 25 лет, как в роли разработчиков ПО, так и в роли продавцов ИТ продуктов. Нас все время интересовал вопрос: «Какую пользу приносят ИТ технологии? Как увидеть пользу и выгоду ИТ-технологии еще до внедрения?». Существующие ROI калькуляторы ИТ продуктов казались нам сложными и неубедительными, и теоретические обоснования этих решений не имели никакого опытного подтверждения. Поэтому мы решили сделать свой сервис, который учел бы недостатки попыток автоматизации ИТ продаж.

      Перед CIO стоит проблема выбора ИТ-продукта, который принесет прибыль или может сократить риск убытка. Процесс выбора обычно очень длительный, который включает в себя как поиск информации в разрозненных ресурсах, так и привлечение различных игроков ИТ рынка: реселлеров, интеграторов, дистрибьюторов, поставщиков. Как говорится, с миру по нитке. В лучшем случае обходятся объявлением тендеров и консультацией у коллег в местном CIO клубе, но в худшем — выбирают самый “популярный” ИТ-продукт.
      Читать дальше →
    • Как «Дадата» ищет дубли в списках торговых точек. Разбираем алгоритм



        Наши клиенты хранят списки из тысяч компаний, и обычно там первозданный хаос.

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

        1. Евразия.
        2. «САКУРА» Японская кухня.
        3. Доминант.
        4. Магазин-бутик «Евразия».
        5. Милениум, ООО, продуктовый магазин.
        6. Киви/ООО/Челябинск.
        7. Супермаркет эко-продуктов «Доминант».

        Точки № 1 и № 4 — дубли, № 3 и № 7 — тоже, но поди разберись.

        А разобраться надо: когда в списке из 1000 торговых точек 300 дублей, у производителя начинаются проблемы.
        Что за проблемы и как мы их решаем
      • Интерполяционный многочлен на произвольных функциях

          Введение


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

          Дано $n$ пар точек на плоскости $(x_1;y_1),...,(x_n;y_n)$. Все $x_i$ различны. Необходимо найти многочлен $M(x)$ такой, что $M(x_i)=y_i$, где $i\in\{1,...,n\}$

          Переводя на русский язык имеем: Иван загадал $n$ точек на плоскости, а Мария, имея эту информацию, должна придумать функцию, которая (по меньшей мере) будет проходить через все эти точки. В рамках текущей статьи наша задача сводится к помощи Марии окольными путями.

          «Почему окольными путями?» — спросите вы. Ответ традиционный: это статья является продолжением серии статей дилетантского характера про математику, целью которых является популяризация математического мира.
          Читать дальше →
          • +11
          • 2,7k
          • 9
        • Решаем задачу нахождения длины наибольшей возрастающей подпоследовательности

          • Tutorial

          Содержание:

          Последовательность Фибоначчи O (n)
          Решение за O(n ^ 2)
          Бинарный поиск O(log n)
          Решение за O(n * log n)


          Задача


          "Найти длину самой большой возрастающей подпоследовательности в массиве."


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


          На пальцах


          Есть последовательность:


          5, 10, 6, 12, 3, 24, 7, 8


          Вот примеры подпоследовательностей:


          10, 3, 8
          5, 6, 3


          А вот примеры возрастающих подпоследовательностей:


          5, 6, 7, 8
          3, 7, 8


          А вот примеры возрастающих подпоследовательностей наибольшей длины:


          5, 6, 12, 24
          5, 6, 7, 8

          Читать дальше →
        • Машинное обучение: анализ временных рядов Azure Machine Learning для поиска аномалий

          • Перевод
          Обнаружение аномалий — одна из важнейших функций для решений в области «интернета вещей» (IoT), которые собирают и анализируют временные изменения в потоке данных от различных датчиков. Во многих случаях поток данных со временем не претерпевает значительных изменений. Однако если они появляются, это чаще всего означает, что в системе возникла аномалия, способная нарушить её работу. В этой статье я расскажу, как использовать модуль Time Series Anomaly Detection сервиса машинного обучения Azure Machine Learning для определения аномальных показателей датчиков.

          Читать дальше →
          • +11
          • 2,6k
          • 1
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Автоматная разработка, практикум. Пример «Дисплей». Часть 1

            Тесты в предыдущей статье убедительно показали высокую эффективность «автоматной» реализации примера «Дисплей» по сравнению с условно названной «неавтоматной» версией. Вкратце итог: обе реализации автоматные, но разница в эффективности многократна и глубинная причина видится в том, что вариант А1 («автоматный») изначально проектировался как автомат, а вариант А2 («неавтоматный») нет. Не столько автоматная реализация, сколько автоматное проектирование является основой высокой эффективности. Для простых алгоритмов автоматные реализации получаются сами собой. Есть смысл говорить о том, что автоматное программирование, это не столько реализация программы в виде конечного автомата, сколько автоматное проектирование, фундаментом которого является конструктивная декомпозиция. Я несколько раз касался темы автоматного проектирования и конструктивной декомпозиции, но чтобы раскрыть эту тему нужны практические примеры. В этой и следующих нескольких статьях я проведу практикум, покажу процесс автоматного проектирования, пытаясь по возможности приводить ход рассуждений присущих автоматному проектированию.
            Читать дальше →
          • Трёхмерная графика с нуля. Часть 2: растеризация

            • Перевод
            image


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

            К сожалению, эта простота имеет свою цену: низкую производительность. Несмотря на то, что существует множество способов оптимизации и параллелизации трассировщиков лучей, они всё равно остаются слишком затратными с точки зрения вычислений для выполнения в реальном времени; и хотя оборудование продолжает развиваться и становится быстрее с каждым годом, в некоторых областях применения необходимы красивые, но в сотни раз быстрее создаваемые изображения уже сегодня. Из всех этих областей применения самыми требовательными являются игры: мы ожидаем рендеринга отличной картинки с частотой не менее 60 кадров в секунду. Трассировщики лучей просто с этим не справятся.

            Тогда как это удаётся играм?

            Ответ заключается в использовании совершенно иного семейства алгоритмов, которое мы исследуем во второй части статьи. В отличие от трассировки лучей, которая получалась из простых геометрических моделей формирования изображений в человеческом глазе или в камере, сейчас мы будем начинать с другого конца — зададимся вопросом, что мы можем отрисовать на экране, и как отрисовать это как можно быстрее. В результате мы получим совершенно другие алгоритмы, которые создают примерно похожие результаты.
            Читать дальше →
            • +36
            • 9,4k
            • 2
          • Космическая съёмка Земли


              Cпутниковый снимок в ложных цветах (зелёный, красный, ближний инфракрасный) с пространственным разрешением 3 метра и наложенной маской зданий из OpenStreetMap (спутниковая группировка PlanetScope)

              Привет, Хабр! Мы постоянно расширяем источники данных, которые используем для аналитики, поэтому решили добавить ещё и спутниковые снимки. У нас аналитика по спутниковым снимкам полезна в продуктах для предпринимательства и инвестиций. В первом случае статистика по геоданным поможет понять, в каком месте стоит открывать торговые точки, во втором позволяет анализировать деятельность компаний. Например, для строительных компаний можно посчитать, сколько за месяц было построено этажей, для сельскохозяйственных компаний — сколько гектаров урожая взошло и т.д.

              В этой статье я постараюсь дать примерное представление о космической съёмке Земли, расскажу о трудностях, с которыми можно столкнуться, начиная работу со спутниковыми снимками: предварительная обработка, алгоритмы для анализа и библиотеки Python для работы со спутниковыми снимками и геоданными. Так что все, кому интересна область компьютерного зрения, добро пожаловать под кат!
              Читать дальше →
            • Коллективный портрет участников конкурса MERC-2017

                Подходит к концу наш первый конкурс по машинному обучению и анализу данных — Multimodal Emotion Challenge Recognition (MERC-2017) на площадке Datacombats. В этом посте мы хотели бы представить небольшой анализ аудитории, своеобразный коллективный «портрет».


                Читать дальше →
              Самое читаемое