Как стать автором
Обновить
237.63

Алгоритмы *

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

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

Кодирование слова по алгоритму А.С. Пушкина в Micro QR Code версии М2

Уровень сложности Сложный
Время на прочтение 19 мин
Количество просмотров 456

Задание: необходимо создать кодовое слово (сокращенный вариант собственной фамилии и инициалов) по алгоритму А.С. Пушкина. Затем создать для полученного сокращения Micro QR Code вер. М2. Данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки просто страшно глючат, поэтому Ассоциация отказалась и от этого режима)

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 0

Новости

Кто знает, что значит GPT в названии ChatGPT, могут дальше не читать

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 5.6K

В настоящее время искусственный интеллект (ИИ) стремительно развивается. Мы являемся свидетелями интеллектуальной мощи таких нейросетей, как GPT-4 Turbo от OpenAI и Gemini Ultra от Google. В Интернете появляется огромное количество научных и популярных публикаций. Зачем же нужна еще одна статья про ИИ? Играя с ребенком в ChatGPT, я неожиданно осознал, что не понимаю значения аббревиатуры GPT. И, казалось бы, простая задача для айтишника, неожиданно превратилась в нетривиальное исследование архитектур современных нейросетей, которым я и хочу поделиться. Сгенерированная ИИ картинка, будет еще долго напоминать мою задумчивость при взгляде на многообразие и сложность современных нейросетей.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 1

Кодирование числа в Micro QR Code версии М2 (не по ГОСТ)

Уровень сложности Сложный
Время на прочтение 17 мин
Количество просмотров 258

Задание: необходимо создать кодовое слово, состоящее из 8 цифр (на примере – 01234567) на основе алгоритма, частично приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.3, пример 2). Затем создать для полученного кода Micro QR Code вер. М2. Данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки просто страшно глючат, поэтому ассоциация отказалась от этого режима)

Читать далее
Рейтинг 0
Комментарии 0

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

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

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

В ней мы изучим взаимодействие механизма предсказания ветвлений с подсистемой памяти. В повествовании мы будем исходить из предположения, что вам знаком принцип предсказания ветвлений и работы подсистем памяти в современных процессорах.
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Комментарии 5

Истории

Кодирование числа в Micro QR Code версии М2 (по ГОСТ)

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 1.5K

Задание: необходимо создать кодовое слово, состоящее из 8 цифр (на примере – 01234567) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.3, пример 2). Затем создать для полученного кода Micro QR Code вер. М2. Данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки просто страшно глючат, поэтому Ассоциация отказалась от этого режима)

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 7

Полиномиальные корневые методы синтеза САУ ч.1

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 4.7K

Ленонид Маркович Скворцов. Широко известный в узких кругах математик, профессионально занимающийся математическами проблемами автоматического управления. Например, его авторские методы использованы в SimInTech. Данный текст первая часть работы, которая еще готовится к публикации. Но с разрешения автора, читатели Хабр будут превыми кто сможет с ним ознакомится.

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

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 5

Разработка, модуля формирования виртуальной трёхмерной среды системы проектирования для робототехнических комплексов

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 2.7K

Виртуальная трёхмерная среда максимальной приближенная к реальной физической на примере Выборгского залива с двумя робототехническими комплексами - БАС и БЭК

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 4

Чтение Micro QR Code версии М3 (байтовый режим)

Уровень сложности Простой
Время на прочтение 20 мин
Количество просмотров 1.2K

Задание: необходимо прочитать Micro QR Code версии М3, содержащий кодовое слово, на примере закодированных слов – Hello, Knowledge и KaDaBrAOK, на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.5). Аналогично версии М2 данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась и от этого режима)

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Чтение Micro QR Code версии М3 (алфавитно-цифровой режим)

Уровень сложности Простой
Время на прочтение 24 мин
Количество просмотров 713

Задание: необходимо прочитать Micro QR Code версии М3, содержащий кодовое слово, состоящее из символов верхнего регистра (на примере закодированных слов – SAFEBOX, Q1W2E3R4T5Y6U и EFB QWG WIFI 7; почему выбрано именно такое количество символов будет также расшифровано) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.4). Аналогично версии М2 данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась и от этого режима).

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Чтение Micro QR Code версии М3 (числовой режим)

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 843

Задание: необходимо прочитать Micro QR Code версии М3, содержащий кодовое слово, состоящее из цифр (на примере – 777777777777777777 (18 цифр) и максимальном кодовом расстоянии (23 цифры) – 77777777777777777777777; почему выбрано именно такое количество цифр будет также расшифровано) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.3, пример 2). Аналогично версии М2 данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась и от этого режима)

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Создание простого и работоспособного генетического алгоритма для нейросети с Python и NumPy

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 8.4K

Генетический алгоритм нужен, когда ты знаешь параметры своей нейросети, но не знаешь, что должно получиться на выходе, например, этот алгоритм можно использовать для игры в Google динозаврика или Flappy Bird, потому что там ты не знаешь, что должно быть на выходе, но у тебя есть возможность сортировать наиболее жизнеспособные варианты, например по времени, это называется фитнес функций.

Моя цель не растянуть написания этой статьи, и замучить читателей её длинной, поэтому сразу приступим к коду. Также код простой, поэтому большую часть не нужно описывать целыми сочинениями.

Вначале нам потребуется импортировать модули.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 4

Быстрый парсинг 8-битных целых чисел

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 8.8K

Допустим, вам нужно быстро распарсить 8-битные целые числа (0, 1, 2, …, 254, 255) из строки ASCII/UTF-8. Задача взята из проекта simdzone под руководством Йероена Коеккоека (NLnet Labs). Дана строка и её длина: например, ’22’ и длина 2. Наивное решение на C может выглядеть так:

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 21

