Рубрика «Алгоритмы» - 39

Разработана опенсорсная утилита Depix для восстановления паролей с размытых скриншотов

Разработана опенсорсная утилита Depix для восстановления паролей с размытых скриншотов - 1
Результат работы программы Depix (исходный код)

В голливудских фильмах любят преувеличивать. Они зуммируют фотографии в миллион раз — и выводят цифры из одного пикселя.

Хотя это невероятно, но научные исследования в этой области идут давно. Ещё в 90-е годы были опубликованы теоретические работы и PoC с восстановлением текста из размытых изображений. В 2012 году Владимир Южиков писал на Хабре о своей программе SmartDeblur для восстановления смазанных и расфокусированных снимков.

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

Выясняем, как и откуда можно получить электронную подпись на примере криптосистемы RSA.

RSA: от простых чисел до электронной подписи - 1
Содержание
  1. Введение

  2. Определения и обозначения

  3. Описание криптосистемы RSA

    1. Асимметричные криптографические системы

    2. Генерация ключей

    3. Шифрование и дешифрование

    4. Получение подписи сообщения по RSA

  4. Электронная подпись документов

  5. Заключение

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

Казалось бы что тут такого сложного, ну I2C ну без TWI.

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

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

image

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

Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую) - 1

Побег от алгоритма YouTube

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

Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени просмотра.

Поэтому я поставил перед собой задачу: Смогу ли я написать код, который автоматически будет находить ценные видео, избавив меня от привязанности к алгоритму YouTube?

Вот так всё и началось.

Оптимально выстроенные планы

Я начал с визуализации того, что должен делать мой инструмент. Мне нужна была программа, которая будет (i) ранжировать видео на основании вероятной релевантности для меня и (ii) автоматически отправлять мне предлагаемые видео, из которых я смогу выбирать.

Я решил, что смогу серьёзно повысить продуктивность, если буду пакетно выбирать наборы видео для просмотра на каждую неделю и избавлюсь от необходимости бесконечного скроллинга YouTube.
Читать полностью »

Когда я только начал своё путешествие к науке о данных, я потратил много времени на то, чтобы понять, с чего начать, что я должен узнать в первую очередь и какие ресурсы должен использовать. За последние два года я узнал несколько вещей, о которых хотел знать раньше, например о том, стоит ли сначала сосредоточиться на программировании или статистике, какие ресурсы я должен использовать для изучения новых навыков, как я должен подходить к изучению этих навыков и так далее. Таким образом, эта статья написана, чтобы дать направления и идеи для тех, кто изучает Data Science.

Как бы я изучал Data Science, если бы начал пару лет назад, или Руководство по эффективному изучению науки о данных - 1

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

Введение

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

Машинное обучение в Hum to Search от Google - 1


Навязчивые мелодии (англ. earworms) – хорошо известное и порой раздражающее явление. Как только одна из таких застревает в голове, избавиться от нее бывает довольно трудно. Исследования показали, что так называемое взаимодействие с оригинальной композицией, будь то ее прослушивание или пропевание, помогает прогнать навязчивую мелодию. Но что, если вы не можете вспомнить название песни, а можете только напеть мотив?
Читать полностью »

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

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

Потом у них возникают подозрения и они начинают задавать вопросы. «Вы сказали о прямых углах. Может, на самом деле вы имели в виду три угла?», «Вы точно имели в виду выпуклый многоугольник?», «Четыре прямых угла, по сути, образуют прямоугольник. Как мы можем получить ещё четыре стороны в восьмиугольнике?» Я внимательно слушаю, киваю, подтверждая их догадки.
Читать полностью »

В прошлой статье речь шла о том, как можно сложить массив из чисел типа double наиболее точно, то есть получить такую сумму, как если бы мы выполняли вычисления в рамках арифметики с бесконечной точностью, а затем один раз округлили бы результат. Был показан алгоритм, который эквивалентен применению типа данных double-double, в котором сложение происходит сразу в двух переменных: основная сумма и хвостик-погрешность. Опытные читатели сразу догадались, что сложение хвостиков-погрешностей также допускает по отношению к себе рекурсивное применение того же алгоритма, что приводит не к удвоенной, а к утроенной точности, и вообще, можно организовать каскад сложений произвольного размера, получая любую наперёд заданную точность расчётов, поэтому фактически в прошлой статье была показана предпосылка к так называемой «дробной длинной арифметике». Опытный программист без труда разберётся как её реализовать, ну а я обещал дать аналогичные фундаментальные основы для скалярного произведения и вычисления полинома в точке. Поскольку все базовые вводные слова уже были сказаны в двух предшествующих статьях, в этой будет меньше «воды» и «лишних», по мнению опытных математиков, сведений. Прошу под кат.

Наиболее точное скалярное произведение векторов типа double. Вычисление значения полинома - 1

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


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