Gør et bibliotek til prime-relaterede funktioner, der findes for Python?

Jeg har lige gennemført Miller-Rabin-Test og en simpel funktion til factorizing numre. Begge kunne være gjort bedre, og mindst Miller-Rabin-Test er kendt for.

Så kunne du fortælle mig, om et Python-Bibliotek, som implementerer sådanne fælles primære funktioner eksisterer, eller hvorfor ikke sådan bibliotek eksisterer?

OriginalForfatteren Martin Thoma | 2012-06-11

5 svar

  1. 9

    gmpy2 understøtter en bred vifte af pseudoprime test. Miller-Rabin test er tilgængelig som gmpy2.is_strong_prp().

    gmpy2 ikke har nogen faktorisering kode endnu.

    Disclaimer: jeg er vedligeholder af gmpy2. Den oprindelighed tests er baseret på kode fra http://sourceforge.net/projects/mpzprp/files/

    OriginalForfatteren casevh

  2. 13

    Jeg har lige opdaget isprime fra SymPy pakke:

    import sympy
    print sympy.isprime(10)

    Output:

    False

    Ikke at forveksle med prime, som returnerer den n-te primtal:

    import sympy
    print sympy.prime(10)

    Output:

    29

    OriginalForfatteren Falko

  3. 1

    Jeg tror ikke, at der eksisterer sådan et modul, der er dedikeret til førsteklasses funktioner i standard-bibliotek, men der er naturligvis masser af mennesker, der har skrevet oprindelighed tests og sådan.

    Et bibliotek, der er rettet mod flere præcision, men som har flere funktioner til primes (såsom is_prime() og next_prime()) er GMPY2. Den dokumentation er også tilgængelige.

    OriginalForfatteren voithos

  4. 0

    Hvis du er på udkig efter implementeringer af algoritmer, check ud Rosetta Kode. Hjemmesiden har mange implementeringer i Python. Du kan helt sikkert sammensætte dit eget bibliotek til dine personlige behov.

    Jeg er ikke udtrykkeligt er på udkig efter implementeringer. Jeg har allerede implementeret koden, men jeg foretrækker generelt ilægning af en funktion på et modul, der er blevet gennemgået, end at skrive det selv, især hvis det er noget godt-gang som Miller-Rabin.

    OriginalForfatteren JustinDanielson

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *