Questa non è una vera risposta, ma è vicina. Quanto segue è una prova che il problema è NP-difficile con riduzioni randomizzate.
Esiste una relazione evidente con la somma dei sottoinsiemi che è: supponiamo di conoscere i fattori di : p 1 , p 2 , ... , p k . Ora, vuoi trovare un sottoinsieme S di p 1 ... p k tale cheNp1p2...pKSp1 ... pK
logL ≤ ∑pio∈ Slogpio≤ logU.
Il problema con il tentativo di utilizzare questa idea per mostrare il problema è NP-difficile è che se si ha un problema di somma parziale con i numeri , t 2 , ... , t k , non è possibile trovare necessariamente numeri primi nel tempo polinomiale quel log p i ∝ t i (dove per ∝ , intendo approssimativamente proporzionale a). Questo è un vero problema, perché, in quanto sottoinsieme somma non è fortemente NP-completo, è necessario trovare questi log p i per i grandi numeri interi t i .t1t2...tKlogpio∝ tioαlogpiotio
Supponiamo ora che tutti gli interi … t k in un problema di somma di sottoinsieme siano compresi tra x e x ( 1 + 1 / k ) e che la somma sia approssimativamente 1t1 ... tKXx ( 1 + 1 / k ). Il problema della somma dei sottoinsiemi sarà comunque NP-completo e qualsiasi soluzione sarà la somma dik/2numeri interi. Siamo in grado di cambiare il problema da interi a reali se lasciamot ' ho compreso tratiela ti+112Σiotiok / 2t'ioti , e invece di richiedere che la somma sia esattamentes, è necessario che sia compresa trases+1ti+110kss . Abbiamo solo bisogno di specificare i nostri numeri a circa4logkpiù bit di precisione per farlo. Pertanto, se iniziamo con numeri conbitBe possiamo specificare numeri realilogpia circaB+4logkbit di precisione, possiamo effettuare la nostra riduzione.s+1104logkBlogpiB+4logk
Ora, da wikipedia (tramite commento di Hsien-Chih sotto), il numero di primi tra e T + T 5 / 8 è θ ( T 5 / 8 / log T ) , quindi se si sceglie i numeri in modo casuale in tale intervallo, e testali per la primalità, con alta probabilità ottieni un numero primo in tempo polinomiale.TT+T5/8θ(T5/8/logT)
Ora proviamo la riduzione. Diciamo che la nostra sono tutti i B bit. Se prendiamo T i di lunghezza 3 B bit, allora possiamo trovare un numero primo p ho vicino T I con 9 / 8 B bit di precisione. Così, possiamo scegliere T i modo che registro T ho alfa t i con precisione 9 / 8tiBTi3BpiTi9/8BTilogTi∝tiBit B. Questo ci consente di trovare p i ≈ T i modo che log p ho alfa t i con precisione 9 / 89/8Bpi≈Tilogpi∝tiBit B. Se un sottoinsieme di questi numeri primi si moltiplica in qualcosa vicino al valore target, esiste una soluzione ai problemi di somma del sottoinsieme originale. Quindi lasciamo N = Π i p i , scegliamo L e U in modo appropriato e abbiamo una riduzione randomizzata dalla somma del sottoinsieme.9/8BN=ΠipiLU