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

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

WBOY
WBOYasal
2023-07-28 23:51:251173semak imbas

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

Pengenalan:
Dalam komputer, kita selalunya perlu berurusan dengan operasi nombor besar. Walau bagaimanapun, disebabkan oleh had storan komputer, jenis integer tradisional tidak boleh mengendalikan nombor di luar julat tertentu. Untuk menyelesaikan masalah ini, kami boleh menggunakan perpustakaan GMP (GNU Multiple Precision) PHP untuk melaksanakan operasi nombor besar. Artikel ini akan memperkenalkan cara menggunakan PHP dan perpustakaan GMP untuk mengira gandaan sepunya terkecil mana-mana dua nombor besar.

  1. Apakah gandaan sepunya terkecil?
    Darab sepunya terkecil, juga dirujuk sebagai LCM (Darab Sepunya Terkecil), merujuk kepada nombor terkecil yang boleh dibahagi antara dua atau lebih nombor. Sebagai contoh, untuk nombor 4 dan 6, gandaan sepunya terkecilnya ialah 12.
  2. Prinsip Algoritma
    Untuk mengira gandaan sepunya terkecil bagi dua nombor besar, anda boleh menggunakan algoritma Euclidean, juga dikenali sebagai algoritma Euclidean. Idea asas adalah untuk terus mengambil baki dan hasil bagi dua nombor sehingga bakinya adalah sifar. Gandaan sepunya terkecil adalah sama dengan hasil darab dua nombor dibahagikan dengan pembahagi sepunya terbesar mereka.
  3. Gunakan perpustakaan GMP untuk operasi nombor besar
    PHP menyediakan perpustakaan GMP untuk operasi nombor besar, termasuk operasi tambah, tolak, darab, bahagi dan modulo. Sebelum melakukan operasi nombor besar, anda perlu menggunakan fungsi GMP untuk menukar integer biasa kepada integer GMP. Berikut ialah beberapa fungsi GMP yang biasa digunakan:
  • gmp_init(): Menukar integer kepada integer GMP.
  • gmp_add(): Kira jumlah dua integer GMP.
  • gmp_sub(): Kira perbezaan antara dua integer GMP.
  • gmp_mul(): Kira hasil darab dua integer GMP.
  • gmp_div_qr(): Kira hasil bagi dan baki dua integer GMP.
  1. Contoh kod PHP untuk mengira gandaan sepunya terkecil
    Berikut ialah contoh kod untuk menggunakan pustaka PHP dan GMP untuk mengira gandaan sepunya terkecil mana-mana dua nombor besar:
<?php
function calculateLCM($num1, $num2) {
    $gcd = gmp_gcd($num1, $num2);
    $lcm = gmp_mul(gmp_div_q($num1, $gcd), $num2);
    return $lcm;
}

$num1 = gmp_init("12345678901234567890");
$num2 = gmp_init("98765432109876543210");
$result = calculateLCM($num1, $num2);
echo gmp_strval($result) . "
";
?>

Dalam kod di atas, mula-mula gunakan gmp_gcd() berfungsi untuk mengira dua Pembahagi sepunya terbesar bagi nombor besar. Kemudian, gunakan fungsi gmp_div_q() untuk mengira hasil bagi nombor pertama dibahagikan dengan pembahagi sepunya terbesar. Akhir sekali, gunakan fungsi gmp_mul() untuk mendarab hasil bagi dengan nombor kedua untuk mendapatkan gandaan sepunya terkecil. Hasil akhir ditukar kepada rentetan menggunakan fungsi dan output gmp_strval().

Ringkasan:
Melalui tutorial dalam artikel ini, kami mempelajari cara menggunakan perpustakaan GMP dalam PHP untuk melaksanakan operasi nombor besar, dan menggunakan kaedah bahagi euclidean untuk mengira gandaan sepunya terkecil bagi dua nombor besar. Pustaka GMP menyediakan satu set fungsi yang mudah dan cekap yang boleh mengendalikan operasi bilangan besar dengan mudah yang tidak boleh diproses secara langsung oleh komputer. Saya harap artikel ini dapat membantu pembangun yang perlu berurusan dengan operasi bilangan besar.

Atas ialah kandungan terperinci Tutorial PHP dan GMP: Cara Mengira 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