¿Agregar números enteros representados por su factorización es tan difícil como factorizar? Solicitud de referencia

22

Estoy buscando una referencia para el siguiente resultado:

Agregar dos enteros en la representación factorizada es tan difícil como factorizar dos enteros en la representación binaria habitual.

(Estoy bastante seguro de que está ahí afuera porque esto es algo que me había preguntado en algún momento, y luego me emocioné cuando finalmente lo vi impreso).

El problema es "agregar dos enteros en la representación factorizada": dadas las factorizaciones primas de dos números e , se obtiene la factorización prima de . Tenga en cuenta que el algoritmo ingenuo para este problema utiliza la factorización en la representación binaria estándar como una subrutina.y x + yxyx+y

Actualización : Gracias Kaveh y Sadeq por las pruebas. Obviamente, cuantas más pruebas, mejor, pero también me gustaría alentar más ayuda para encontrar una referencia , que como dije, estoy bastante seguro de que existe. Recuerdo haberlo leído en un documento con otras ideas interesantes y no discutidas a menudo, pero no recuerdo cuáles eran esas otras ideas o de qué trataba el documento en general.

Joshua Grochow
fuente
66
Creo que un título mejor será "¿Factorizar la suma de dos enteros representados por su factorización es tan difícil como factorizar?"
MS Dousti
1
Buena pregunta. Si podemos escribir un entero dado como la suma de dos enteros fáciles de factorizar, entonces lo que quieres sigue. Es fácil de hacer si quisiéramos logn números, pero no veo cómo hacerlo incluso con loglogn números. Puede valer la pena mirar las clases de números que son fáciles de factorizar.
Kaveh
1
algunas preguntas relacionadas sobre MO y matemáticas. SE: 1 , 2 , 3
Kaveh

Respuestas:

15

Supongamos que podemos resolver el problema (llamémoslo FactSum) en la clase de complejidad y C está cerrado bajo la lógica de registro (también conocida como recursión limitada por el registro ) (por ejemplo, si podemos calcular x y donde es una función binaria, podemos calculado x 1x log n ) y contiene P (esta última condición puede debilitarse). Se demuestra que la factorización es en también en C .dodologlogxyX1...XIniciar sesiónnortePAGSdo

Tenga en cuenta que cada número puede escribirse como una suma de potencias de 2 . Cada uno de ellos es fácil de factorizar.Iniciar sesiónnorte2

Ahora dado un número, escríbelo como la suma de las potencias de él, luego escribe cada sumando en la representación de factorización, y luego usa el algoritmo para sumarlos en la representación de factorización. El resultado será la factorización del número de entrada.

Esto muestra que la factorización es reducible a la creación de de su problema FactSum. Por lo tanto, la factorización está en P FactSum (y creo que P puede reemplazarse con N C 1 aquí).Iniciar sesiónPAGSHechoSumaPAGSnortedo1

Kaveh
fuente
10

No conozco una referencia, pero creo que se me ocurrió una prueba:

Suponga que tiene un oráculo que, al ingresar dos números factorizadosO

X=yo=1nortepagsyoαyo

y

y=yo=1metroqyoβyo,

da como resultado la factorización de .X+y

Al tener acceso a , podemos factorizar cualquier número N en tiempo polinómico usando el siguiente procedimiento recursivo.Onorte

Factor de procedimiento ( )norte

  1. Encuentre una prima tal que N / 2 x N - 1 , y sea y = N - x .Xnorte/ /2Xnorte-1y=norte-X
  2. Si no es primo, obtenga la factorización de y por el factor de llamada recursivo ( y ) y la salida O ( x , f a c t o r ( y ) ) .yyyO(X,Funadotor(y))
  3. Otra salida .O(X,y)

Análisis:

Según el teorema de los números primos para suficientemente grande , hay muchos números primos entre N / 2 y N - 1 . Si N es tan pequeño que ningún primo cae en este intervalo, puede factorizar N fácilmente. Por lo tanto, el paso 1 pasa.nortenorte/ /2norte-1nortenorte

En el paso 2, puede usar AKS o cualquier otra prueba de primalidad de tiempo polinómico.

El número de recursión es simplemente , ya que en cada paso N se reduce a la mitad (al menos)O(lg(norte))=O(El |norteEl |)norte


PS-1: Asumir la conjetura de Goldbach podría ayudar a acelerar el procedimiento para enteros pares (y posiblemente impares).

PS-2: La reducción utilizada es una reducción de Cook. Uno podría estar interesado en llevar a cabo la prueba utilizando las reducciones de Karp.

MS Dousti
fuente
3
Creo que está abierto si podemos encontrar una prima en un rango dado de manera eficiente, así que no veo cómo te está yendo 1.
Kaveh
1
Xy
2
Sí, creo que teníamos la misma idea, es decir, queríamos encontrar enteros fáciles de factorizar que sumaran la entrada, trataste de usar primos, usé potencias de 2. :) Todavía no sé si podemos hacerlo con menos del número logarítmico de consultas al oráculo, y eso parece estar relacionado con una pregunta interesante y natural de la teoría de números (escribir números como la suma de números fáciles de factorizar).
Kaveh
5

Esta respuesta es independiente de mi respuesta anterior . Su objetivo es abordar la preocupación de @ Kaveh en los comentarios:

Iniciar sesiónnorteIniciar sesiónIniciar sesiónnorte

Tenía una preocupación similar:

La reducción utilizada es una reducción de Cook. Uno podría estar interesado en llevar a cabo la prueba utilizando reducciones de Karp.

(Las reducciones de Karp son para problemas de decisión. Aquí, por reducción de Karp, me refiero a una reducción de Cook de una sola consulta. ¡Perdón por la terminología no estándar!)


La respuesta a continuación se basa en las discusiones aquí: /math/54580/factoring-some-integer-in-the-given-interval .


En esta respuesta, proporcionaré una reducción de Karp en tiempo polinimial determinista de factorizar a factorizar la suma de dos enteros representados por sus factorizaciones . Sin embargo, hay una trampa: en el curso de la prueba, usaré la siguiente suposición de teoría de números:

pagsnortepagsnorte+1pagsnorte+1-pagsnorte=O(Iniciar sesión2pagsnorte)

nortenorte=El |norteEl |=O(Iniciar sesiónnorte)norte[norte-Iniciar sesión3norte,norte]Iniciar sesión3norte=O(norte3)

X[norte-Iniciar sesión3norte,norte]y=norte-X

0 0yIniciar sesión3norteEl |yEl |=O(Iniciar sesiónIniciar sesiónnorte)=O(Iniciar sesiónnorte)y

(X,y)norte=X+y

MS Dousti
fuente
Gracias Sadeq, pero los resultados condicionales no fueron lo que estaba pidiendo. PD: Estoy interesado en representaciones interesantes de números y la representación que uno obtiene de su respuesta (sacar un primo grande) no me parece muy interesante. Para dar el sabor de lo que sería interesante para mí: cada número natural es la suma de cuatro cuadrados .
Kaveh