Отчет о, написанном мною, алгоритмическом статичном двунаправленном дереве, имеющим сложность Читать полностью »
Отчет о, написанном мною, алгоритмическом статичном двунаправленном дереве, имеющим сложность Читать полностью »
Сортировка — это процесс упорядочивания элементов в массиве или списке по определенному критерию (например, по возрастанию или убыванию). В программировании это одна из базовых задач, которая помогает эффективно искать, обрабатывать и анализировать данные. Давайте разберем основные алгоритмы сортировки, их принципы работы и сложность на примерах реализации на языке Go.
Существует несколько способов сортировки данных. Основные алгоритмы можно разделить на две категории:
Простые алгоритмы сортировкиЧитать полностью »
На видео более подробное объяснение каждого решения
Ссылка на задачу: https://leetcode.com/problems/linked-list-cycle
Дан head, являющийся головой связного списка, необходимо определить, есть ли в списке цикл.
Цикл в связном списке существует, если есть такой узел, до которого можно снова добраться, непрерывно следуя указателям next. Внутренне используется переменная pos, чтобы указать индекс узла, к которому присоединен указатель nextЧитать полностью »
Всем привет!
Данная статья написана в качестве рефлексии по поводу выполнения лабораторной работы. Поскольку упор делался на написание рабочей нейронной сети, все приведенные формулы не будут доказываться. Если же вам интересен математический аппарат, то я изучал его по этой статье.
Со всеми корректными замечаниями по поводу кода жду в комментариях.
Решаемая задача звучит примерно следующим образом: На вход подается картинка размером 7х7, необходимо определить, что на ней нарисовано - круг, квадрат или треугольник.
Перед чтением статьи рекомендуется изучить следующие материалы:
Модифицированный Shunting YardЧитать полностью »
Алгоритм Луна (Luhn algorithm) - это процесс вычисления контрольной цифры для числа в соответствии со стандартом ISO/IEC 7812. Сам процесс не является криптографическим средством и никак не защищает находящиеся в этом числе данные. Он предназначен, в первую очередь, для выявления ошибок, вызванных с непреднамеренным искажением данных. Например, при ручном вводе номера карты или любого другого числа. Данный алгоритм позволяет с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но никак не может исправить их.

Все пути одинаковы: они ведут в никуда. Но у одних есть сердце, а у других — нет. Один путь дает тебе силы, другой — уничтожает тебя.
- Карлос Кастанеда

Чаще всего при сортировке объектов пользовательских типов написание кода сравнения элементов коллекции не вызывает вопросов. Компаратор должен возвращать true, если первый аргумент меньше второго, то есть в отсортированном массиве первый аргумент должен идти перед вторым. Алгоритмы сначала вызывают компаратор для пары элементов x и y. Если компаратор вернул true, значит, элемент x меньше y и он должен идти в коллекции перед элементом y, если false, то компаратор вызывается повторно для пары y и x. Если компаратор опять вернул false, значит, элементы равны, иначе порядок определен.
Меня зовут Олег Игнатов, я — Development Team Lead в команде KICS (Kaspersky Industrial CyberSecurity) «Лаборатории Касперского». Мы защищаем промышленные инфраструктуры и сети от специализированных киберугроз. В этой статье расскажу о некоторых особенностях использования компараторов в С++, знание которых позволит не наступить на различные грабли и сэкономить время при разборе багов.
Читать полностью »

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

Угроза кибератак с применением квантовых компьютеров — это хороший пример ситуации, когда в салоне первого класса ещё играет приятная музыка и разносят напитки, но корабль уже плывет к айсбергу в нужном направлении.
Google, Amazon, Microsoft и другие крупные игроки активно вкладываются в исследования и пилотные проекты в этой области уже сейчас. Например, тот же Cloudflare уже пилотировал постквантовую криптографию для TLS 1.3 в некоторых зонах. Хотя бы просто потому, что дамп зашифрованного трафика, где для обмена симметричным ключом использовался алгоритм RSA, будет оставаться зашифрованным ровно до того момента, когда у атакующего появится возможность запустить алгоритм Шора на квантовом компьютере с достаточным количеством кубитов. Поэтому, несмотря на то, что подобных квантовых вычислительных комплексов ещё не существует, квантово-устойчивые алгоритмы в критических областях нужно применять уже сейчас. Скорее всего, одними из первых практические атаки смогут осуществить спецслужбы крупных стран. В разработку квантовых компьютеров вкладываются не менее активно.
Сегодня я расскажу, что происходит в области разработки решений по кибербезопасности на основе квантово-устойчивых алгоритмов шифрования. Газпромбанк с 2015 года активно участвует в развитии российских квантовых технологий. Мы ведем пилотные проекты по тестированию продуктов кибербезопасности на основе постквантовых алгоритмов совместно с компанией QApp. Это отечественный разработчик решений по кибербезопасности на основе квантово-устойчивых алгоритмов шифрования, единственный в стране, у кого есть готовые решения в этой области.
Так что будем обсуждать варианты атак на классическую криптографию, разные подходы в реализации постквантовой криптографии и текущий конкурс NIST, где отбираются лучшие постквантовые алгоритмы.
Читать полностью »