miller-robin

This commit is contained in:
Rorik Star Platinum 2025-12-12 21:49:18 +03:00
parent eda99760f3
commit 48f640b55d
10 changed files with 1291 additions and 1 deletions

102
80-math/Untitled.md Normal file
View file

@ -0,0 +1,102 @@
**Великая (Последняя) теорема Ферма:** $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. **Статистика (перцентили)** — чтобы грамотно делать дашборды мониторинга для своих сервисов.