By GokiSoft.com| 19:34 05/01/2024|
Học PHP

Fibonacci trong PHP - Lập Trình PHP - Khoá học lập trình PHP

Cho dãy Fibonaci như sau

F(0) = 1;

F(1) = 1;

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

Dùng đệ quy có nhớ và không nhớ in ra 10 phần tử của dãy Fibonaci

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)

GokiSoft.com [Teacher]
GokiSoft.com

2021-04-28 01:45:12



<!DOCTYPE html>
<html>
<head>
	<title>Fibonaci</title>
	<meta charset="utf-8">
</head>
<body>
<!-- Basic -->
<?php
	$f0 = $f1 = 1;
	$num = 10;

	//B1. Dung cach thong thuong
	echo "<h3>Day Fibonaci (C1)</h3><br/>";
	echo "$f0 $f1";
	for ($i=0; $i < $num - 2; $i++) {
		$fn = $f0 + $f1;
		echo " $fn";
		$f0 = $f1;
		$f1 = $fn;
	}

	//B2. In day Fibonaci.
	//Tinh so fibonaci tai vi tri thu $n -> De quy khong nho.
	$count = 0;
	function fibonaci($n) {
		if($n == 0 || $n == 1) return 1;
		global $count;
		$count++;
		return fibonaci($n - 1) + fibonaci($n - 2);
	}
	//fibonaci(0) -> 1, fibonaci(1) -> 1
	//fibonaci(2) = fibonaci(1) + fibonaci(0) = 1 + 1 = 2
	//fibonaci(3) = fibonaci(2) + fibonaci(1)
	//			  = fibonaci(1) + fibonaci(0) + 1
	//			  = 1 + 1 + 1 = 3
	//fibonaci(4) = fibonaci(3) + fibonaci(2)
	//			  = fibonaci(2) + fibonaci(1) + fibonaci(1) + fibonaci(0)
	//			  = fibonaci(1) + fibonaci(0) + 1 + 1 + 1
	//			  = 1 + 1 + 3 = 5

	echo "<h3>Day Fibonaci (C2)</h3><br/>";
	for ($i=0; $i < $num; $i++) {
		$f = fibonaci($i);
		echo "$f ";
	}
	echo "<br/>count = $count<br/>";

	//B2: In day Fibonaci -> Su dung de quy co nho
	$data = [1, 1]; //fibonaci(0) = 1, fibonaci(1) = 1
	$count = 0;
	function fibonaci2($n) {
		global $count, $data;
		if(isset($data[$n])) return $data[$n];
		$count++;
		$s = fibonaci2($n - 1) + fibonaci2($n - 2);
		$data[$n] = $s;
		// echo "$n - $s<br/>";
		return $s;
	}
	// var_dump($data);
	echo "<h3>Day Fibonaci (C3)</h3><br/>";
	for ($i=0; $i < $num; $i++) {
		$f = fibonaci2($i);
		echo "$f ";
	}
	echo "<br/>count = $count<br/>";
?>
</body>
</html>



Nguyen Trung Kien [community,C2010G]
Nguyen Trung Kien

2021-04-23 04:03:11



<!DOCTYPE html>
<html>
<head>
	<title>Fibonacci</title>
	<meta charset="utf-8">
</head>
<body>
	<?php
		function Fibonacci($n){
			$num1 = 0;
			$num2 = 1;
			$counter = 0;
			$series = '';

			while ($counter < $n) {
				$series.=$num1;
				if($counter < ($n-1)){
					$series.=', ';
				}
				$num3 = $num1 + $num2;
				$num1 = $num2;
				$num2 = $num3;
				$counter++;
			}
			return $series;

		}
		$num = 10;
		
		$Fibonacci_series = Fibonacci($num);
		echo $Fibonacci_series;
		
	?>
	
		</form>		
	</div>

</body>
</html>



Nguyễn Hoàng Hiệp [community,C2010G]
Nguyễn Hoàng Hiệp

2021-04-23 03:48:27

<!DOCTYPE html>

<html>

<head>

<title>Fibonanci</title>

<meta charset="utf-8">

<link rel="stylesheet" type="text/css" href="">

<script type="text/javascript"></script>

</head>

<body>

<?php


