hyperion/80-math/Untitled.md
2025-12-12 21:49:18 +03:00

102 lines
No EOL
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**Великая (Последняя) теорема Ферма:** $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` — если нужно вращать элементы или рисовать на `<canvas>`.
* **Интерполяция:**
* Кривые Безье (как работают `ease-in-out` анимации).
* Линейная интерполяция (Lerp) для плавных переходов цветов или позиций.
* **Матрицы трансформаций (CSS transform):**
* Понимание, как работает `matrix3d()` для 3D-эффектов в браузере.
### Итог: Что учить в первую очередь?
Учитывая твой профиль (Rust, Backend, Systems):
1. **Bitwise operations** (для низкоуровневых оптимизаций).
2. **Big O & Data Structures** (деревья, хэш-мапы — база бэкенда).
3. **Модульная арифметика** (для понимания криптографии и алгоритмов типа того же Миллера-Рабина).
4. **Статистика (перцентили)** — чтобы грамотно делать дашборды мониторинга для своих сервисов.