нижняя граница этой проблемы?
Спасибо и всего наилучшего, и извините, если это такой наивный вопрос.
нижняя граница этой проблемы?
Спасибо и всего наилучшего, и извините, если это такой наивный вопрос.
Ответы:
Изложите мои комментарии в ответ: поскольку делимость (тривиально) сводима к делению, а поскольку деление (нетривиально) сводимо к умножению с помощью подходов, подобных методу Ньютона, тогда ваша задача должна иметь такую же временную сложность, что и целочисленное умножение. AFAIK, нет известных нижних границ умножения лучше, чем тривиальный линейный, поэтому то же самое должно быть справедливо для вашей задачи - и, в частности, поскольку известно, что умножение имеет (по существу) алгоритмы, ваши надежды на нижнюю границу почти наверняка напрасны.
Причина, по которой деление сводится именно к сложности умножения, насколько я понимаю, заключается в том, что метод Ньютона будет выполнять последовательность умножений разных возрастающих размеров; это означает, что если есть алгоритм умножения со сложностью то сложность алгоритма деления, использующего этот алгоритм умножения в качестве промежуточного шага, будет такой же, как у - и для всех обсуждаемых классов сложности это просто .
Я думаю, что для некоторых чисел, оканчивающихся на 3,7 и т. Д., Есть хиты Ведического типа или базовые 2 ^ n делителей ...
Но, вообще говоря, самый быстрый алгоритм деления кажется нормой.
Лучший из известных мне, не обращая внимания, - это Алгоритм D Получисленных методов Кнута, хотя никогда не проверял его правильность. Он работает в более или менее O (mn-n ^ 2), где m и n - дивиденды и делители ... без учета сложности умножения ...
Однако нижняя граница может быть на удивление низкой, поскольку ваш вопрос касается только решения проблемы.