function Fibonacci($n){

$f0=1;

$f1=1;

$fn=1;

if ($n<0) {

return -1;}

else if($n==1||$n==1){

return $n;


}


else{

for ($i=2; $i <$n ; $i++) { 

$f0=$f1;

$f1=$fn;

$fn=$f0+$f1;

}

}

return $fn;

}

 print('10 số đầu tiên của dãy fibonacci là: ');

    for($i = 0; $i < 10; $i++){

        echo(Fibonacci($i)." ");

    }

    print"<br/>";



    function Fibonacci2($n){

        if($n < 0){

            return -1;

        }else if($n == 0 ||$n == 1 ){

            return $n;

        }else{

            return Fibonacci2($n - 1) + Fibonacci2($n - 2);

        }

    }


 print('10 số đầu tiên của dãy fibonacci là: ');

    for($i = 0; $i < 10; $i++){

        echo(Fibonacci2($i)." ");

    }

    print"<br/>";



  ?>


NguyenHuuThanh [T1907A]
NguyenHuuThanh

2020-07-01 05:34:11



<!DOCTYPE html>
<html>
<head>
	<title>Fibonacci</title>
</head>
<body>

	<?php
	       function fibonaci($n)
	       {
	       	  $f0 = 0 ;
	       	  $f1 = 1 ;
	       	  $fn = 1 ;

	       	  if ($n < 0)
	       	  {
	       	  	return -1;
	       	  }
	       	  else if ($n == 0 || $n == 1)
	       	  {
	       	  	return $n;
	       	  }
	       	  else
	       	  {
	       	  	for ($i = 2 ; $i < $n ; $i++)
	       	  	{
	       	  		$f0 = $f1;
	       	  		$f1 = $fn;
	       	  		$fn = $f0 + $f1;
	       	  	}
	       	  }
	       	  return $fn;

	       }

	       print ('10 so dau tien day fibonacci la');
	       for($i = 0 ; $i < 10 ; $i++)
	       {
	       	    echo(fibonaci($i)." ");
	       }
	       print "<br/>";


	       function Fibonacci2($n)
	       {
	       	if ($n < 0)
	       	{
	       		return -1;
	       	}
	       	else if ($n == 0 || $n == 1)
	       	{
	       		return $n;
	       	}
	       	else
	       	{
	       		return Fibonacci2($n-1) + Fibonacci2($n-2);
	       	}
	       }

	       print ("10 so dau tien :");
	       for ($i = 0 ; $i < 10 ; $i++)
	       {
	       	print (Fibonacci2($i)."");
	       }




	?>

</body>
</html>



Phí Văn Long [T1907A]
Phí Văn Long

2020-06-16 15:20:51



<?php 
    //Không dùng phương pháp đệ quy
    function Fibonacci($n){
        $f0 = 0;
        $f1 = 1;
        $fn = 1;
        
        if($n < 0){
            return -1;
        }else if($n == 0 || $n == 1){
            return $n;
        }else{
            for($i = 2; $i < $n; $i++){
                $f0 = $f1;
                $f1 = $fn;
                $fn = $f0 + $f1;
            }
        }
        return $fn;
    }
    print('10 số đầu tiên của dãy fibonacci là: ');
    for($i = 0; $i < 10; $i++){
        echo(Fibonacci($i)." ");
    }
    print"<br/>";
    //Dùng phương pháp đệ quy
    function Fibonacci2($n){
        if($n < 0){
            return -1;
        }else if($n == 0 ||$n == 1 ){
            return $n;
        }else{
            return Fibonacci2($n - 1) + Fibonacci2($n - 2);
        }
    }
    print("10 số đầu tiên của dãy fibonacci là: ");
        for($i = 0; $i < 10; $i++){
            print(Fibonacci2($i)." ");
        }

 ?>
 <!DOCTYPE html>
 <html>
 <head>
 	<title>Fibonacci IN PHP</title>
 </head>
 <body>
 
 </body>
 </html>



Nguyen Tuan Anh [T1907A]
Nguyen Tuan Anh

2020-06-15 03:59:35



<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<?php
		function fibo($n){
			$f0 = 0;
			$f1 = 1;
			$fn = 1;
			if($n <0){
				return -1;
			}else if($n==0 || $n ==1){
				return $n;
			}else 
			for ($i=2; $i <$n ; $i++) { 
				$f0 = $f1;
				$f1 = $fn;
				$fn = $f0+$f1;
			}
			return $fn;
		}

		echo('10 số đầu tiên của dãy fibonacci là: ');
    	for($i = 0; $i < 10; $i++){
        echo(fibo($i)." ");
    }
    echo"<br/>";


    //de quy 
    function Fibo2($n){
        if($n < 0){
            return -1;
        }else if($n == 0 ||$n == 1 ){
            return $n;
        }else{
            return Fibo2($n - 1) + Fibo2($n - 2);
        }
    }
    echo("10 số đầu tiên của dãy fibonacci là: ");
        for($i = 0; $i < 10; $i++){
            echo(Fibo2($i)." ");
        }
	?>
