Це не зовсім відповідь, але це близько. Далі є доказом того, що проблема є важкою для NP при рандомізованих скороченнях.
Існує очевидне відношення до суми підмножини: припустимо, ви знаєте коефіцієнти : p 1 , p 2 , … , p k . Тепер ви хочете , щоб знайти підмножина S з р 1 ... р до таким чином, щоNp1p2…pкSp1 … pк
журналL ≤ ∑pi∈ Sжурналpi≤ журналU.
Проблема спроби використати цю ідею, щоб показати проблему, є NP-складною є те, що якщо у вас є проблема підмноженої суми з числами , t 2 , … , t k , ви не обов’язково можете знайти праймери в поліноміальний час, такий що log p i ∝ t i (де під ∝ , я маю на увазі приблизно пропорційний). Це справжня проблема, оскільки, оскільки підмножина суттєво не є повною NP, вам потрібно знайти ці журнали p i для великих цілих чисел t i .т1т2…ткжурналpi∝ тi∝журналpiti
Тепер, припустимо, нам потрібно, щоб усі цілі числа … t k в задачі про підмножину знаходилися між x і x ( 1 + 1 / k ) , і що сума дорівнює приблизно 1t1 … tkxx(1+1/k). Проблема суми підмножини все ще буде NP-повною, і будь-яке рішення буде сумоюk/2цілих чисел. Ми можемо змінити задачу з цілих чисел на цифри, якщо дозволитиt ' я знаходитись міжtiтаti+112∑itik/2t′iti , і замість того, щоб вимагати, щоб сума була рівноюs, ми вимагаємо, щоб вона була міжsтаs+1ti+110kss . Нам потрібно лише вказати наші цифри приблизно на4logkбільше біт точності для цього. Таким чином, якщо ми почнемо з чисел зBбітів і зможемо задати реальні числаlogpiприблизноB+4logkбіт точності, ми можемо здійснити наше скорочення.s+1104logkBlogpiB+4logk
Тепер з вікіпедії (через коментар Сянь-Чжи нижче), кількість простих чисел між і Т + Т 5 / 8 є θ ( T 5 / +8 / увійти T ) , так що якщо ви просто вибрати номери випадковим чином в цьому діапазоні, і перевірити їх на первинність, з великою часткою ймовірності отримати розквіт у поліноміальний час.TT+T5/8θ(T5/8/logT)
Тепер спробуємо зменшити. Скажімо, наші всі B біти. Якщо ми візьмемо T I довжини 3 B біти, то можна знайти простий р я поблизу Т я з 9 / 8 B битами точності. Таким чином, ми можемо вибрати Т я так , що лог - Т я а т I з точністю 9 / 8tiBTi3BpiTi9/8BTilogTi∝ti біт. Це дозволяє нам знайти р я ≈ T я такщо лог р я а т я з точністю 9 / 89/8Bpi≈Tilogpi∝ti біт. Якщо підмножина цих простих чисел множиться на щось близьке до цільового значення, існує рішення вихідних задач на суму підмножини. Таким чином, нехай N = Π i p i , вибираємо L і U належним чином, і ми маємо рандомізоване зменшення від сукупності підмножини.9/8BN=ΠipiLU