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

Алгоритмы *

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

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

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

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

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

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

Разработка и интерпретация иерархической кластеризации

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

Привет Хабр!

Иерархическая кластеризация является мощным методом анализа данных, позволяющим группировать схожие объекты в кластеры. В этой статье мы рассмотрим процесс разработки и интерпретации иерархической кластеризации, погружаясь в методы создания кластеров и анализа результатов. Мы изучим этот подход, который визуализирует данные в виде дендрограммы, что позволяет наглядно оценить структуру полученных кластеров. Разберем основные шаги этого метода, включая выбор метрик расстояния, выполнение кластеризации и интерпретацию результатов. Давайте вместе углубимся в этот увлекательный мир анализа данных с использованием иерархической кластеризации.

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

Секреты USA в Micro QR Code M3 (часть 3)

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

Встроенные в Micro QR Code технологии насыщенны мифами и нереальностями. Программисты моделисты часто добавляют артефакты и/или cookies в свои наработки, которые интересно находить при расшифровке кодов и алгоритмов. А затем и самому кодировать и декодировать практически любую информацию. Рассмотрим этапы расшифровки микрокода среднего микроуровня – М3 формата алфавитно-цифрового кодирования на том же самом историческом примере, что и М2, и М4, аналогично М2 разделим сплошную фразу на четыре слова, получим: UNITED STATES OF AMERICA.

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

Распаковываем файл gzip вручную

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

В этой небольшой статье мы создадим файл gzip, после чего разберём его внутренние составляющие и просмотрим начинку. Избегая лишней сложности, в качестве содержимого для сжатия мы просто запишем в изначальный файл 8 символов a.

$ echo "aaaaaaaa" > test.out
$ xxd test.out
00000000: 6161 6161 6161 6161 0a     aaaaaaaa.

Файл получился размером 9 байт — 8 символов a плюс перевод каретки в конце.

Теперь упакуем его. Сделаем это командой gzip -1, поскольку так мы задействуем самый быстрый метод сжатия, который позволит нам лучше разобрать процесс.

$ gzip -1 test.out
$ xxd test.out.gz
00000000: 1f8b 0808 bf35 6a61 0403 7465 7374 2e6f  .....5ja..test.o
00000010: 7574 004b 4c84 002e 00b6 66d7 ad09 0000  ut.KL.....f.....
00000020: 00

Дисклеймер: эту статью я писал в целях обучения, так что мог допустить некоторые ошибки. Мне нравится заниматься низкоуровневым программированием, но моя основная деятельность сосредоточена на веб-разработке для Microsoft Teams.
Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии14

Истории

Сложность алгоритмов. Разбор Big O

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

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

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии17

Секреты USA в Micro QR Code M2 (часть 2)

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

Рассмотрим этапы расшифровки микрокода среднего микроуровня – М2 формата алфавитно-цифрового кодирования на том же самом историческом примере, что и М4, но в этот раз разделим сплошную фразу на четыре слова, получим: UNITED STATES OF AMERICA

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

Algopack Мосбиржи — получаем справочную информация о доступных акциях

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

Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python – moexAlgo, которая должна упростить работу с AlgoPack API.

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

Multilabel-классификация знаний школьников

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

Привет, Хабр! Меня зовут Егор, сейчас я учусь на четвёртом курсе кафедры математических методов прогнозирования (ММП) ВМК МГУ и изучаю машинное обучение, в том числе, обработку естественных языков (Natural Language Processing). Этим летом я стажировался в Лаборатории искусственного интеллекта, в центре Инструментов машинного обучения, где смог применить свои знания для решения практических задач. Об одной из них я и хочу рассказать.

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

«Алгоритмы» vs «Структуры данных»

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

И снова здравствуйте!

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

По этому решил я эту тему продолжать. Хотя, правды ради и прохождения полиграфа для, я бы всё равно не выдержал и написал бы что-нибудь про это ещё.

Сего дня я решил, что напишу про алгоритмы структур данных. Про те, которые смогу вспомнить. И, как говорит наш дорогой шеф:

«Погнали!»
Всего голосов 29: ↑6 и ↓23-17
Комментарии18

Секреты USA в Micro QR Code M4 (часть 1)

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

Встроенные в Micro QR Code технологии насыщенны мифами и нереальностями. Программисты моделисты часто добавляют артефакты и/или cookies в свои наработки, которые интересно находить при расшифровке кодов и алгоритмов. А затем и самому кодировать и декодировать практически любую информацию. Рассмотрим этапы расшифровки микрокодов самого старшего микроуровня – М4 формата буквенно-цифрового кодирования на историческом примере.

Первый и, наверное, самый важный на фоне остальных мифов вопрос: почему максимальное количество смешанных символов для кодирования в микрокодах ровно 21 (цифро-кода – 35 символов, но для алфавита это не актуально)?

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

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

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

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

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

Метод подбора параметров функции за ограниченное время. Торговый симулятор + улучшение стратегии

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

Уважаемые участники сообщества Хабр, добрый день!

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

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

Итак, начнем.

Читать далее
Всего голосов 7: ↑2 и ↓5-3
Комментарии15

Типизация моделей составных чисел

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

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

Разнообразие множества исследуемых и различающихся реализациями моделей чисел вынуждает исследователя вводить для них типизацию (не классификацию). Два близких по значению нечетных числа могут иметь разный тип. Дело в том, что разработанная списочная многострочная модель (СММ) составного числа выявляет весьма тонкие, но существенные различия даже в очень близких числах из одного класса.

При введении (загрузке) в модель исходного значения N эти различия при их учете влекут использование отличающихся алгоритмов обработки, которые приспособлены к конкретному типу чисел. В работе приводится пример двух близких  N1 = 1961 и N2 = 1963 чисел, тип которых не совпадает. Это, в свою очередь, приводит к выбору и исполнению соответствующих алгоритмов обработки этих чисел.

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

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

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

