Обновить
39
0
sysprg@sysprg

Пользователь

Отправить сообщение

Кватернионы — не только то, что мы о них думали

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели8.9K

Предложу сегодня подход и буду признателен, если специалисты его дополнят.

Выведу по шагам, как матрица кодирует параллелограмм на вещественной плоскости и как один параллелограмм преобразовывает второй параллелограмм. Лирику вообще не пишу. Для общего образования статья тоже может быть полезна, если вы интересуетесь математикой.

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

Обозначения и названия введу постепенно: от простого, с первого курса, к математическому сленгу. 3D не рассматриваю, это понимания сути не добавит. Но ключевой тезис по 3D — в конце шестой части.

Читать далее

Всеобъемлющая Теория Матриц

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

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

Погрузится в мир матриц

Вычисление обратной величины целого числа и его применение в алгоритме деления чисел

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

Рассматривается алгоритм вычисления обратного целого числа и его приложение для деления целых чисел, представленных high и low половинками, для которых уже реализована базовая арифметика.

Читать далее

Градиентный спуск для новичков: когда ты падаешь, но становишься лучше

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.5K

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

Читать далее

Непостижимая эффективность современных алгоритмов сортировки

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

Предупреждение о возможном конфликте интересов: автор этого документа также является соавтором реализаций ipnsort и driftsort, используемых в стандартной библиотеке Rust.

Сценарий

Компоненту ПО передаются данные для сортировки. Известно, что значения могут иметь низкую кардинальность. Несмотря на тип u64, способный хранить 264 уникальных значений, в данных наблюдается всего четыре уникальных значения. Учитывая такие серьёзные ограничения, разработчик может разумно решить использовать специализированную реализацию сортировки, а не ту, которая есть в библиотеке, потому что он знает о данных больше, чем способна знать обобщённая реализация.

Читать далее

Снятие проклятия размерности: как познакомиться со своими данными

Время на прочтение6 мин
Охват и читатели5.3K

1. Проклятие размерности

