Aktueller Standort: Startseite> Neueste Artikel> Implementierung der Leistungstestmethode des großen Ganzzahl -TIPMA -Theorems mithilfe der PHP- und GMP -Erweiterung

Implementierung der Leistungstestmethode des großen Ganzzahl -TIPMA -Theorems mithilfe der PHP- und GMP -Erweiterung

M66 2025-08-08

Einführung in Tipperma Theorem

Der Theorem von Tipperma ist eines der grundlegenden Theoreme in der Zahlentheorie und wird bei der Erkennung von Primzahl häufig verwendet. Der Satz gibt an, dass, wenn p eine Primzahl ist und A eine ganze Zahl ist, die durch P nicht teilbar ist, ein^{p-1} \ äquiv 1 \ pmod {p} . Dieser Satz kann verwendet werden, um zu überprüfen, ob eine große Ganzzahl eine Primzahl ist.

Führen Sie die GMP -Erweiterung ein, um große Ganzzahlen zu verarbeiten

Da native PHP-Funktionen im Umgang mit super großen Ganzzahlen Einschränkungen aufweisen, bieten GMP-Erweiterungen einen effizienten Support für die Integer-Operation mit mehreren Präzisions. Zunächst müssen Sie bestätigen, dass die GMP -Erweiterung geladen ist. Das Beispiel lautet wie folgt:

 if (extension_loaded('gmp')) {
    echo "GMPVerlängerungsbibliothek geladen。";
} else {
    echo "GMPErweiterungsbibliothek nicht geladen。";
    exit;
}

Implementierung der Tipsma -Theorem -Testfunktion

Durch die Definition einer Funktion können wir mithilfe der Multi-Prescision-Betriebsfunktion von GMP mehrere Runden von zufälligen Tests durchführen, die primären Eigenschaften von DICRE Ganzzahlen beurteilen können:

 function fermatTest($n, $k) {
    for ($i = 0; $i < $k; $i++) {
        $a = gmp_random_range(2, $n - 1);  // Wählen Sie zufällig Ganzzahlen ausa
        $result = gmp_powm($a, $n - 1, $n);  // berechnen a^(n-1) mod n
        if (gmp_cmp($result, 1) !== 0) {  // Das Ergebnis ist nicht1,nNicht-Primes-Zahlen
            return false;
        }
    }
    return true;  // Alle Tests bestehen,nWahrscheinlich Prime
}

Implementierung der Testfunktion

Um die Genauigkeit der Tefama -Testfunktion zu überprüfen, können Sie eine Helfer -Testfunktion definieren und die obige Methode aufrufen, um sie mehrmals zu überprüfen:

 function testFermatTest($n) {
    if (fermatTest($n, 10)) {  // Benehmen10Tipps Test
        echo "{$n} Wahrscheinlich Prime。";
    } else {
        echo "{$n} Keine Primzahl。";
    }
}

Beispiel für Ausführungstest

Das folgende Beispiel zeigt, wie ein Tipma-Theorem-Qualitätstest auf einer super großen Ganzzahl durchgeführt wird:

 <span class="fun">testFerMatest (GMP_init ("10000000000000000000000003"));</span>

Im Code wird die Zeichenfolge über gmp_init in eine GMP -große Ganzzahl konvertiert, und dann wird die Testfunktion zur Erkennung aufgerufen.

Zusammenfassen

Durch die oben genannten Schritte und in Kombination mit der GMP -Erweiterungsbibliothek von PHP können wir einen effektiven TIPMA -Theorem -Test für große ganze Zahlen implementieren. Diese Methode ist einfach und praktisch und für ein vorläufiges Urteil über große Zahlen geeignet. Um die Genauigkeit zu verbessern, wird der Tipp -Fermat -Test jedoch normalerweise in Kombination mit anderen Primer -Erkennungsalgorithmen verwendet.