На чем основана логика? Часть 2. Математическая модель полисиллогистики

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

В первой части было рассказано об алгебре множеств, рассматриваемой в качестве оснований классической логики и показано, как можно обосновать без аксиом законы алгебры множеств, которые полностью соответствуют законам классической логики.

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

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

На чем основана логика? Часть 1. Алгебра множеств без аксиом

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

Сразу начну с гипотезы, положенной в основу данной статьи: вся классическая логика основана на множествах, точнее, на алгебре множеств. Должен сказать, что в современной логике и математике эта гипотеза считается ошибочной, так как еще на рубеже XIX и XX столетий сложилось убеждение (точнее, заблуждение), что понятие «множество» противоречиво. Мне представляется, что настала пора избавляться от этого и некоторых других заблуждений, связанных с логикой.

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

Фильтр Блума для эффективной синхронизации хеш-графов

Время на прочтение8 мин
Количество просмотров3.4K
В одном из совместных исследований нам с Хайди требовалось решить такую задачу. Допустим, нам требуется синхронизировать между двумя узлами хеш-граф, например, как в репозитории Git. В Git каждый коммит идентифицируется через соответствующий ему хеш, причём, в коммит могут включаться хеши коммитов-предшественников (то есть, конкретный коммит может содержать более одного хеша, если он получен слиянием). Мы хотели получить минимальное множество таких коммитов, которыми должны обменяться два узла, чтобы их графы получились одинаковыми.

Вы могли бы спросить: «а разве эта задача ещё не решена»? Git приходится выполнять такую операцию всякий раз, когда вы направляете ему команду git pull или git push! Да, так и есть, и некоторые случаи довольно просты, но другие гораздо сложнее. Более того, тот алгоритм, что используется в Git, не слишком хорошо документирован – в общем, мы полагали, что у нас может получиться лучше.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

FizzBuzz for Senior

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

Алоха всем.

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

А как быть интервьюерам? Какую задачу дать кандидату? Как понять сигналы, что кандидат «шарит»?

Я наткнулся на интересную статью по интервью на Senior инженера C++. Там у парня спрашивают базовую задачу FizzBuzz.

В этой статье мы рассмотрим бенчмарки различных решений на Java, начиная от простых вариантов и заканчивая многопоточными реализациями. Давайте разбираться вместе!

Читать далее как "Senior" решает FizzBuzz
Всего голосов 14: ↑8 и ↓6+2
Комментарии20

Векторные представления — что это такое, и почему в них важно разбираться

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

Векторные представления (эмбеддинги, векторы) — это по‑настоящему приятный инструмент, но в любом рассказе о векторных представлениях эта техника скрыта за ворохом каких‑то страшных словес.

Если вам удастся продраться через эти словеса, то вы откроете для себя мощные и интересные приёмы, применимые для решения всевозможных интересных задач.

Я выступал с лекцией о векторных представлениях на конференции PyBay 2023. Эта статья — улучшенная версия той самой лекции, и она должна быть интересна сама по себе, даже если не смотреть видео.

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

38-минутная видеоверсия

Вот видеоверсия той лекции, которую я прочитал на PyBay.

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

MIDI → Метр → MIDI

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

Статья поведёт нас через границу, где сходятся MIDI и метрическое время. В этом путешествии мы откроем брошюру по Международной системе единиц СИ, повстречаем файлы с более чем 6000 изменений темпа, столкнёмся с ошибками округления и напишем немного кода. Звучит заманчиво? Тогда добро пожаловать!

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

WF2M сеть. Формализм и математика workflow

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

Кому нужны книжки без картинок … или хоть стишков, не понимаю! – думала Алиса

Кому нужны регламенты бизнес-процессов без схемок … или хоть скриптов, не понимаю! –осенило бизнес-аналитика Алису

Алгоритмы бизнес-процессов можно формализовать (построить модель процесса) по-разному: подробным текстовым регламентом (см. заставку), графически (схемами, диаграммами) в разнообразных нотациях, математически (булевой алгеброй), специальным скриптовым языком, программно. При этом важно не только обеспечить абсолютную (или требуемого уровня) однозначность и адекватность полученной модели моделируемому процессу (текстовый регламент если и воссоздаст такую абстракцию, то с трудом), но и его понятность другими заинтересованным в нем лицам.

Существует широкий спектр workflow нотаций (стандартов): от классических ГОСТ 19.701-90 (ИСО 5807-85, flowchart), IDEF3, UML2-AD и XML-сериализованных BPMN\YAWL\XPDL\EPML до специфических, например, Дракон.

Ведутся споры «насколько хороша» та или иная нотация: насколько интуитивно понятно передает она в графическом представлении модели (в картинке) суть процесса (упрощенная нотация, понятная рядовому бизнес-пользователю), но не встречал обсуждения их математических представлений и вообще workflow-модели с простой и прозрачной математической абстракцией: математической интерпретацией объектов модели и механики процесса (метамодели алгоритма).

Ниже предложен математический формализм workflow-сетей: Модель WF2M (From workflow to mathematic), WF2M-сеть, как механизм формализации алгоритмов бизнес-процессов в части потока работ (workflow) путем задания аналитическими выражениями функций переходов между дискретными состояниями, маркировки состояний моделируемого объекта. Механизм (механика интерпретации алгоритма бизнес-процесса) заимствует от сетей Петри терминологию (маркировка сети, активация перехода, реализация перехода и т.п.) и частично концептуализм и классификацию. Предложенная WF2M сеть имеет иной механизм формализации (абстракцию) по сравнению с WF-nets.

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

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