Décider si un intervalle contient un nombre premier


14

Quelle est la complexité de décider si un intervalle des nombres naturels contient un nombre premier? Une variante du tamis d'Ératosthène donne un algorithme O~(L) , où L est la longueur de l'intervalle et cache les facteurs poly-logarithmiques au point de départ de l'intervalle; pouvons-nous faire mieux (en termes de L seul)?


1
Nitpick: The Sieve of Eratosthenes ne vous donne pas simplement des facteurs poly-logarithmiques au point de départ, même pour un intervalle de longueur 1. Il est en effet possible de vérifier qu'un nombre est premier est le temps qui est polylogarithmique dans le nombre (= polynôme dans la taille de la représentation) mais cela nécessite un algorithme beaucoup plus sophistiqué que le Tamis d'Eratosthène.
Vanessa

1
@Squark True, aurait dû spécifier "pseudoprime par rapport à une base de facteurs donnée". Bien que le point de départ de l'intervalle devienne grand, le coût attendu du test de primalité devient nul ...
Elliot Gorokhovsky

Réponses:


27

Avertissement : je ne suis pas un expert en théorie des nombres.

Réponse courte : si vous êtes prêt à supposer des "conjectures théoriques des nombres raisonnables", alors nous pouvons dire s'il y a un nombre premier dans l'intervalle dans le temps p o l y l o g ( n ) . Si vous n'êtes pas prêt à faire une telle hypothèse, alors il y a un bel algorithme en raison de Odlyzko qui permet d' atteindre n 1 / 2 + o ( 1 )[n,n+Δ]polylog(n)n1/2+o(1) , et je crois que c'est le plus connu.

Lien très utile avec de nombreuses informations sur un problème étroitement lié : projet PolyMath sur les algorithmes déterministes pour trouver des nombres premiers .

Réponse longue :

Il s'agit d'un problème difficile, d'un domaine de recherche actif, qui semble intimement lié à la difficile question de la délimitation des écarts entre les nombres premiers. Votre problème est moralement très similaire au problème de trouver un nombre premier entre et 2 n de manière déterministe, qui a récemment fait l'objet d'un projet PolyMathn2n . (Si vous voulez vraiment vous plonger dans ces questions, ce lien est un excellent point de départ.) En particulier, nos meilleurs algorithmes pour les deux problèmes sont essentiellement les mêmes.

Dans les deux cas, le meilleur algorithme dépend fortement de la taille des espaces entre les nombres premiers. En particulier, si est tel qu'il y a toujours un nombre premier entre n et n + f ( n ) (et que f ( n ) peut être calculé efficacement), alors on peut toujours trouver un nombre premier p o l y l o g ( n ) f ( n ) comme suit. Pour déterminer s'il existe un nombre premier entre n et n +f(n)nn+f(n)f(n)polylog(n)f(n)nn+Δ , vérifiez d'abord si . Si oui, affichez oui. Sinon, parcourez simplement les entiers entre n et n + Δ et testez chacun pour la primauté et répondez oui si vous trouvez un nombre premier et non sinon. (Cela peut être fait de manière déterministe, c'est pourquoi la recherche déterministe d'un nombre premier entre n et 2 n est si étroitement liée à la détermination de l'existence d'un nombre premier dans un certain intervalle.)Δf(n)nn+Δn2n

Si les nombres premiers se comportent comme nous pensons qu'ils le font, alors c'est la fin de l'histoire (jusqu'à facteurs). En particulier, nous nous attendons à pouvoir prendre f ( n ) = O ( log 2 n ) . Ceci est connu comme la conjecture de Cramér après Harald Cramér, et prouvant qu'elle semble très loin de la portée pour le moment. Mais, autant que je sache, il est largement admis. (On arrive à cette conjecture, par exemple, à partir de l'heuristique selon laquelle les nombres premiers se comportent comme l'ensemble aléatoire d'entiers obtenu en incluant chaque entier n 3polylog(n)f(n)=O(log2n)n3indépendamment au hasard avec probabilité .)1/logn

Il existe de nombreuses conjectures qui impliquent la borne beaucoup plus faible , commela conjecture de Legendre. (Je ne connais pas de conjectures connues pour impliquer une borne intermédiaire, bien que j'imagine qu'elles existent.) Et, l'hypothèse de Riemann est connue pour impliquer la borne similairef(n)O(f(n)O(n). Donc, si vous supposez ces conjectures, vous correspondez essentiellement à l'algorithme d'Odlyzko (jusqu'à un facteur den o ( 1 )f(n)O(nlogn)no(1) ) avec un algorithme beaucoup plus simple.

Je crois que la meilleure borne inconditionnelle en ce moment est raison de Baker, Harman et Pintz . Donc, si vous ne supposez rien, l'algorithme d'Odlyzko bat l'algorithme évident d'environ un facteur de n 0,025 .O~(n0.525)n0.025


3
kk

3
π(x):=\# primes below xpn+kpnpn+1pn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.