Распаковываем файл gzip вручную. Часть 2

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 2.8K

В этой части мы, как и в первой, распакуем файл gzip вручную, но теперь ещё и декодируем коды Хаффмана.

Для начала запишем данные на диск:

$ echo "hector the frantic father on an anchor or a rare fat cat sat on the ranch" > test-huff.txt
$ xxd test-huff.txt
00000000: 6865 6374 6f72 2074 6865 2066 7261 6e74  hector the frant
00000010: 6963 2066 6174 6865 7220 6f6e 2061 6e20  ic father on an
00000020: 616e 6368 6f72 206f 7220 6120 7261 7265  anchor or a rare
00000030: 2066 6174 2063 6174 2073 6174 206f 6e20   fat cat sat on
00000040: 7468 6520 7261 6e63 680a                 the ranch.

На этот раз файл получился размером 74 байта и содержит 13 символов:

a, c, e, f, h, i, n, o, r, s, t; пробел (0x20) и перевод каретки (0x0a).

В этой строке есть много повторений. Надеюсь, gzip это учтёт. Поскольку я работаю под Windows, то для распаковки использовал 7zip-zstd.

$ 7z a -mx9 test-huff.txt.gz .\test-huff.txt
$ xxd test-huff.txt.gz
00000000: 1f8b 0808 d76f 6565 0200 7465 7374 2d68  .....oee..test-h
00000010: 7566 662e 7478 7400 158b 410a 0031 0c02  uff.txt...A..1..
00000020: effb 0abf 2621 257b 69c1 e6ff d480 1e64  ....&!%{i......d
00000030: c6ca e823 7425 96b8 fb0f 2c7a 0967 8393  ...#t%....,z.g..
00000040: 2873 8710 9543 11ee 75ad cc51 237d 0fc7  (s...C..u..Q#}..
00000050: 9797 d64a 0000 00                        ...J...

Чтобы вы лучше поняли, как будет выглядеть декодирование, покажу первую строку декодированного потока gzip:

0101 1001 0001 1101 00111 010 000 1101 0101 1001 000
h    e    c    t    o     r   ' '   t    h  e    ' ' 

Ну а подробности читайте далее.
Читать дальше →
Всего голосов 42: ↑40 и ↓2 +38
Комментарии 0

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

Бинарный поиск

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 6.6K

В этой статье мы познакомимся с бинарным поиском с примером на JavaScript, а так же сравним бинарный поиск и линейным.

Читать далее
Всего голосов 11: ↑6 и ↓5 +1
Комментарии 11

Оптимизация на лету: Как правильная методология разработки в 1С сокращает отчетность с минут до секунд

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 4.1K

Автоматизация процессов выглядит как задача без конца, не так ли?

Давайте подумаем, как можно упростить этот путь.

Существуют определенные стандарты программирования, которым нужно следовать разработчикам — зачем же они нужны?

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

Когда программное решение превращается в препятствие, вместо того чтобы быть инструментом, возникает вопрос – зачем оно вообще нужно?

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 30

Ortools — библиотека для решения задачи VRP

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 1.1K

Привет! Меня зовут Илья Набатчиков, я MLE в компании Kamaz Digital. Также я являюсь учусь в онлайн магистратуре на базе университета ИТМО @ai-talent.

Сегодня я хочу рассказать о библиотеке ortools для решения проблемы маршрутизации транспортных средств с учетом ограничений по времени и грузоподъемности (CVRPTW).

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 10

Многорукие бандиты в задаче ритейла

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

В настоящее время набирают популярность модели Reinforcement Learning для решения прикладных задач бизнеса. В этой статье мы рассмотрим подмножество этих моделей, а именно многоруких бандитов (multi-armed bandits). Также мы:

- обсудим, какие задачи теоретически могут быть решены с помощью этих моделей;
- рассмотрим некоторые популярные реализации моделей многоруких бандитов;
- опишем симулятор ценообразования, применим эти алгоритмы в нём и сравним их эффективность.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 5

4 миллиарда операторов if

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 102K

Просматривая недавно соцсети, я наткнулся на этот скриншот. Разумеется, его сопровождало множество злобных комментариев, критикующих попытку этого новичка в программировании решить классическую задачу computer science: операцию деления с остатком.

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

Поэтому я решил изучить эту идею проверки чётности числа при помощи одних сравнений, чтобы понять, насколько хорошо она работает в реальных ситуациях. Я сторонник высокопроизводительного кода, поэтому решил реализовать это на языке программирования C, потому что он и сегодня остаётся самым быстрым языком в мире с большим отрывом от других (благодаря гению Денниса Ричи).

Читать далее
Всего голосов 360: ↑343 и ↓17 +326
Комментарии 152

Искусство следопыта в корпоративной инфраструктуре

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 988

В этой статье хотелось бы обсудить индикаторы атаки — ту часть Threat Intelligence, которая отвечает за эффективное реагирование на угрозы и расследование инцидентов. В этом контексте вспомним одну из апорий Зенона Элейского - про Ахиллеса и черепаху. Современный бизнес часто оказывается в позиции быстроного Ахиллеса, который, догоняя черепаху, всегда остается чуть позади.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 0

Топ-18 наших самых крутых ИИ-разработок за 2023 год: рукописная прописка, UniversalPay и обрезанные QR. А что еще?

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1.5K

2023 год оказался для нашей компании, Smart Engines, крайне успешным со всех точек зрения – бизнес-результатов, научных достижений и, разумеется, технологий. И нашими успехами мы традиционно хотим поделиться с вами. 

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

Мы собрали для себя и для вас топ-18 разработок Smart Engines за минувший год – приглашаем под кат, чтобы с ними познакомиться.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 1

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