Comment déterminer le mappage principal le plus compact pour une plage (1, N) ?

Barbara Streisand
Libérer: 2024-11-04 03:29:29
original
551 Les gens l'ont consulté

How to Determine the Most Compact Prime Mapping for a Range (1, N)?

Détermination de la cartographie principale compacte de manière optimale pour la plage (1, N)

Trouver la cartographie principale la plus compacte peut être une tâche difficile. L'algorithme idéal produirait une structure de données avec la consommation de mémoire la plus faible pour une plage spécifiée (1, N).

Une approche potentielle est l'algorithme AKS, considéré comme le plus rapide pour les tests principaux généraux. Pour les grands nombres premiers, l'exploration des nombres premiers avec des formes spéciales, telles que les nombres premiers de Mersenne, peut être bénéfique.

Cependant, pour les tests de nombres premiers à usage général dans une plage limitée, un algorithme plus pratique et plus efficace peut être utilisé :

<code class="python">def isprime(n):
    """Returns True if n is prime."""
    if n == 2 or n == 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False

    i = 5
    w = 2

    while i * i <= n:
        if n % i == 0:
            return False

        i += w
        w = 6 - w

    return True</code>
Copier après la connexion

Cet algorithme exploite le fait que les nombres premiers (sauf 2 et 3) sont de la forme 6k - 1 ou 6k 1. Il vérifie efficacement diviseurs dans cette plage, ce qui le rend approprié pour déterminer la primalité dans un intervalle spécifié.

Si la vitesse est primordiale et que la plage est bien définie, la mise en œuvre d'un test pseudo-premier basé sur le petit théorème de Fermat peut encore améliorer l'efficacité. Le précalcul des faux positifs (nombres de Carmichael) et l'utilisation de la recherche binaire offrent une approche encore plus rapide, mais cela s'accompagne de la limitation d'une plage restreinte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!