Теория чисел (27 мая)
- Разделяй и властвуй
- Системы счисления: перевод из одной в другую за O(nlog2n)
- Простые числа
- Решето Эратосфена за O(NloglogN)
- Решето Эратосфена за O(N)
- Количество делителей числа, вычисление решетом для всех чисел от 1 до N
- Вычисление по модулю
- Сложение, вычитание.
- Умножение − через сложение, с помощью вещественных
- Деление (обратное) − возведение в степень, расширенный Евклид
- КТО
- C(n, k) по не простому модулю
- RSA.
- φ(n) = количество чисел взаимнопростых с данным
- Кодирование: p, q → n=pq, phi=(p-1)(q-1), e=rand():(e,phi)=1 ⇒ x → xe(phi)
- Декодирование: de=1(phi) ⇒ xed=xed=xk*phi+1=x(n)
- Взлом ⇔ факторизации числа
- Диофантовы уравнения
- Существование решение, количество решений, класс решений
- Первообразный корень
- Поиск
- Дискретное логарифмирование
- Возведение в степень
- Извлечение корня
- Извлечение корня квадратного за лог (квадратные уравнения)
- Факторизация
- p-Эвристика полларда
- тест Ферма, алгоритм Крайчик + квадратичное решето + Wiedemann
- оптимальное время: exp((logn)1/3)
- Проверка на простоту
- Наивная проверка
- Тест Ферма
- Тест Миллера-Рабина
- [не успеем] Функция Мёбиуса, формула включения-исключения
- [не успеем] Поиск корней многочлена за O(n2logn)
- [не успеем] min x <-> max x <-> x=0