</body>
</html>



Luong Dinh Dai [T1907A]
Luong Dinh Dai

2020-06-14 15:33:32



<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<?php
		function fibo($n){
			$f0 = 0;
			$f1 = 1;
			$fn = 1;
			if($n <0){
				return -1;
			}else if($n==0 || $n ==1){
				return $n;
			}else 
			for ($i=2; $i <$n ; $i++) { 
				$f0 = $f1;
				$f1 = $fn;
				$fn = $f0+$f1;
			}
			return $fn;
		}

		echo('10 số đầu tiên của dãy fibonacci là: ');
    	for($i = 0; $i < 10; $i++){
        echo(fibo($i)." ");
    }
    echo"<br/>";


    //de quy 
    function Fibo2($n){
        if($n < 0){
            return -1;
        }else if($n == 0 ||$n == 1 ){
            return $n;
        }else{
            return Fibo2($n - 1) + Fibo2($n - 2);
        }
    }
    echo("10 số đầu tiên của dãy fibonacci là: ");
        for($i = 0; $i < 10; $i++){
            echo(Fibo2($i)." ");
        }
	?>
</body>
</html>



thienphu [T1907A]
thienphu

2020-06-14 02:11:05


#Fibo.php


<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<?php
		function fibo($n){
			$f0 = 0;
			$f1 = 1;
			$fn = 1;
			if($n <0){
				return -1;
			}else if($n==0 || $n ==1){
				return $n;
			}else 
			for ($i=2; $i <$n ; $i++) { 
				$f0 = $f1;
				$f1 = $fn;
				$fn = $f0+$f1;
			}
			return $fn;
		}

		echo('10 số đầu tiên của dãy fibonacci là: ');
    	for($i = 0; $i < 10; $i++){
        echo(fibo($i)." ");
    }
    echo"<br/>";


    //de quy 
    function Fibo2($n){
        if($n < 0){
            return -1;
        }else if($n == 0 ||$n == 1 ){
            return $n;
        }else{
            return Fibo2($n - 1) + Fibo2($n - 2);
        }
    }
    echo("10 số đầu tiên của dãy fibonacci là: ");
        for($i = 0; $i < 10; $i++){
            echo(Fibo2($i)." ");
        }
	?>
</body>
</html>



Trương Công Vinh [T1907A]
Trương Công Vinh

2020-06-13 02:07:07



<?php
//non-memoization
function f1($n){
  if ($n==1) {

    return 1;
  }elseif ($n==2) {

      return 1;
  }else {
   return f1($n-1)+f1($n-2);

  }
}
for ($i=1; $i <= 10; $i++) {
  // code...
  echo f1($i)."\t,\t";
}
echo "</br>";
//memoization

function f($n){
  $Fi=[];
       if($n==1) {
            return 1;
        }elseif ($n==2) {
          // code...
          return 1;

        }else {
          // code...
            if (!empty($Fi[$n])) {
              // code...
              return $Fi[$n];
            }else {
              // code...
            return  $Fi[$n] = f($n - 1) + f($n - 2);
            }
        }


}
for ($i=1; $i <= 10; $i++) {
  // code...
  echo f($i)."\t,\t";
}

 ?>



Trần Mạnh Dũng [T1907A]
Trần Mạnh Dũng

2020-06-12 23:42:42


#Fibonacci.php


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fibonacci</title>
</head>

<body>
    <?php
    //Không dùng phương pháp đệ quy
    function Fibonacci($n){
        $f0 = 0;
        $f1 = 1;
        $fn = 1;
        
        if($n < 0){
            return -1;
        }else if($n == 0 || $n == 1){
            return $n;
        }else{
            for($i = 2; $i < $n; $i++){
                $f0 = $f1;
                $f1 = $fn;
                $fn = $f0 + $f1;
            }
        }
        return $fn;
    }
    echo('10 số đầu tiên của dãy fibonacci là: ');
    for($i = 0; $i < 10; $i++){
        echo(Fibonacci($i)." ");
    }
    echo"<br/>";
    //Dùng phương pháp đệ quy
    function Fibonacci2($n){
        if($n < 0){
            return -1;
        }else if($n == 0 ||$n == 1 ){
            return $n;
        }else{
            return Fibonacci2($n - 1) + Fibonacci2($n - 2);
        }
    }
    echo("10 số đầu tiên của dãy fibonacci là: ");
        for($i = 0; $i < 10; $i++){
            echo(Fibonacci2($i)." ");
        }
    ?>
</body>

</html>