AKS nombres Premiers algorithme en Python
Il y A quelques années, il a été prouvé que Nombres PREMIERS est en P. Existe-il des algorithmes de mise en œuvre de leur test de primalité en Python? Je voulais courir quelques repères avec une naïveté générateur et de voir par moi-même comment il est rapide. J'aimerais mettre en œuvre moi-même, mais je ne comprends pas le papier encore assez pour le faire.
- AKS est d'une grande importance théorique, mais sa performance est terrible (de Miller-Rabin est beaucoup mieux). Il existe de nombreux tests de primalité implémenté en Python.
- Désolé de vous décevoir, mais il y a un peu de mathématique de malentendu ici! Bien que nous n'avons pas formellement établi si
P == NP
, mais même siP != NP
, il ne s'ensuit pas queP == Fast
!
Vous devez vous connecter pour publier un commentaire.
Rapide réponse: non, l'AKS test n'est pas le moyen le plus rapide pour tester la primalité. Il y a beaucoup beaucoup plus rapide tests de primalité que soit assumer le (généralisée) hypothèse de Riemann et/ou sont aléatoires. (E. g. De Miller-Rabin est simple et rapide à mettre en œuvre.) La véritable percée de la papier a été théorique, ce qui prouve un déterministe polynomiale en temps de l'algorithme existe pour le test de primalité, sans présumer de la GRH ou d'autres plaidoiries des conjectures.
Cela dit, si vous voulez comprendre et de l'appliquer, Scott Aaronson court article pourrait aider. Il n'est pas aller dans tous les détails, mais vous pouvez commencer à la page 10 de 12, et il donne assez. 🙂
Il y a aussi un liste des implémentations (surtout en C++) ici.
Aussi, pour l'optimisation et l'amélioration (de plusieurs ordres de grandeur), vous voudrez peut-être regarder à ce rapport, ou (plus) Crandall et Papadopoulos rapport de l', ou (encore plus vieux) Daniel J Bernstein rapport. Tous ont assez détaillée pseudo-code qui se prête bien à la mise en œuvre.
Oui, aller chercher à AKS test pour les nombres premiers page sur rosettacode.org
et la sortie est: