Чи визначає, чи є простір в інтервалі, який, як відомо, знаходиться в Р або NP-повному?


13

З цієї публікації в stackoverflow я побачив, що існують деякі відносно швидкі алгоритми просіювання інтервалу чисел, щоб побачити, чи є простір у цьому інтервалі. Однак чи означає це, що загальна проблема вирішення питання: (Чи існує простір в інтервалі?) Знаходиться в П. (На цю посаду було багато відповідей, які я не читав, тому вибачаюся, якщо це питання є дублікат чи непотрібність).

З одного боку, якщо інтервал досить великий (наприклад ), застосовується щось на кшталт Постулата Бертрана, і на цьому інтервалі безумовно є розкіш. Тим НЕ менше, я знаю , що існує як завгодно великі проміжки між двома штрихами (наприклад , [ N ! , N ! + N ] . [N,2N][N!,N!+N]

Навіть якщо проблема вирішення проблеми в PI не бачимо, як відповідна проблема пошуку також простежується, тому, можливо, ми не зможемо використати ті самі властивості щодо відомого розподілу праймерів під час виконання двійкового пошуку.

Відповіді:


19

Отже, ваша проблема полягає в наступному:

Введення: цілі числа Запитання: чи існує простим числом [ , u ] ?,u
[,u]

Наскільки я знаю, невідомо, чи є ця проблема в Р чи ні.

Ось що я знаю:

  • Тестування первинності (з урахуванням єдиного числа, перевірити, чи є простим) знаходиться в P, тому якщо діапазон досить малий, ви можете вичерпно протестувати кожне число в діапазоні, щоб побачити, чи є він простим - але це не призводить до загальний алгоритм.

  • nO((logn)2),+1,+2,+3,uO((log)2)

    На жаль, відомі результати простірних прогалин не здаються достатньо сильними, щоб беззастережно довести, що проблема в П.

  • r[,u][,u]u1/lognO(logu)[,u]O((ul)log(ul))

  • Ймовірно, можна застосувати методи просіювання для поліпшення часу роботи на практиці (наприклад, щоб уникнути будь-якого тесту на первинність на числа, які діляться невеликим простим рівнем). Я не знаю, чи може це показати, що призводить до будь-якого асимптотичного поліпшення.

  • Завдяки цим методикам проблема, ймовірно, на практиці проста.

  • Через вищезазначене зауваження, я особисто сумніваюся, що проблема не є повною.


O(u)

O(poly(logu))

O(poly(logu))O(poly(u))

loguu

Не потрібно, ви очистили мою плутанину. Дуже дякую!
Quelklef
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.