miller-robin
This commit is contained in:
parent
eda99760f3
commit
48f640b55d
10 changed files with 1291 additions and 1 deletions
102
80-math/Untitled.md
Normal file
102
80-math/Untitled.md
Normal 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. **Статистика (перцентили)** — чтобы грамотно делать дашборды мониторинга для своих сервисов.
|
||||
Loading…
Add table
Add a link
Reference in a new issue