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

7.3 KiB
Raw Permalink Blame History

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