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
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)
![GokiSoft.com [Teacher]](https://www.gravatar.com/avatar/fc6ba9324e017d540af3613b3a77dd21.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/598b6cbd59c38ba0404dfa2129befa0a.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/8838f54079683f30f23ba7b170396c08.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/035e4f4fed661b8e1c3e066e43cd5e41.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/5db166b7b74443c5c221e4c0068d6da9.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/002096a0be1ae5a481a9e1d00aa8b009.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/ca08fa4090e1038e541197564747f93c.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/c4573ea65e411176c1852fd8584f1ab1.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/223a7e3a46f4a747f81b921fe023fcc4.jpg?s=80&d=mm&r=g)
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]](https://www.gravatar.com/avatar/ee4661d1f9133c241d6c8287c7ea8ceb.jpg?s=80&d=mm&r=g)
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>