Algorithme de Knuth (1960)

En faisant des recherches à mes heures perdues, j'ai retrouvé cet algorithme qui va dans le même sens de ce que j'ai trouvé. Je dis bien le même sens. Pas le même algo.
Qui peut me donner plus de détails (en dehors de ce que j'ai trouvé)?
Ma découverte permet de solutionner également les très grands nombres (je tiens compte évidemment des ressources informatiques nécessaires sans calculer de manière précise l'ordre de leur complexité).
Mon idée repose sur une séquence ordonnée de criblages et intègre les gaps.

Merci pour tout éclairage.

Ma question : pourquoi a-t-on abandonné cet algo?

Réponses

  • les ressources informatique qu'il faudrait pour des nombres i de plusieurs milliers de chiffres sont exponentielles.
    c'est exactement comme l'algo P(30) en plus compliqué,
    le principe est: tu construit une ligne de .....
    le premiers(.) = p par exemple 13 (.) (.) (.) (.) puis chaque point à pour valeur 13 + 30
    tu n'as besoin que de 8 n premiers pour extraire l'ensemble des premiers =13(30) il te faut fixer les 4 couples de base la première base 7*19 sur le cinqième point en comptant le (.) = 13.
    ce qui donne 13 . . . (7*19). . . . . . (7*49)
    tous les 7 (.) ta base extrait un premier ou un composite
    soit le point est marqué par un facteur p donc ce (.) est transformé en (,)

    (cela pourrait être x ou y ou 0 ou1)

    si ce n'est pas le cas avant de faires marquer les point par ce conjoint c ; dans cet exemple c = 49 (chaque conjoint c augmente de 30)la base donc 7 divise C si il est divisible alors il est composite donc supprimé, il ne part pas compter les (.) et marquer tous les 49 (.) pour les changer en (,) jusqu'a la limite N fixée, tu remarques que tous les (.) sont obligatoirement des premiers est les (,) des composites!
    mais ceci n'a aucun intérêt pour tester des grand nombres
    car une fois fixer ton nombre i à tester, et qu'il n'est pas divisible par une de tes 8 bases , tu lance tes premiers extrait par les bases jusqu'a la racine carrée de i, le premier qui touche la cible, c'est qu'il le divise donc i n'est pas premier!
    ce qui évitent les opérations a faire.
    encore un détail lorsque le conjoint de 19 part il s'agit bien sur de 7+30 = 37 qui marque tous les 37 (.) en (,) jusqu'à la limite N fixée seule les base se mette en attente du prochain départ.

    on peut mêttre des bases B plus importantes, pour accélerer l'algo mais il faut bien les positionner , et de plus faires partir tous les premiers inferieur a ces 8 bases, ce qui fait deux positionnement de bases, les 8 premières qui vont extraire les premiers < B et les faire partir jusqu'à N fixé puis lorsque les 8 petites bases arrivent au niveau des base B , elle continuent sans s'arréter jusqu'à N fixé ce qui réduit le nombre des opérations ensuite car les bases b compte des millions de points par bond, si ces bases B on pour valeur 1 000 000
  • C'est quoi cet algo P(30)?
    Je ne te comprends pas, tu parles d'un algo qui génère de suite 50.000.000.000 de nombres premiers consécutifs.
    Il n'y a pas que les diviseurs 2,3,5,et 7.
    Il y a a des intervalles composés de 1.000 nombres composites consécutivement et bien plus. En théorie ils peuvent être infinis.
    Donne moi une liste de 100 nombres (pas plus) générés selon n'importe quelle formule de ton choix. Exceptées les suites générées par confection douteuse (ça existe malheureusement en maths aussi).
    Je parle d'une méthode savamment construite et suffisamment efficace au regard des ressources informatiques requises.
    Les cribles (Eratosthène, Sandaram, Atkins, Knuth etc...) existent déjà.

    Le but est de trouver un algo simple qui permet (au moins pour certains nombres) de générer (200, 300 et plus) nombres premiers.
    Pour les très grands nombres (200 et plus) il faut une méthode légère qui permet de générer ne serait-ce que 100, ce serait un exploit et même si cette génération ne concerne que quelques nombres particuliers.
Cette discussion a été fermée.