Это не совсем ответ, но это близко. Следующее является доказательством того, что задача NP-трудна при рандомизированных сокращениях.
Существует очевидная связь с суммой подмножества: предположим, вы знаете факторы : p 1 , p 2 , … , p k . Теперь вы хотите найти подмножество S из p 1 ... p k такое, чтоNp1p2…pkSp1 … pk
logL≤∑pi∈Slogpi≤logU.
Проблема с попыткой использовать эту идею, чтобы показать, что проблема NP-трудна, состоит в том, что если у вас есть проблема с суммой подмножеств с числами , t 2 , … , t k , вы не можете обязательно найти простые числа за полиномиальное время, например что log p i ∝ t i (где под ∝ я подразумеваю приблизительно пропорционально). Это реальная проблема, потому что, поскольку subset-sum не является строго NP-полной, вам нужно найти эти log p i для больших целых чисел t it1t2…tklogpi∝ti∝logpiti .
Теперь предположим, что мы требуем, чтобы все целые числа … t k в задаче суммы подмножеств находились между x и x ( 1 + 1 / k ) , и чтобы сумма составляла приблизительно 1t1 … tkxх ( 1 + 1 / к ). Проблема суммы подмножеств будет по-прежнему NP-полной, и любое решение будет суммойk/2целых чисел. Мы можем изменить задачу с целых чисел на действительные, если мы позволимt ′ i быть междуtiиti+112ΣяTяк / 2T'яTя , и вместо того, чтобы требовать, чтобы сумма была точноs, мы требуем, чтобы она была междуsиs+1Tя+ 110 кss . Нам нужно только указать наши числа примерно на4logkбольше битов, чтобы сделать это. Таким образом, если мы начнем с чисел сбитамиB, и мы можем указать действительные числаlogpiпримерно доB+4logkс + 1104 журналаКВжурналпяB+4logk бит точности, мы можем осуществить наше сокращение.
Теперь из Википедии (через комментарий Сянь-Чжи ниже), число простых чисел между и Т + Т 5 / 8 является θ ( Т 5 / 8 / войти Т )TT+T5/8θ(T5/8/logT) , так что если вы просто выбрать номера случайным образом в этом диапазоне, и проверить их на простоту, с высокой вероятностью получить штрих за полиномиальное время.
Теперь давайте попробуем сокращение. Допустим, все наши имеют длину B бит. Если мы возьмем T I длины 3 B биты, то можно найти простой р я вблизи Т я с 9 / 8 B битами точности. Таким образом, мы можем выбрать T i так, чтобы log T i ∝ t i с точностью 9 /tiBTi3BpiTi9/8BTilogTi∝ti бит. Это позволяет нам найти p i ≈ T i, так что log p i ∝ t i с точностью 9 /9/8Bpi≈Tilogpi∝ti бит. Если подмножество этих простых чисел умножается на что-то близкое к целевому значению, существует решение исходных проблем суммы подмножеств. Таким образом, мы позволяем N = Π i p i , выбираем L и U соответствующим образом, и мы получаем рандомизированное уменьшение от суммы подмножества.9/8BN=ΠipiLU