**Великая (Последняя) теорема Ферма:** $a^n + b^n = c^n$ не имеет решений в целых числах для $n > 2$. **Малая теорема Ферма:** Если $p$ — простое число, то для любого целого $a$: $a^p \equiv a \pmod p$. Это отличный вопрос. В IT "математика" — понятие растяжимое. Кому-то нужно считать интегралы, а кому-то достаточно понимать, как работает остаток от деления. Вот "дорожная карта" математических тем, отфильтрованная по реальным задачам, а не университетской программе. *** ### 1. Embedded-разработчик (Rust/C) Здесь математика очень "железная". Вам нужно понимать, как числа живут в памяти и как физика переходит в цифру. **Must Have (Обязательно):** * **Булева алгебра и Битовая магия:** * Операции `AND`, `OR`, `XOR`, `NOT`, сдвиги (`<<`, `>>`). * Маскирование битов (установка/сброс конкретных флагов в регистрах). * Понимание Little-endian vs Big-endian. * **Системы счисления:** * Свободное чтение Hex (0xFF) и Bin (0b1010). * Представление отрицательных чисел (Two's complement). * **Арифметика с фиксированной точкой (Fixed-point arithmetic):** * Как считать дробные числа на процессорах без FPU (например, `Q15`, `Q31` форматы). **Advanced (Для серьезных задач):** * **Цифровая обработка сигналов (DSP):** * Преобразование Фурье (FFT) — если работаете со звуком или радио. * Цифровые фильтры (Калмана, PID-регуляторы) — если управляете дронами, моторами или температурой. *** ### 2. ML-инженер (Python — архитектура, Rust — инференс/оптимизация) Тут математика — это основной рабочий инструмент. Без неё вы просто "импортер библиотек". **Must Have (Фундамент):** * **Линейная алгебра (Царица ML):** * Матричное умножение, векторы, тензоры. * Размерности пространств (понимание, почему `[3, 512] * [512, 10]` работает, а наоборот — нет). * Собственные векторы и значения (Eigenvectors) — для PCA и сжатия данных. * **Мат. анализ (Calculus):** * Градиенты и частные производные (суть Backpropagation). * Цепное правило (Chain rule). * Понимание того, что такое локальный минимум и седловая точка. * **Теория вероятностей и Статистика:** * Распределения (Нормальное, Бернулли, Пуассона). * Байесовская теорема. * Метрики (Precision, Recall, F1-score, ROC-AUC). **Rust Specific (Для оптимизации):** * **Численные методы:** Как хранить `f32`/`f16` так, чтобы не потерять точность при миллионе сложений (проблемы float point arithmetic). * **SIMD-математика:** Параллельные вычисления векторов на CPU. *** ### 3. Backend-разработчик Здесь математика нужна для оценки нагрузки, защиты данных и правильной работы с деньгами. **Must Have (Повседневность):** * **Асимптотический анализ (Big O):** * Понимать разницу между $O(N)$, $O(N \log N)$ и $O(N^2)$. * Понимать Cost Model (почему чтение из RAM быстрее чтения с SSD в математических порядках). * **Дискретная математика (Графы и Множества):** * Теория множеств (Set theory) — это база SQL (`JOIN`, `UNION`, `INTERSECT`). * Деревья (B-Tree, LSM-Tree) — чтобы понимать, как работают индексы в PostgreSQL. * Графы — если пишете социальные сети, карты или системы зависимостей. * **Модульная арифметика и Теория чисел:** * То, что мы обсуждали выше (простые числа, остатки от деления). * Основы криптографии (Хэширование, RSA, Эллиптические кривые). **Ops/Highload:** * **Статистика для мониторинга:** * Перцентили (p50, p95, p99) — почему "среднее время ответа" лжет. * Гистограммы распределения запросов. *** ### 4. Frontend (SSR) разработчик Обычно математики тут меньше всего, если вы не делаете WebGL-игры или сложные дашборды. **Must Have:** * **Базовая геометрия:** * Координаты (x, y), ширины, высоты. * Box Model (сложение отступов). * **Пропорции и проценты:** * Aspect Ratio, расчет резиновой верстки (`flex-grow`). **Advanced (Анимации и Графика):** * **Тригонометрия:** * `Sin`, `Cos`, `Atan2` — если нужно вращать элементы или рисовать на ``. * **Интерполяция:** * Кривые Безье (как работают `ease-in-out` анимации). * Линейная интерполяция (Lerp) для плавных переходов цветов или позиций. * **Матрицы трансформаций (CSS transform):** * Понимание, как работает `matrix3d()` для 3D-эффектов в браузере. ### Итог: Что учить в первую очередь? Учитывая твой профиль (Rust, Backend, Systems): 1. **Bitwise operations** (для низкоуровневых оптимизаций). 2. **Big O & Data Structures** (деревья, хэш-мапы — база бэкенда). 3. **Модульная арифметика** (для понимания криптографии и алгоритмов типа того же Миллера-Рабина). 4. **Статистика (перцентили)** — чтобы грамотно делать дашборды мониторинга для своих сервисов.