Pages

Monday, September 26, 2016

[PHP] Đệ quy với số Fibonacci


Sau đây là code để PHP xử lý ra số Fibonacci của biến bất kì.

Số Fibonacci là số có tổng của 2 số đứng trước nó trong dãy số nguyên. Ví dụ, ngoài 1 và 2 có số Fibonacci là 1, tất cả các số Fibonacci khác đều có giá trị được tính bằng.

n >=2.

n = (n-1) + (n-2)

Ví dụ: 9 = (9 -1) + (9-2) = 7+ 8 = 15

Code cơ bản để hiểu đệ quy:
// hàm đệ quy: recruisive function
function dequy ($test) {
if ($test==1) { //base case
return 1;}
else {
return ($test * ($test-1)); // return case, calling itself
}
}
Ví dụ áp dụng:
// using recruisive function in particular case
echo dequy (10); // ra 90, bằng 10* (10-1)
//Bây giờ code này dùng trong php để dụng hàm xử lý số Fibonacci:

function Fibonacci($numberone) {
if ($numberone==1 OR $numberone==2){
return 1;}
else {
return ($numberone -1 ) + ($numberone - 2);
}
}
//Dùng thôi

echo Fibonacci (9), "
";//15
echo Fibonacci (20),"
";// = 18 + 19 = 37


//Code khác xử lý recrusive function to handle the Fibocacci

function getfib ($y) {
if ($y<=2) { // nếu nhỏ hơn 2
return 1;}
else {
return ($y-1) + ($y-2);}
}
 // Xài thôi
$y=10;
echo "Số Fibonacci của\n".$y."\nlà\n".getfib (10), "
";