首页  >  文章  >  php教程  >  顺推的例子,”递推“的核心思想

顺推的例子,”递推“的核心思想

WBOY
WBOY原创
2016-06-06 19:38:411208浏览

如果1对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月就可以生1对小兔子,如果从1对初生的小兔子开始,1年后能 繁殖多少兔子? 思路:其实这个问题我们可以将兔子划分为“1月大的兔子“,”2月大的兔子“,”3月大的兔子“。 ①初始时:一对1月大小

如果1对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月就可以生1对小兔子,如果从1对初生的小兔子开始,1年后能

繁殖多少兔子?

思路:其实这个问题我们可以将兔子划分为“1月大的兔子“,”2月大的兔子“,”3月大的兔子“。

        ① 初始时:            一对1月大小兔子,总数为1对。

        ② 第一个月:         1月大的小兔子变成2月大的兔子,总数还是1对。

        ③ 第二个月:         2月大的小兔子变成3月大的兔子,繁殖了一对小兔子,总数为2对。

        ④ 第三个月:         3月大的兔子tmd有生了一对小兔子,上个月1月大的小兔子变成了2月大的兔子,总数为3对。

         ......                    ......

        F0=1

        F1=1

        F2=F0+F1

        F3=F1+F2

        ......

        Fn=Fn-2+Fn-1
<?php

/*
 三: 举例

<1> 顺推的例子

      上过大学的应该都知道著名的&ldquo;斐波那契&rdquo;数列吧,说的是繁殖兔子的问题,题目我就大概说一下。

如果1对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月就可以生1对小兔子,如果从1对初生的小兔子开始,1年后能

繁殖多少兔子?

思路:其实这个问题我们可以将兔子划分为&ldquo;1月大的兔子&ldquo;,&rdquo;2月大的兔子&ldquo;,&rdquo;3月大的兔子&ldquo;。

        ① 初始时:            一对1月大小兔子,总数为1对。

        ② 第一个月:         1月大的小兔子变成2月大的兔子,总数还是1对。

        ③ 第二个月:         2月大的小兔子变成3月大的兔子,繁殖了一对小兔子,总数为2对。

        ④ 第三个月:         3月大的兔子tmd有生了一对小兔子,上个月1月大的小兔子变成了2月大的兔子,总数为3对。

         ......                    ......

        F0=1

        F1=1

        F2=F0+F1

        F3=F1+F2

        ......

        Fn=Fn-2+Fn-1

 

大家看看,是不是体现了&rdquo;递推&ldquo;的核心思想,代码也很简单。
*/


   $month = 12;
   $fab = array();

   $fab[0] = 1;
   $fab[1] = 1;

     for ($i = 2; $i < $month; $i++)
     {
         $fab[$i] = $fab[$i - 1] + $fab[$i - 2];
     }

     for ($i = 0; $i < $month; $i++)
	 {
	     echo sprintf("第{%d}个月兔子为:{%d}",$i, $fab[$i])."<br/>";
	 }
?>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn