Фурье и длинка (6 мая 2016)
- Длинная арфиметика
- Многочлены ↔ длинные целые неотрицательные числа
- Длинные числа → длинные вещественные числа, числа со знаком
- Хранение длинных чисел:
vector<int>; int num[N];
- Сложение, вычитание, сравнение, умножение и деление на короткое (код умножения на короткое)
- Алгоритмы для умножения многочлены/чисел: квадрат, Карацуба, Фурье (код умножения за квадрат)
- Деление и умножение многочленов за O(nm) (код деления)
- Двоичная арифметика: умножение, деление
- Двоичная арифметика: gcd чисел за O(nm)
− Перерыв −
- Деление чисел.
- Бинпоиск за O(nm(n-m)/k2),
- Бинпоиск по цифре за O(nm/k)
- Честное деление за O(nm/k2).
- Быстрое деление
- Числа: разделяй и властвуй за O(nlog2n).
- Многочлены: фокус с рядами за O(nlog2n).
- [skipped] Числа: метод Ньютона за O(nlogn).
- [skipped] Все идеи обобщаются на извлечение корня
- [skipped] Многочлены: O(nlogn).
- Фурье
- [homework] Повышаем точность
- [homework] Деление на 3 части, k частей.
- [homework] По простому модулю.
- [skipped] Предподсчёт корней. Как быстро и точно посчитать?