Masih ingat dengan Permutasi? Kalau sudah lupa, silakan mampir di Om Wiki yang serba tahu itu Tadinya sih, sudah lupa juga, tapi gara-gara Pak Dosen memberi PR soal Permutasi, jadi ya sudah, mau tidak mau belajar lagi ilmu zaman SMP/SMU ini (eh, apa malah SD ya?).
Pertama, buat dulu fungsi faktorial. Karena fungsi ini akan dipakai minimal dua kali. Dan menurut saran Pak Dosen, hal-hal yang berulang itu, ada baiknya dijadikan fungsi saja. Untuk menghemat code, katanya. Sekalian latihan buat fungsi.
OK, langsung saja, berikut adalah fungsi faktorial sederhana dalam PHP.
<?php
/**
* Count factorial of given number
* @param <int> $number
* @return <int> $result
*/
function factorial($number) {
$result = 1;
for ($i = 1; $i <= $number; $i++) {
$result = $result * $i;
}
return $result;
}
?>
Simpan dengan nama factorial.php. Selanjutnya kita tulis kode utamanya untuk perhitungan Permutasi-k dari n benda.
<?php
include 'isUnsignedInteger.php';
include 'factorial.php';
$stdin = fopen('php://stdin', 'r');
while (!(isUnsignedInteger($k)) || !(isUnsignedInteger($n)) || ($k > $n)) {
echo "Menghitung Permutasi-k dari n benda.n";
echo "Masukkan nilai n: ";
$n = trim(fgets($stdin));
echo "Masukkan nilai k: ";
$k = trim(fgets($stdin));
echo "n";
}
$result = factorial($n) / (factorial($n - $k));
echo "Permutasi-" . $k . " dari " . $n . " benda adalah " . $result . "n";
fclose($stdin);
?>
Bagi yang tidak mengikuti dari awal, kode isUnsignedInteger.php bisa dilihat di sini. Simpan kode di atas dengan nama answer26.php. Dan berikut hasilnya jika kode di atas dijalankan:
C:xamppphp>php answer26.php Menghitung Permutasi-k dari n benda. Masukkan nilai n: 4 Masukkan nilai k: 2 Permutasi-2 dari 4 benda adalah 12
Silakan mencoba. Saya tunggu komentar dan koreksinya jika ada 😉
One thought on “Permutasi”