Que sait-on de la complexité temporelle du problème suivant, que nous appelons 3-MUL?
Étant donné un ensemble de entiers, y a-t-il des éléments tels que ?
Ce problème est similaire au problème 3-SUM, qui demande s'il y a trois éléments tels que (ou de manière équivalente ). 3-SUM est supposé nécessiter un temps à peu près quadratique en . Existe-t-il une conjecture similaire pour le 3-MUL? Plus précisément, le 3-MUL est-il connu pour être 3-SUM difficile?
Notez que la complexité temporelle doit s'appliquer dans un modèle de calcul "raisonnable". Par exemple, nous pourrions réduire de 3-SUM sur un ensemble à 3-MUL sur l'ensemble , où . Alors une solution à 3-MUL, , existe si et seulement si . Cependant, cette explosion exponentielle des nombres évolue très mal avec différents modèles, comme le modèle RAM par exemple.
la source
Réponses:
Votre réduction de SUM à 3 MUL fonctionne avec une modification standard mineure. Supposons que vos entiers d'origine étaient dans { 1 , … , M }. Après la transformation x → 2 x les nouveaux entiers sont dans { 2 , … , 2 M }. Nous allons réduire la portée.3 3 1,…,M x→2x 2,…,2M
Considérons tout triple d'entiers dans le nouvel ensemble S ′ . Le nombre de diviseurs premiers de toute valeur non nulle a b - c est < 2 M . Le nombre de ces triplets est n 3 . Ainsi , le nombre des nombres premiers q qui divisent au moins l' un des a b - c nombres non nuls est au plus de 2 M n 3 .a,b,c S′ ab−c <2M n3 q ab−c 2Mn3
Soit l'ensemble des 2 premiers M ⋅ n 4 nombres premiers. Le plus grand nombre premier est de taille au plus O ( M n 4 log M n ) . Choisissez un nombre premier p ∈ P aléatoire . Avec une probabilité élevée, p ne divisera aucun des éléments non nuls a b - c , nous pouvons donc représenter chacun a ∈ S ′ par son résidu, mod p , et si 3 MUL en trouve a b = c dans SP 2M⋅n4 O(Mn4logMn) p∈P p ab−c a∈S′ p 3 ab=c , Avec une probabilité élevée, il sera correct pour l'instance 3 SUM d'origine. Nous avons réduit la plage des nombres à { 0 , … , O ( M n 4 log M n ) }.S′ 3 0,…,O(Mn4logMn)
(Il s'agit d'une réduction de taille standard. Vous pourriez être en mesure de faire mieux en considérant le fait que les sont toujours des différences de deux puissances de 2. )ab−c 2
la source
Avez-vous essayé la réduction où M = max S - min S ? Les résultats sont des nombres réels, vous devez donc arrondir à un certain nombre de chiffres. Pour vous assurer que les chiffres s'ajoutent correctement malgré l'arrondissement, vous devrez peut-être ajouter un peu de bruit aléatoire.S′={2x/M|x∈S} M=maxS−minS
la source