Esto no es una respuesta, pero está cerca. La siguiente es una prueba de que el problema es NP-duro bajo reducciones aleatorias.
Hay una relación obvia con la suma de subconjuntos que es: supongamos que conoce los factores de : p 1 , p 2 , ... , p k . Ahora, desea encontrar un subconjunto S de p 1 ... p k tal queNp1p2…pkSp1 … pk
logL≤∑pi∈Slogpi≤logU.
El problema al tratar de usar esta idea para mostrar que el problema es NP-hard es que si tienes un problema de suma de subconjuntos con los números , t 2 , ... , t k , no necesariamente puedes encontrar números primos en tiempo polinómico como ese log p i ∝ t i (donde por ∝ , quiero decir aproximadamente proporcional a). Este es un problema real porque, dado que la suma de subconjuntos no está fuertemente completada por NP, necesita encontrar estos log p i para enteros grandes t it1t2…tklogpi∝ti∝logpiti .
Ahora, supongamos que necesitamos que todos los enteros ... t k en un problema de suma de subconjuntos estén entre x y x ( 1 + 1 / k ) , y que la suma sea aproximadamente 1t1 … tkxx(1+1/k). El problema de la suma del subconjunto seguirá siendo NP-completo, y cualquier solución será la suma dek/2enteros. Podemos cambiar el problema de números enteros refiere a los reales si dejamos quet ' i estar entretiyTi+112∑itik/2t′iti , y en lugar de exigir la suma a ser exactamentes, se requiere que sea entresys+1ti+110kss . Solo necesitamos especificar nuestros números a alrededor de4logkmás bits de precisión para hacer esto. Por lo tanto, si comenzamos con números conbitsBy podemos especificar números realeslogpia aproximadamenteB+4logkbits de precisión, podemos llevar a cabo nuestra reducción.s+1104logksiIniciar sesiónpagsyoB + 4 logk
Ahora, desde wikipedia (a través de comentario de Hsien-Chih más adelante), el número de primos entre y T + T 5 / 8 es θ ( T 5 / 8 / log T )TT+ T5 / 8θ ( T5 / 8/ logT) , así que si usted acaba de elegir números al azar en ese rango, y pruébelos por primalidad, con alta probabilidad de obtener un primo en tiempo polinómico.
Ahora, intentemos la reducción. Digamos que nuestro tiene todos los bits B Si tomamos T i de longitud 3 B trozos, entonces podemos encontrar un número primo p i cerca de T i con 9 / 8 B bits de precisión. Por lo tanto, podemos elegir T i modo que log T i alfa camiseta T i con precisión 9 / 8tyosiTyo3 BpagsyoTyo9 / 8 BTyoIniciar sesiónTyo∝ tyo bits Esto nos permite encontrar p i ≈ T i para que log p i ∝ t i con precisión 9 /9 / 8sipagsyo≈ TyoIniciar sesiónpagsyo∝ tyo bits Si un subconjunto de estos primos se multiplica por algo cercano al valor objetivo, existe una solución para los problemas de suma del subconjunto original. Entonces dejamos N = Π i p i , elegimos L y U apropiadamente, y tenemos una reducción aleatoria de la suma del subconjunto.9 / 8sinorte= ΠyopagsyoLU