Similar presentations:
Сравнительный анализ алгоритмов умножения больших чисел
1.
Сравнительный анализалгоритмов умножения больших
чисел
Курсовой проект
Автор: Новокшонов М.Р.
Группа: ФИб-2302-52-00
Руководитель: доц. Е.В. Разова
Киров, 2025
2.
Актуальность темыУмножение больших чисел важно в криптографии, науке, ИИ
Классические методы неэффективны при больших данных
Необходим анализ более быстрых алгоритмов
3.
Цель и задачи проектаЦель: определить эффективные алгоритмы умножения больших чисел
Задачи:
- Изучить алгоритмы (Классический, Карацуба, Toom-Cook, Штрассен, FFT)
- Реализовать их на C++
- Провести сравнение по времени выполнения
4.
Алгоритмы умножения- Классический алгоритм: простой, но медленный (O(n^2))
- Карацуба: рекурсивный, O(n^1.58)
- Toom-Cook: деление на блоки, O(n^1.46)
- Штрассен: блочный подход, матричная идея
- FFT: самый быстрый (O(n log n)), но сложный
5.
Программная реализацияЯзык: C++
Библиотеки: chrono, vector, string, random
Архитектура: отдельные функции для каждого алгоритма
Добавлено: генератор тестов, измерение времени
6.
Методика экспериментаТесты на числах длиной 128, 512, 2048, 4096 цифр
Повторное выполнение — усреднение времени
Проверка устойчивости к структуре данных
14 тестов: от нулей до одинаковых цифр
7.
Результаты и анализКлассический — лидирует на коротких числах
Карацуба — эффективен от 500 цифр
Toom-Cook — быстрее на 2048+
FFT — лидер при 4096, но чувствителен к округлениям
8.
ВыводыНет универсального алгоритма
Для коротких — классика, для больших — FFT и Toom
На практике — гибридный подход
Разработанное ПО подтвердило теорию на практике
9.
Спасибо за внимание!Готов ответить на вопросы.
programming