Je recherche une référence pour le résultat suivant:
Ajouter deux entiers dans la représentation factorisée est aussi difficile que factoriser deux entiers dans la représentation binaire habituelle.
(Je suis presque sûr que c'est là-bas parce que c'est quelque chose que je me demandais à un moment donné, puis j'étais excité quand je l'ai finalement vu sur papier.)
"Ajouter deux entiers dans la représentation factorisée" est le problème: étant donné les factorisations premières de deux nombres et y , produire la factorisation première de x + y . Notez que l'algorithme naïf de ce problème utilise la factorisation dans la représentation binaire standard comme sous-programme.
Mise à jour : Merci Kaveh et Sadeq pour les preuves. Évidemment, plus il y a de preuves, plus on est de fous, mais j'aimerais aussi encourager plus d'aide à trouver une référence , qui, comme je l'ai dit, j'en suis assez sûr. Je me souviens l'avoir lu dans un document contenant d'autres idées intéressantes et rarement discutées, mais je ne me souviens pas de ce qu'étaient ces autres idées ni de l'objet du document en général.
la source
Réponses:
Supposons que nous pouvons résoudre le problème (appelons-le FactSum) dans la classe de complexité et C est fermé sous log -iteration (aka récursion log- bornée) (par exemple, si nous pouvons calculer x ∗ y où ∗ est une fonction binaire, nous pouvons calculé x 1 ∗ … ∗ x log n ) et contient P (cette dernière condition peut être affaiblie). Nous montrons que l' affacturage est également en C .C C bûche bûche x ∗ y ∗ X1∗ … ∗ xbûchen P C
Notez que chaque nombre peut être écrit comme une somme de puissances de 2 . Chacun d'eux est facile à prendre en compte.bûchen 2
Maintenant donné un nombre, écrivez-le comme la somme de ses puissances, puis écrivez chaque somme dans la représentation d'affacturage, puis utilisez l'algorithme pour les additionner dans la représentation d'affacturage. Le résultat sera la factorisation du numéro d'entrée.
Cela montre que l'affacturage est réductible à la de votre problème FactSum. L'affacturage est donc dans P FactSum (et je pense que P peut être remplacé par N C 1 ici).bûche PFactSum P N C1
la source
Je ne connais pas de référence, mais je pense avoir trouvé une preuve:
Supposons que vous ayez un oracle qui, en entrée, deux nombres factorisésO
et
renvoie la factorisation de .x + y
Ayant accès à , nous pouvons factoriser n'importe quel nombre N en temps polynomial en utilisant la procédure récursive suivante.O N
Facteur PROCÉDURE ( )N
Une analyse:
Par théorème des nombres premiers pour assez grand , il y a beaucoup de nombres premiers entre N / 2 et N - 1 . Si N est si petit qu'aucun nombre premier ne tombe dans cet intervalle, vous pouvez facilement factoriser N. Par conséquent, l'étape 1 passe.N N/ 2 N- 1 N N
À l'étape 2, vous pouvez utiliser AKS ou tout autre test de primalité en temps polynomial.
Le nombre de récursivité est simplement , car à chaque étape N est coupé de moitié (au moins)O ( lg( N) ) = O ( | N| ) N
PS-1: En supposant que la conjecture de Goldbach pourrait aider à accélérer la procédure pour les entiers pairs (et éventuellement impairs).
PS-2: La réduction utilisée est une réduction Cook. On pourrait être intéressé à effectuer la preuve en utilisant des réductions de Karp.
la source
Cette réponse est indépendante de ma réponse précédente . Son objectif est de répondre aux préoccupations de @ Kaveh dans les commentaires:
J'avais une préoccupation similaire:
(Les réductions Karp sont pour des problèmes de décision. Ici, par réduction Karp, je veux dire une réduction Cook à une seule requête. Désolé pour la terminologie non standard!)
La réponse ci-dessous est basée sur les discussions ici: /math/54580/factoring-some-integer-in-the-given-interval .
Dans cette réponse, je fournirai une réduction déterministe du temps polynimial de Karp de la factorisation à la factorisation de la somme de deux entiers représentés par leurs factorisations . Il y a cependant un hic: au cours de la preuve, je vais utiliser l'hypothèse théorique des nombres suivante:
la source