Человек эволюционировал в 3 пространственных измерениях, и в них мы себя шикарно чувствуем. В них мы живем, радуемся, грустим, да и все драмы жизни проходят в этих измерениях. Правда в первой половине 20 века Теодор Калуца и Оскар Клейн нашли еще одно измерение, но оно маленькое и его людям не видно. После струнные теоретики, такие как Леонард Сасскинд, Герард т`Хофт, Яу Шинтун, Александр Виленкин  и другие, опять сильно усложнили картину мира, и к 4 пространственным измерениям добавили еще 6 (это минимум), но они все где то не пойми где, и влияют на жизнь только физиков-теоретиков, а остальным n-миллиардам людей на Земле, нет никакого дела до этих измерений, им и в 3 хорошо живется.

Другое дело математика и наука о данных, тут измерений может быть сколько угодно, например вот:

Читать далее

7 SQL-запросов, которые решают 90% всех задач на работе

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели39K

Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, посчитать или найти. И снова пишешь почти тот же SELECT, что и вчера, с тем же WHERE и JOIN. Знакомо?

SQL в большинстве случаях не требует сложные 100-строчные запросы с вложенными подзапросами на три уровня глубины. Чаще всего нам нужны простые, отточенные и, главное, эффективные конструкции.

В этой статье я собрал 7 таких запросов-«рабочих лошадок». Это не какой-то там справочник, а готовая шпаргалка для реальных задач.

Читать далее

Векторный поиск в Elasticsearch: dense_vector, HNSW и фильтрация по атрибутам

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

Привет, Хабр!

В современном поиске всё чаще используется поиск «по смыслу» с помощью векторных эмбеддингов. Вместо привычного анализа текста по словам мы представляем документы и запросы в виде многомерных векторов и ищем ближайших соседей по евклидовому или косинусному расстоянию. Это позволяет, например, находить документы, схожие по смыслу, а не только по точному совпадению слов. В Elasticsearch поддержка такого поиска реализована через поле dense_vector и алгоритм HNSW (Hierarchical Navigable Small World) для быстрого приближённого поиска ближайших соседей.

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

Читать далее

BPF CPU Scheduler: не нравится стандартный планировщик в Linux? Напиши свой

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

Всем привет! В статье расскажу про относительно новую возможность написания собственных CPU планировщиков для Linux с помощью BPF. Разберёмся, для чего это нужно, как работает, а также посмотрим на примеры уже написанных планировщиков.

Читать далее

Медианный фильтр на двух бинарных кучах

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели12K

В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.

В этом тексте я произвел разбор решения LeetCode задачи 480. Sliding Window Median в контексте реализации на языке программирования Си.

Читать далее

Как спроектировать кэш-библиотеку нового поколения и не умереть?

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

Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter

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

Читать далее

Железо-воздушные аккумуляторы

Время на прочтение7 мин
Охват и читатели12K

Картинка: vectorjuice, freepik

В последнее время, с широким распространением мобильной связи и всё большим внедрением электрических устройств вокруг нас, мы привыкли к активному использованию средств накопления и хранения электрической энергии. Наиболее часто (по некоторым оценкам, до 90% рынка) это литий-полимерные и литий-ионные аккумуляторы — компактные устройства, способные хранить энергию высокой плотности.

Однако у них есть и свой минус — опасность возгорания, который, надо сказать, в некоторой степени нивелируется (как самой конструкцией, так и средствами контроля заряда/разряда), но всё равно не до конца. Кроме того, они отличаются и относительно высокой стоимостью. 

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

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

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

Читать далее

Как устроена память внутри микропроцессора и при чем тут компиляторы

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели20K

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

В статье мы разберемся, как устроены запоминающие ячейки внутри процессора, почему из них строят массивы памяти и какие задачи решают компиляторы — от оптимизации по скорости, площади и энергопотреблению до генерации файлов для САПР. 

Читать далее

Как засуха в Америке меняет глобальную экономику

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

А если точнее – распределение ресурсов, таких как вода, радиочастоты, воздух и так далее. Река Колорадо пересыхает из-за устаревших законов, и нашелся человек, который способен изменить (и который уже менял) подход к распределению неисчисляемых ресурсов.

Читать далее

Решение задачи коммивояжера (TSP) в реальных приложениях

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

Образовательные программы компьютерных наук и информатики обязательно включают курс алгоритмов, это элегантные решения сложных проблем. Например, одна из самых интересных проблем комбинаторной оптимизации — задача коммивояжёра (TSP, travelling salesman problem). Суть в поиске самого выгодного маршрута, проходящего через указанные точки ровно по одному разу. Сложность задачи при точном решении брутфорсом составляет O(n!). И для неё тоже придумано несколько элегантных алгоритмов. Хотя поиск самого эффективного продолжается до сих пор.

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

Читать далее

Закон Больших Чисел: доказательство и суть

Время на прочтение8 мин
Охват и читатели8.2K

Что такое Закон больших чисел — и действительно ли он объясняет, почему вероятности «работают»? В этой статье мы разбираемся с этим шаг за шагом: начинаем с конкретных задач, выводим неравенство Чебышёва, формулируем и доказываем ЗБЧ — аккуратно и строго.

В финале обсуждаем, что ЗБЧ на самом деле утверждает, и почему он не доказывает принцип, на котором построена вся теория. А ещё — подготовим почву для разговора о Центральной Предельной Теореме.

Вперед к ЗБЧ

Наибольшая общая возрастающая подпоследовательность

Время на прочтение10 мин
Охват и читатели7.1K

Привет! При решении контестов я нашёл интересную задачу по теме динамического программирования.
Постановка задачи: Необходимо найти наибольшую общую возрастающую подпоследовательность двух массивов.

В этой статье я разобрал несколько способов решения этой задачи с разными асимптотиками по времени.

Читать далее

Управление светом с помощью магнитного поля

Время на прочтение7 мин
Охват и читатели14K

Картинка Freepik

Знали ли вы, что светом можно управлять с помощью магнитного поля? 

Нет, в статье ниже не пойдёт речь о создании «DIY-чёрной дыры» :-D 

А будет рассказ об интересном эффекте, открытом в 1845 году Майклом Фарадеем, благодаря чему и зародилась целая область науки, называемая «магнитооптикой». 

Читать далее

Теорема о разделяющей оси при обнаружениях столкновений

Время на прочтение11 мин
Охват и читатели9.5K

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

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

Читать далее

Автоматический светодиод

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

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

Читателям моего блога известно, что я работаю над обновлённой версией «Precision Clock» (но не спешите радоваться, до релиза ещё не один месяц). Одна из доработок этих «точных часов» коснулась дисплея, который теперь отображает время с точностью до миллисекунды. Причём я переработал его в корне, чтобы убрать мерцание, возникающее при записи работы часов на скоростную камеру.

Читать далее

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность