Le problème 3SUM essaie d'identifier 3 entiers
On suppose qu'il n'y a pas de meilleure solution que quadratique, c'est-à-dire
Je me demandais donc si cela s'appliquerait au problème généralisé: trouver des entiers
I think you can do this in
Le problème 3SUM essaie d'identifier 3 entiers
On suppose qu'il n'y a pas de meilleure solution que quadratique, c'est-à-dire
Je me demandais donc si cela s'appliquerait au problème généralisé: trouver des entiers
I think you can do this in
Réponses:
Même pour
Pour impair
Les deux algorithmes sont optimaux (sauf éventuellement pour le facteur logarithmique lorsque
Nir Ailon et Bernard Chazelle. Limites inférieures pour les tests de dégénérescence linéaire . JACM 2005.
Jeff Erickson. Limites inférieures pour les problèmes de satisfiabilité linéaire . CJTCS 1999.
-SUM nécessite du temps sauf si k-SAT peut être résolu en temps pour toute constante k. Cela a été montré dans un article de Mihai Patrascu et Ryan Williams (1).
En d'autres termes, en supposant l' hypothèse de temps exponentielle , votre algorithme est optimal jusqu'à un facteur constant dans l'exposant (un facteur polynomial dans)
(1) Mihai Patrascu et Ryan Williams. Sur la possibilité d'algorithmes SAT plus rapides. Proc. 21e Symposium ACM / SIAM sur les algorithmes discrets (SODA2010)
Voici quelques observations simples.
Pour , vous pouvez le faire en temps en balayant le tableau pour un zéro. Pour, vous pouvez le faire sans hachage temps. Triez la baie puis scannez-la. Pour chaque élément faire une recherche binaire pour . Il en résulte une complexité totale de. Pour le cas vous pouvez le faire en temps en accumulant le tableau et en vérifiant le résultat.
Pour plus de références, consultez la page du projet Problèmes ouverts pour 3SUM .
Voir http://arxiv.org/abs/1407.4640
Un nouvel algorithme pour résoudre le problème rSUM Valerii Sopin
Abstrait:
Un algorithme déterminé est présenté pour résoudre le problème rSUM pour tout r naturel avec une évaluation sub-quadratique de la complexité temporelle dans certains cas. En termes de quantité de mémoire utilisée, l'algorithme obtenu a également un ordre sub-quadratique. L'idée de l'algorithme obtenu est basée non pas sur les nombres entiers, mais sur k∈N bits successifs de ces nombres dans le système de numération binaire. On montre que si une somme de nombres entiers est égale à zéro, alors la somme de nombres présentée par tout k bits successifs de ces nombres doit être suffisamment "proche" de zéro. Cela permet d'écarter les chiffres qui, a fortiori, n'établissent pas la solution.
C'est quelque chose de nouveau dans ce numéro.