Co wiadomo na temat złożoności czasowej następującego problemu, który nazywamy 3-MUL?
Biorąc pod uwagę zestaw z liczb całkowitych, czy są elementami taki sposób, że ?
Ten problem jest podobny do problemu 3-SUM, który pyta, czy istnieją trzy elementy tak, że (lub równoważnie ). Przypuszcza się, że 3-SUM wymaga czasu z grubsza kwadratowego w . Czy istnieje podobna hipoteza dla 3-MUL? W szczególności czy wiadomo, że 3-MUL jest 3-SUMOWY twardy?
Uwaga: złożoność czasowa powinna mieć zastosowanie w „rozsądnym” modelu obliczeniowym. Na przykład możemy zmniejszyć z 3-SUM na zestawie do 3-MUL na zestawie , gdzie . Wtedy rozwiązanie 3-MUL, , istnieje wtedy i tylko wtedy, gdy . Jednak to wykładnicze powiększenie liczb skaluje się bardzo źle w przypadku różnych modeli, takich jak na przykład model pamięci RAM.
źródło
Odpowiedzi:
Twoja redukcja z3 SUM do 3 MUL działa z niewielką standardową modyfikacją. Załóżmy, że oryginalne liczby całkowite były w { 1,…,M }. Po transformacji x→2x nowe liczby całkowite są w { 2,…,2M }. Zmniejszymy zasięg.
Rozważ dowolną potrójną liczbę całkowitą w nowym zestawie S ′ . Liczba pierwszych dzielników dowolnego niezerowego b - C jest < 2 M . Liczba takich potrójnych wynosi n 3 . Stąd liczba liczb pierwszych q, które dzielą co najmniej jedną z niezerowych liczb a b - c, wynosi co najwyżej 2 M n 3 .a,b,c S′ ab−c <2M n3 q ab−c 2Mn3
Niech oznacza zbiór pierwszych 2 M ⋅ n 4 pierwszymi. Największy takie pierwsza ma wielkość co najwyżej O ( M n 4 log M n ) . Wybrać losowo prime p ∈ P . Z dużym prawdopodobieństwem p nie podzieli żadnego z niezerowych a b - c , więc możemy przedstawić każdy a ∈ S ′ przez jego resztę, mod p , a jeśli 3 MUL znajdzie jakieś a b = c w SP 2M⋅n4 O(Mn4logMn) p∈P p ab−c a∈S′ p 3 ab=c Z dużym prawdopodobieństwem będzie poprawne dla oryginalnejinstancji 3 SUM. Zmniejszyliśmy zakres liczb do { 0 , … , O ( M n 4 log M n ) }.S′ 3 0,…,O(Mn4logMn)
(Jest to standardowa redukcja rozmiaru. Możesz być w stanie zrobić to lepiej, biorąc pod uwagę fakt, że są zawsze różnicami dwóch potęg 2 ).ab−c 2
źródło
Czy próbowałeś redukcji gdzie ? Wyniki są liczbami rzeczywistymi, więc musisz zaokrąglić do pewnej liczby cyfr. Aby zapewnić prawidłowe dodawanie liczb pomimo zaokrąglenia, może być konieczne dodanie odrobiny losowego szumu.S′={2x/M|x∈S} M=maxS−minS
źródło