Есть ли более быстрый способ деления больших целых чисел (с 1000 цифрами или более), кроме школьного метода?Отдел больших чисел
ответ
Списки Википедии multiple division algorithms. См Computational complexity of mathematical operations которой перечислены Schoolbook long division в O(n^2)
и Newton's method, как M(n)
где M
является сложность алгоритма умножения используется, что может быть столь же хорошо, как O(n log n 2^(
log*
n))
асимптотически.
Примечание от обсуждения one of the multiplication algorithms, что лучший алгоритм асимптотически не обязательно являются самыми быстрыми для «маленьких» входы:
На практике алгоритм Шёнхаге-Strassen начинает опережать старых методов, таких как Карацуба и Toom- Кучное умножение для чисел выше 2^(2^15) до 2^(2^17) (от 10 000 до 40 000 десятичных цифр). Библиотека многоточечной GNU использует его для значений не менее 1728-7808 64-разрядных слов (от 111 000 до 500 000 десятичных цифр) в зависимости от архитектуры. Существует реализация Java Shönhage-Strassen, которая использует ее выше 74 000 десятичных цифр.
- 1. Отдел больших чисел
- 2. Отдел больших целых чисел, представленных как строка в C++
- 3. Отдел целых чисел 0
- 4. Отдел высоких чисел в сборе
- 5. Отдел чисел с плавающей точкой в JavaScript
- 6. Модификация модуля больших чисел
- 7. Математическое представление больших чисел?
- 8. Типы для больших чисел
- 9. Сортировка больших чисел
- 10. Суммирование больших чисел
- 11. Факторизация больших чисел
- 12. Отливки больших чисел
- 13. Найти факториал больших чисел
- 14. C++ Обработка больших чисел
- 15. ASM печать больших чисел
- 16. Modulo умножения больших чисел
- 17. Matlab: Сохранение больших чисел
- 18. Смещение больших чисел
- 19. C: Печать больших чисел
- 20. Сравнение больших чисел
- 21. Вычитание больших целых чисел
- 22. Факториалы больших чисел
- 23. read_csv импорт больших чисел
- 24. Разделения очень больших чисел
- 25. Сохранение больших чисел
- 26. Генерация больших случайных чисел
- 27. Обработка очень больших чисел
- 28. Факториал для больших чисел
- 29. Поразрядное сравнение больших чисел
- 30. Math.Net Complex32 Отдел, дающий NaN
Какой школьный метод? –
Я предполагаю, что @prashanthkvs означает длинное разделение. – perelman
Основной метод разделения, который мы используем для целых чисел, которые мы можем моделировать для больших целых чисел. Я спрашиваю об этом, поскольку я видел другие методы, такие как поиск инверсии, но я не уверен, что они всегда будут давать правильные результаты. – Jonh