Rumah > Artikel > pembangunan bahagian belakang > Tutorial PHP dan GMP: Cara Mengira Permutasi Penuh Nombor Besar
Tutorial PHP dan GMP: Cara Mengira Jumlah Pilihatur Nombor Besar
Pengenalan
Dalam sains komputer, jumlah pilihatur merujuk kepada semua susunan yang mungkin bagi satu set elemen. Untuk gabungan elemen berskala kecil, kita boleh menggunakan rekursi atau lelaran untuk melaksanakan algoritma pilih atur penuh. Walau bagaimanapun, apabila berurusan dengan nombor besar, seperti nombor melebihi 100 digit, algoritma tradisional tidak mencukupi. Dalam tutorial ini, kami akan menerangkan cara menggunakan PHP dan sambungan GMP untuk mengira jumlah pilih atur nombor besar.
Pengenalan kepada sambungan GMP
GMP (GNU Multiple Precision) ialah perpustakaan operasi nombor besar dalam projek GNU, menyediakan operasi nombor integer dan titik terapung berketepatan tinggi. GMP tidak bergantung pada bilangan bit CPU, jadi ia boleh mengendalikan operasi nombor besar dengan sebarang bilangan bit. Dalam PHP, kita boleh menggunakan perpustakaan GMP melalui sambungan GMP.
Pasang sambungan GMP
Sebelum kita mula, kita perlu memastikan sambungan GMP dipasang dalam persekitaran PHP kita. Jika ia tidak dipasang, sila ikuti langkah di bawah untuk memasangnya:
Buka terminal atau command prompt dan masukkan arahan berikut untuk memuat turun perpustakaan GMP:
sudo apt-get install libgmp-dev
Laksanakan arahan berikut untuk memasang sambungan GMP :
sudo pecl install gmp
dalam php.ini Tambahkan baris berikut pada fail untuk mendayakan sambungan GMP:
extension=gmp.so
Kira jumlah pilih atur nombor besar
Berikut ialah contoh kod yang menggunakan sambungan PHP dan GMP untuk mengira jumlah pilih atur nombor besar:
<?php function factorial($n) { $result = gmp_init(1); for ($i = 2; $i <= $n; $i++) { $result = gmp_mul($result, $i); } return $result; } function permutations($n) { $factorial = factorial(strlen($n)); $counts = array_count_values(str_split($n)); foreach ($counts as $count) { $factorial = gmp_div_q($factorial, factorial($count)); } return $factorial; } $number = "1234567890"; $permutationCount = permutations($number); echo "数字 {$number} 的全排列个数为:{$permutationCount}"; ?>
Dalam kod di atas, kami mentakrifkan dua fungsi. Fungsi factorial
digunakan untuk mengira pemfaktoran nombor Kami menggunakan fungsi gmp_init
dan gmp_mul
GMP untuk mengendalikan operasi nombor besar. Fungsi permutasi
mula-mula mengira sumbangan nombor berulang dalam nombor kepada jumlah pilih atur, dan kemudian mengira bilangan pilih atur jumlah dengan membahagikan dengan faktorial yang sepadan. factorial
函数用于计算一个数的阶乘,我们使用GMP的gmp_init
和gmp_mul
函数来处理大数运算。permutations
函数首先计算数字中重复数字对全排列的贡献,然后通过除以相应的阶乘计算全排列的个数。
最后,我们给定一个数字1234567890
作为示例输入,计算其全排列的个数,并通过echo
echo
.
Ringkasan
Atas ialah kandungan terperinci Tutorial PHP dan GMP: Cara Mengira Permutasi Penuh Nombor Besar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!