b a b aΩ ( m log m log log m ) dolna granica tego problemu?
Dziękuję i pozdrawiam, i przepraszam, jeśli to takie naiwne pytanie.
time-complexity
lower-bounds
nt.number-theory
primes
Leandro Zatesko
źródło
źródło
Odpowiedzi:
Przekształcając moje komentarze w odpowiedź: ponieważ podzielność (trywialnie) sprowadza się do dzielenia, a ponieważ dzielenie (nieprofesjonalnie) sprowadza się do mnożenia za pomocą metod takich jak metoda Newtona, twój problem powinien mieć tę samą złożoność czasową jak mnożenie liczb całkowitych. AFAIK, nie ma znanych dolnych granic mnożenia lepszych niż trywialna liniowa, więc to samo powinno dotyczyć twojego problemu - w szczególności, ponieważ wiadomo, że mnożenie ma (zasadniczo) algorytmy, twoje nadzieje na dolną granicę są prawie na pewno daremne.n log n log log nO ( n logn log∗n ) n logn loglogn
Powodem, dla którego podział precyzyjnie sprowadza się do złożoności do mnożenia - jak rozumiem - jest to, że metoda Newtona wykonuje sekwencję mnożenia o różnych rosnących rozmiarach; oznacza to, że jeśli istnieje algorytm mnożenia ze złożonością wówczas złożoność algorytmu dzielenia używającego tego algorytmu mnożenia jako kroku pośredniego będzie przebiegać zgodnie z - i dla wszystkich omawianych klas złożoności jest to po prostu .Θ ( ∑ lg n k = 0 f ( nΘ ( f( n ) ) Θ ( ∑lgnk = 0fa( n2)k) ) Θ ( f( n ) )
źródło
Myślę, że istnieją hacki wedyjskie dla niektórych liczb kończących się na 3,7 itd. Lub bazowe dzielniki 2 ^ n ...
Ogólnie jednak algorytm najszybszego podziału wydaje się być normą.
Najlepszy, jaki znam bez patrzenia, to algorytm D metod seminumerycznych Knutha ... Nigdy jednak nie sprawdziłem jego poprawności. Działa w przybliżeniu O (mn-n ^ 2), gdzie m i n są dywidendą i dzielnikiem ... bez uwzględnienia złożoności mnożenia faktorów ...
Dolna granica może być zaskakująco niska, ponieważ twoje pytanie dotyczy tylko problemu decyzyjnego.
źródło