Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung von GMP_LEGENDRE () -Funktion in PHP: Wie man quadratische Rest- und quadratische Nicht-Remain beurteilt

Detaillierte Erläuterung von GMP_LEGENDRE () -Funktion in PHP: Wie man quadratische Rest- und quadratische Nicht-Remain beurteilt

gitbox 2025-06-10

Was ist die Funktion gmp_legendre ()

In PHP ist GMP_LEGENDRE () eine Funktion, die durch die GMP -Erweiterung bereitgestellt wird, um das Legendre -Symbol zu berechnen. Diese Funktion wird in der Zahlentheorie häufig verwendet, insbesondere bei der Beurteilung, ob eine Ganzzahl der quadratische Rest unter einem Prime -Modul ist.

Die Funktionsdefinition lautet wie folgt:

 int gmp_legendre(GMP $a, GMP $p)

Wenn $ A die beurteilte Ganzzahl ist, ist $ P eine ungerade Primzahl, und beide Parameter müssen vom Typ GMP sein.

Die Definition und Bedeutung des Lejeune -Symbols

Das Lejeander -Symbol ist eine mathematische Notation, die angibt, ob eine Ganzzahl ein quadratischer Rest unter einem Prime -Modul ist. Die mathematische Definition lautet wie folgt:

(a/p) = a (p? 1)/2 mod p

Hier ist A jede Ganzzahl, und P ist eine seltsame Primzahl. Die Ergebnisse sind wie folgt:

  • Wenn das Ergebnis 1 ist, bedeutet dies, dass a der quadratische Rest von P ist;
  • Wenn das Ergebnis ist ? 1 , bedeutet dies, dass a der sekundäre Nicht-Remnant von P ist;
  • Wenn das Ergebnis 0 ist, bedeutet dies, dass a und p gemeinsame Faktoren oder a = 0 haben.

Die tatsächliche Verwendung der Funktion GMP_LEGENDRE ()

Als nächstes verwenden wir zwei Beispiele, um zu veranschaulichen, wie GMP_LEGENDRE () verwendet wird, um festzustellen, ob eine Ganzzahl quadratische Rest- oder quadratische Nicht-Remination ist.

Stellen Sie fest, ob eine Zahl quadratisch ist oder nicht

 
$a = gmp_init(5);
$p = gmp_init(7);
$ls = gmp_legendre($a, $p);
if ($ls == 1) {
    echo "$a Ja $p Quadratisch verbleibend";
} else {
    echo "$a 不Ja $p Quadratisch verbleibend";
}

Der Ausgang wird lautet: "5 ist das verbleibende Quadrat von 7".

Stellen Sie fest, ob eine Zahl quadratisch und nicht abreißt

 
$a = gmp_init(5);
$p = gmp_init(11);
$ls = gmp_legendre($a, $p);
if ($ls == -1) {
    echo "$a Ja $p Sekundäre Nicht-Abstand";
} else {
    echo "$a 不Ja $p Sekundäre Nicht-Abstand";
}

Die Ausgabe dieses Codes lautet: "5 ist keine sekundäre Nicht-Abstand von 11".

Notizen bei Verwendung von GMP_LEGENDRE ()

Wenn Sie die Funktion gmp_legendre () aufrufen, müssen Sie auf die folgenden Punkte achten:

  • Beide Parameter müssen GMP vom Typ Typ sein.
  • Der zweite Parameter $ P muss eine ungerade Primzahl sein.
  • Stellen Sie vor Verwendung dieser Funktion sicher, dass PHP GMP -Erweiterungen installiert und aktiviert hat.

Zusammenfassen

GMP_LEGENDRE () ist eine praktische Mathematikfunktion von PHP, die zur Bestimmung geeignet ist, ob eine Ganzzahl ein quadratischer Rest unter einem Prime -Modul ist. Es ist nicht nur ein gutes Instrument zum Erlernen der Kombination aus PHP und Zahlentheorie, sondern hat auch einen praktischen Anwendungswert in Kryptographie, Algorithmuswettbewerb und anderen Bereichen. Bei der Verwendung müssen Sie nur auf die Anforderungen an die GMP -Typ und die Parameteranforderungen achten und die Berechnung des Lejander -Symbols erfolgreich vervollständigen.

Referenzen

  • Liu Rujia. "Ganzzahl und Polynomalgorithmen". Peking: Tsinghua University Press, 2008.