Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tutorial PHP dan GMP: Cara Mengira Pembahagi Sepunya Terhebat dan Gandaan Sepunya Terkecil Nombor Besar

Tutorial PHP dan GMP: Cara Mengira Pembahagi Sepunya Terhebat dan Gandaan Sepunya Terkecil Nombor Besar

WBOY
WBOYasal
2023-07-28 17:09:171379semak imbas

Tutorial PHP dan GMP: Cara mengira pembahagi sepunya terbesar dan gandaan sepunya terkecil bagi nombor besar

Pengenalan:
Dalam pengaturcaraan, kita selalunya perlu berurusan dengan pengiraan nombor besar. Walau bagaimanapun, disebabkan julat perwakilan integer yang terhad, menggunakan jenis integer tradisional akan menyebabkan masalah limpahan apabila berurusan dengan nombor yang besar. Untuk menyelesaikan masalah ini, PHP menyediakan perpustakaan sambungan GMP (GNU Multiple Precision), yang boleh mengendalikan integer yang besar secara sewenang-wenangnya. Tutorial ini menerangkan cara menggunakan sambungan GMP untuk mengira pembahagi sepunya terbesar dan gandaan sepunya terkecil bagi nombor besar, bersama-sama dengan contoh kod.

1. Pasang sambungan GMP
Untuk menggunakan sambungan GMP, anda perlu memastikan PHP telah memasang sambungan GMP. Anda boleh menyemak sama ada PHP mempunyai sambungan GMP yang dipasang melalui fungsi phpinfo(). Jika ia tidak dipasang, anda boleh memasangnya melalui langkah berikut:

  1. Muat turun sambungan GMP yang sesuai untuk sistem anda di laman web rasmi PHP (https://www.php.net/manual/en/gmp.installation. PHP); dan pasang sambungan GMP:
  2. $ ./configure --with-gmp
  3. $ make
  4. $ sudo make install
  5. Tambah baris berikut pada bahagian konfigurasi modul sambungan dalam fail konfigurasi php.ini:
  6. extension=gmp.so

    Mulakan semula PHP.
  7. 2. Kira pembahagi sepunya terbesar
    Pembahagi Sepunya Terhebat (GCD) merujuk kepada nombor terbesar di antara pembahagi sepunya dua atau lebih integer.
  8. function calculateGCD($a, $b) {
        $a = gmp_init($a);
        $b = gmp_init($b);
        
        return gmp_strval(gmp_gcd($a, $b));
    }
    
    $a = "123456789012345678901234567890";
    $b = "987654321098765432109876543210";
    $gcd = calculateGCD($a, $b);
    
    echo "最大公约数:" . $gcd;
  9. Kod penjelasan:

Gunakan fungsi gmp_init() untuk menukar nombor input kepada integer jenis GMP

Gunakan fungsi gmp_gcd() untuk mengira pembahagi sepunya terbesar

(

fungsi gmp.toval; tukar hasil pengiraan kepada jenis Rentetan aksara
  1. Output pembahagi sepunya yang paling hebat.
  2. 3 Kira gandaan sepunya terkecil
  3. Gandaan sepunya terkecil (Darab Sepunya Terkecil, disingkat LCM) merujuk kepada nombor terkecil yang boleh dibahagikan dengan dua atau lebih integer.
  4. function calculateLCM($a, $b) {
        $a = gmp_init($a);
        $b = gmp_init($b);
        
        $gcd = gmp_gcd($a, $b);
        
        return gmp_strval(gmp_mul(gmp_div($a, $gcd), $b));
    }
    
    $a = "123456789012345678901234567890";
    $b = "987654321098765432109876543210";
    $lcm = calculateLCM($a, $b);
    
    echo "最小公倍数:" . $lcm;
  5. Kod penjelasan:

Gunakan fungsi gmp_init() untuk menukar nombor input kepada integer jenis GMP

Gunakan fungsi gmp_gcd() untuk mengira pembahagi sepunya terbesar

fungsi hitung(.)mp; daripada dua nombor input
  1. Gunakan fungsi gmp_mul() untuk mengira hasil darab dua nombor
  2. Gunakan fungsi gmp_strval() untuk menukar hasil pengiraan kepada jenis rentetan
  3. Keluarkan gandaan sepunya terkecil.
  4. Kesimpulan:
  5. Dengan menggunakan sambungan GMP, kita boleh mengira pembahagi sepunya terbesar dan gandaan sepunya terkecil bagi nombor besar. Tutorial ini memberikan kod contoh pengiraan untuk rujukan dan kegunaan pembaca. Dalam pengaturcaraan sebenar, anda hanya perlu memberi perhatian kepada penukaran parameter input dan penukaran hasil Melalui sambungan GMP, anda boleh mengendalikan integer yang besar secara sewenang-wenangnya, mengelakkan masalah limpahan jenis integer tradisional.
  6. Saya harap tutorial ini dapat membantu pembaca memudahkan dan mempercepatkan untuk mengendalikan pengiraan nombor yang besar. Terima kasih kerana membaca!

Atas ialah kandungan terperinci Tutorial PHP dan GMP: Cara Mengira Pembahagi Sepunya Terhebat dan Gandaan Sepunya Terkecil Nombor Besar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn