Ajouter des entiers représentés par leur factorisation est aussi difficile que la factorisation? Demande de réference


22

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.xyx+y

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.


6
Je pense qu'un meilleur titre sera "La factorisation de la somme de deux nombres entiers représentés par leur factorisation est-elle aussi difficile que la factorisation?"
MS Dousti

1
Bonne question. Si nous pouvons écrire un entier donné comme la somme de deux entiers faciles à factoriser, alors ce que vous voulez suit. C'est facile à faire si nous voulions numéros de log n , mais je ne vois pas comment le faire même avec des numéros de log n . Peut-être intéressant de regarder les classes de nombres qui sont faciles à factoriser. lognloglogn
Kaveh

1
quelques questions connexes sur MO et Math.SE: 1 , 2 , 3
Kaveh

Réponses:


15

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 est une fonction binaire, nous pouvons calculé x 1x log n ) et contient P (cette dernière condition peut être affaiblie). Nous montrons que l' affacturage est également en C .CCloglogxyx1xlognPC

Notez que chaque nombre peut être écrit comme une somme de puissances de 2 . Chacun d'eux est facile à prendre en compte.logn2

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).logPFactSumPNC1


10

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

x=i=1npiαi

et

y=i=1mqiβi,

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.ON

Facteur PROCÉDURE ( )N

  1. Trouvez un nombre premier tel que N / 2 x N - 1 , et soit y = N - x .xN/2xN1y=Nx
  2. Si n'est pas un nombre premier, obtenez la factorisation de y par le facteur d'appel récursif ( y ) et la sortie O ( x , f a c t o r ( y ) ) .yyyO(x,factor(y))
  3. Sinon, sortie .O(x,y)

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.NN/2N1NN

À 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.


3
Je pense que c'est ouvert si nous pouvons trouver un prime dans une gamme donnée, donc je ne vois pas comment vous vous en sortez 1.
Kaveh

1
@Kaveh: Vous avez raison! Avec quelques étapes supplémentaires, je pense que je peux changer l'algorithme pour ne pas exiger que soit premier, puis le factoriser comme y ; ou nous pouvons supposer que la réduction est probabiliste (car en temps polynomial probabiliste , nous pouvons trouver un nombre premier dans la plage donnée). xy
MS Dousti

2
Oui, je pense que nous avons eu la même idée, c'est-à-dire que nous voulions trouver des nombres entiers faciles à additionner, vous avez essayé d'utiliser des nombres premiers, j'ai utilisé des puissances de 2. :) Je ne sais toujours pas si nous pouvons le faire avec moins que le nombre logarithmique de requêtes à l'oracle, et cela semble être lié à une question de théorie des nombres intéressante et naturelle (écrire des nombres comme la somme de nombres faciles à factoriser).
Kaveh

5

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:

C'est facile à faire si nous voulions numéros de log n , mais je ne vois pas comment le faire même avec des numéros de log n .lognloglogn

J'avais une préoccupation similaire:

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.

(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:

pnpn+1pn+1pn=O(log2pn)

Nn=|N|=O(logN)N[Nlog3N,N]log3N=O(n3)

x[Nlog3N,N]y=Nx

0ylog3N|y|=O(loglogN)=O(logn)y

(x,y)N=x+y


Merci Sadeq, mais les résultats conditionnels n'étaient pas ce que je demandais. ps: Je m'intéresse aux représentations intéressantes des nombres et la représentation que l'on obtient de votre réponse (en prenant un grand premier) ne me semble pas très intéressante. Pour donner la saveur de ce qui m'intéresserait: chaque nombre naturel est la somme de quatre carrés .
Kaveh
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.