¿Se está determinando si hay un primo en un intervalo que se sabe que está en P o NP completo?


13

Vi en esta publicación en stackoverflow que hay algunos algoritmos relativamente rápidos para tamizar un intervalo de números para ver si hay un primo en ese intervalo. Sin embargo, ¿esto significa que el problema de decisión general de: (¿Existe una prima en un intervalo?) Está en P. (Hubo muchas respuestas a esa publicación que no leí, así que me disculpo si esta pregunta es un duplicado o innecesario).

Por un lado, si el intervalo es lo suficientemente grande (por ejemplo [N,2N] ), entonces se aplica algo como el Postulado de Bertrand y definitivamente hay un primo en este intervalo. Sin embargo, también sé que hay arbitrariamente grandes brechas entre dos números primos (por ejemplo [N!,N!+N] .

Incluso si el problema de decisión está en PI, no veo cómo el problema de búsqueda correspondiente también es manejable porque, entonces, es posible que no podamos recurrir a las mismas propiedades con respecto a la distribución conocida de primos al realizar una búsqueda binaria.

Respuestas:


17

Entonces su problema es el siguiente:

Entrada: enteros Pregunta: ¿existe un primo en [ , u ] ?,u
[,u]

Hasta donde yo sé, no se sabe si ese problema está en P o no.

Esto es lo que sé:

  • La prueba de primalidad (dado un solo número, prueba si es primo) está en P, por lo que si el rango es lo suficientemente pequeño, puede probar exhaustivamente cada número en el rango para ver si es primo, pero esto no conduce a un algoritmo general

  • Si la conjetura de Cramer es verdadera, entonces el problema está en P. La conjetura de Cramer dice que la brecha entre primos consecutivos cerca de es O ( ( log n ) 2 ) , por lo que el siguiente algoritmo estará en P: iterar a través de los números , + 1 , + 2 , + 3 , ... , probando si es primo; si encuentra uno que es primo, deténgase inmediatamente con una respuesta afirmativa; si se golpea U , parada con una respuesta. La conjetura de Cramer nos dice que te detendrás después de la mayoría de OnO((logn)2),+1,+2,+3,u primality-tests, de modo que el algoritmo se ejecutará en tiempo polinómico.O((log)2)

    Desafortunadamente, los resultados conocidos en las brechas principales no parecen ser lo suficientemente fuertes como para demostrar incondicionalmente que el problema está en P.

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

  • Probablemente uno puede aplicar métodos de tamizado para mejorar el tiempo de ejecución en la práctica (por ejemplo, para evitar realizar pruebas de primalidad en números que son divisibles por un primo pequeño). No sé si se puede demostrar que esto conduce a una mejora asintótica.

  • Debido a estas técnicas, el problema es probablemente fácil en la práctica.

  • Debido a los comentarios anteriores, personalmente dudo que el problema sea NP-completo.


O(u)

O(poly(logu))

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

loguu

No es necesario, has aclarado mi confusión. ¡Muchas gracias!
Quelklef
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.