Was ist über die zeitliche Komplexität des folgenden Problems bekannt, das wir 3-MUL nennen?
Gibt es bei einer Menge von ganzen Zahlen Elemente so dass ?
Dieses Problem ähnelt dem 3-SUM-Problem, bei dem gefragt wird, ob es drei Elemente so dass (oder äquivalent ). Es wird vermutet, dass 3-SUM ungefähr die quadratische Zeit in . Gibt es eine ähnliche Vermutung für 3-MUL? Insbesondere ist bekannt, dass 3-MUL 3-SUM hart ist?
Beachten Sie, dass die zeitliche Komplexität in einem "vernünftigen" Berechnungsmodell gelten sollte. Zum Beispiel könnten wir von 3-SUM für eine Menge auf 3-MUL für die Menge reduzieren , wobei . Dann existiert eine Lösung für 3-MUL, , genau dann, wenn . Dieses exponentielle Aufblähen der Zahlen skaliert jedoch bei verschiedenen Modellen, wie beispielsweise dem RAM-Modell, sehr schlecht.S ' = { 2 x ≤ x ≤ S } 2 a ≤ 2 b = 2 c a + b = c
quelle
Antworten:
Ihre Reduzierung von SUM auf MUL funktioniert mit einer geringfügigen Standardänderung. Angenommen, Ihre ursprünglichen Ganzzahlen befanden sich in { }. Nach der Transformation die neuen Ganzzahlen in { }. Wir werden die Reichweite reduzieren.3 1 , … , M x → 2 x 2 , … , 2 M3 3 1,…,M x→2x 2,…,2M
Betrachten Sie jedes Dreifache der ganzen Zahlen in der neuen Menge . Die Anzahl der Primteiler eines beliebigen von Null verschiedenen ist . Die Anzahl solcher Tripel ist . Daher beträgt die Anzahl der Primzahlen die mindestens eine der Zahlen ungleich Null teilen, höchstens .S ' a b - c < 2 M n 3 q a b - c 2 M n 3a,b,c S′ ab−c <2M n3 q ab−c 2Mn3
Sei die Menge der ersten Primzahlen. Die größte solche Primzahl hat höchstens die Größe . Wähle eine zufällige Primzahl2 M ⋅ n 4 O ( M n 4 log M n ) 0 , ... , O ( M n 4 log M n )P 2M⋅n4 O(Mn4logMn) . Mit hoher Wahrscheinlichkeitteilt p keines der a b - c ungleich Null, so dass wir jedes a ∈ S ' durch seinen Rest mod p darstellen können , und wenn 3 MULin S ' etwas a b = c finden , mit hoher Wahrscheinlichkeit wird für das Original 3 korrekt seinp∈P p ab−c a∈S′ p 3 ab=c S′ 3 SUM-Instanz. Wir haben den Bereich der Zahlen auf { } reduziert .0,…,O(Mn4logMn)
(Dies ist eine Standardgrößenreduktion. Möglicherweise können Sie dies verbessern, wenn Sie die Tatsache berücksichtigen, dass die immer Differenzen zweier Potenzen von .)2ab−c 2
quelle
Haben Sie die Reduktion mit versucht ? Die Ergebnisse sind reelle Zahlen, sodass Sie auf eine bestimmte Anzahl von Stellen runden müssen. Um sicherzustellen, dass die Zahlen trotz der Rundung korrekt addiert werden, müssen Sie möglicherweise etwas zufälliges Rauschen hinzufügen.M = max S - min SS′={2x/M|x∈S} M=maxS−minS
quelle