顺推的例子,”递推“的核心思想
程序员文章站
2022-05-13 20:43:51
...
如果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
顺推的例子 上过大学的应该都知道著名的“斐波那契”数列吧,说的是繁殖兔子的问题,题目我就大概说一下。 如果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 大家看看,是不是体现了”递推“的核心思想,代码也很简单。 */ $month = 12; $fab = array(); $fab[0] = 1; $fab[1] = 1; for ($i = 2; $i "; } ?>