PHP- und GMP-Tutorial: So berechnen Sie die Eulersche Gesamtfunktion großer Zahlen
Die Eulersche Gesamtfunktion ist eine häufige Funktion in der Zahlentheorie, die zur Berechnung einer positiven ganzen Zahl n verwendet wird, die kleiner oder gleich n ist und relativ teilerfremd mit n The ist Anzahl der Zahlen. Bei der Berechnung der Euler-Potenzialreduzierung großer Zahlen können wir aufgrund der großen Datenmenge nicht direkt herkömmliche Berechnungsmethoden verwenden, sondern müssen die GMP-Erweiterung (GNU Multiple Precision) von PHP verwenden, um die Operation auszuführen. In diesem Artikel wird die Verwendung von PHP und GMP zur Berechnung der Euler-reduzierten Potenz großer Zahlen vorgestellt und Codebeispiele bereitgestellt.
Überprüfen Sie zunächst das PHP-Erweiterungsverzeichnis. Sie können die aktuellen PHP-Konfigurationsinformationen anzeigen, indem Sie die Funktion phpinfo() ausführen. Suchen Sie in den angezeigten Konfigurationsinformationen nach „extension_dir“ und notieren Sie den Pfad des Erweiterungsverzeichnisses.
Laden Sie als Nächstes den Quellcode der GMP-Bibliothek von der offiziellen GMP-Website (https://gmplib.org/) herunter und extrahieren Sie ihn lokal.
Öffnen Sie das Befehlszeilenfenster und geben Sie das dekomprimierte GMP-Verzeichnis ein.
Führen Sie zum Kompilieren und Installieren die folgenden Befehle aus:
$ ./configure $ make $ make install
Kopieren Sie nach Abschluss der Installation die kompilierte GMP-Erweiterungsdatei (normalerweise gmp.so oder gmp.dll) in das zuvor notierte Erweiterungsverzeichnis.
Bearbeiten Sie die php.ini-Datei und fügen Sie die folgende Zeile am Ende der Datei hinzu:
extension=gmp
Speichern und schließen Sie die php.ini-Datei.
Starten Sie den Webserver neu, damit die neue GMP-Erweiterung wirksam wird.
<?php function euler_power($base, $exponent, $modulus) { $result = gmp_init(1); while (gmp_cmp($exponent, 0) > 0) { if (gmp_even($exponent)) { $base = gmp_powm($base, 2, $modulus); $exponent = gmp_div_q($exponent, 2); } else { $result = gmp_mul($result, $base); $exponent = gmp_sub($exponent, 1); } } return gmp_mod($result, $modulus); } // 示例用法 $base = gmp_init(23456789); $exponent = gmp_init(98765432); $modulus = gmp_init(1234567891); $result = euler_power($base, $exponent, $modulus); echo gmp_strval($result); ?>
Im obigen Beispielcode definieren wir eine Funktion namens euler_power, um die reduzierte Potenz von Euler zu berechnen. Die Funktion akzeptiert drei Parameter: Basis, Exponent und Modul. Die Funktion verwendet Schleifen und bedingte Beurteilungen, um die Parität des Index zu bestimmen, führt entsprechende Operationen basierend auf der Parität aus und gibt schließlich das Berechnungsergebnis zurück.
In der Beispielverwendung konvertieren wir Basis, Exponent und Modul über die Funktion gmp_init in den Ganzzahltyp von GMP. Rufen Sie dann die Funktion euler_power auf, um die reduzierte Leistung von Euler zu berechnen, und konvertieren Sie das Berechnungsergebnis mit der Funktion gmp_strval in eine Zeichenfolge für die Ausgabe.
Hinweis: Bei Verwendung der GMP-Funktion muss der Typ des Parameters der Ganzzahltyp von GMP sein, andernfalls tritt ein Fehler auf. Daher müssen Sie beim Definieren einer Variablen die Funktion gmp_init verwenden, um sie in den Ganzzahltyp von GMP zu konvertieren.
Das obige ist der detaillierte Inhalt vonPHP- und GMP-Tutorial: So berechnen Sie die Euler-Reduktion großer Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!