Ce n'est pas tout à fait une réponse, mais c'est proche. Ce qui suit est la preuve que le problème est NP-difficile avec des réductions aléatoires.
Il existe une relation évidente à la somme de sous-ensembles qui est: supposons que vous connaissiez les facteurs de : , , , . Maintenant, vous voulez trouver un sous-ensemble de tel quep 1 p 2 … p k S p 1 … p kNp1p2…pkSp1 … pk
logL≤∑pi∈Slogpi≤logU.
Le problème lorsque vous essayez d'utiliser cette idée pour montrer que le problème est NP-difficile, c'est que si vous avez un problème de sous-somme avec les nombres , , , , vous ne pouvez pas nécessairement trouver des nombres premiers en temps polynomial tels que (où par , je veux dire approximativement proportionnel à). C'est un réel problème car, étant donné que le sous-ensemble somme n'est pas fortement NP-complet, vous devez trouver ces pour les entiers de grande taille .t 2 … t k log p i ∝ t i ∝ log p i t it1t2…tklogpi∝ti∝logpiti
Supposons maintenant que nous avons besoin que tous les entiers d'un problème de somme de sous-ensembles soient compris entre et et que la somme soit approximativement . Le problème de la somme des sous-ensembles sera toujours NP-complet et toute solution sera la somme de entiers. Nous pouvons changer le problème de nombres entiers en réels si nous laissons être entre et , et au lieu d'exiger que la somme soit exactement , nous exigeons qu'elle soit entre et . Nous avons seulement besoin de spécifier nos chiffres à environ … t k x x ( 1 + 1 / k ) 1t1 … tkxx(1+1/k)k/2t ' i TiTi+112∑itik/2t′iti sss+1ti+110kss 4logkBlogpiB+4logks+1104logk plus de bits de précision pour le faire. Ainsi, si nous commençons par des nombres avec bits et que nous pouvons spécifier des nombres réels à environ bits de précision, nous pouvons effectuer notre réduction.BlogpiB+4logk
Maintenant, de wikipedia (via le commentaire de Hsien-Chih ci-dessous), le nombre de nombres premiers entre et est , donc si vous choisissez simplement nombres au hasard dans cette gamme, et les tester pour la primalité, avec une probabilité élevée obtenir un nombre premier dans le temps polynomial.T + T 5 / 8 θ ( T 5 / 8 / log T )TT+T5/8θ(T5/8/logT)
Essayons maintenant la réduction. Disons que nos sont tous bits longs. Si nous prenons de longueur bits, alors nous pouvons trouver un premier près de avec bits de précision. Ainsi, nous pouvons choisir pour que avec une précision de bits. Cela nous permet de trouver pour que avec une précision de bits. Si un sous-ensemble de ces nombres premiers se multiplie à quelque chose de proche de la valeur cible, il existe une solution aux problèmes de somme du sous-ensemble d'origine. Alors on laisse B T i 3 B p i T i 9 / 8 B T i connecte T i a t i 9 / 8tiBTi3BpiTi9/8BTilogTi∝tip i ≈ T i connecte p i a t i neuf / 89/8Bpi≈Tilogpi∝tiN = Π i p i L U9/8BN=Πipi , choisissez et correctement, et nous avons une réduction aléatoire de la somme du sous-ensemble.LU