Rumah > Artikel > pembangunan bahagian belakang > Tutorial PHP dan GMP: Cara Mengira Algoritma Euclidean Lanjutan untuk Nombor Besar
Tutorial PHP dan GMP: Cara mengira Algoritma Euclidean Lanjutan untuk nombor besar
Pengenalan:
Dalam sains komputer, Algoritma Euclidean Lanjutan (pendek kata EEA) ialah kaedah untuk mengira dua Algoritma integer untuk pembahagi sepunya terbesar (GCD) daripada dan pekali persamaan Bezu mereka. Untuk integer yang lebih kecil, algoritma biasa boleh digunakan untuk mengira, tetapi untuk integer yang sangat besar, algoritma biasa mungkin sangat perlahan atau bahkan menyebabkan limpahan. Dalam kes ini, algoritma Euclidean lanjutan untuk nombor besar boleh dikira dengan cekap menggunakan sambungan GMP dan fungsi sepadan yang disediakan oleh PHP.
Langkah:
Berikut ialah langkah untuk Algoritma Euclidean Lanjutan untuk mengira nombor besar menggunakan sambungan PHP dan GMP.
Memperkenalkan sambungan GMP:
Setelah sambungan GMP dipasang, sambungan boleh diperkenalkan dengan menambah kod berikut dalam kod PHP:
extension_loaded('gmp') or die('GMP 扩展未安装');
Tentukan fungsi yang mengira algoritma Euclidean lanjutan:
function extendedEuclideanAlgorithm($a, $b) { if (gmp_cmp($b, gmp_init(0)) == 0) { return array($a, gmp_init(1), gmp_init(0)); } else { list($gcd, $x, $y) = extendedEuclideanAlgorithm($b, gmp_mod($a, $b)); return array($gcd, $y, gmp_sub($x, gmp_mul(gmp_div_q($a, $b), $y))); } }
Panggil fungsi Dan hasil output: re
$a = gmp_init('123456789012345678901234567890'); $b = gmp_init('987654321098765432109876543210'); list($gcd, $x, $y) = extendedEuclideanAlgorithm($a, $b); echo "最大公约数:" . gmp_strval($gcd) . " "; echo "x 的系数:" . gmp_strval($x) . " "; echo "y 的系数:" . gmp_strval($y) . " ";
Bilangan Maksimum Konvensyen: 10
X Pekali: 68985593005553715113
Pekali: -862526
Atas ialah kandungan terperinci Tutorial PHP dan GMP: Cara Mengira Algoritma Euclidean Lanjutan untuk Nombor Besar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!