兔子数列

兔子数列:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?

雨燕双飞 提交于 2020-03-04 11:14:11
# include <stdio.h> int fibonacci ( int n ) { if ( n == 1 || n == 2 ) return 1 ; return fibonacci ( n - 1 ) + fibonacci ( n - 2 ) ; } void main ( ) { int month = 1 , n , sum = 0 ; scanf ( "%d" , & n ) ; while ( ( sum = fibonacci ( month ) ) < n ) { month ++ ; } printf ( "至少到第%d个月时,才有%d对兔子,已有%d对兔子\n" , month , n , sum ) ; } 来源: CSDN 作者: 轻松的小希 链接: https://blog.csdn.net/qq_38490457/article/details/104647118

第二章 算法时间复杂度

做~自己de王妃 提交于 2020-02-19 23:23:36
一、主定理 1、 主要是计算 n_log_b_a 。求出来之后和后面的Fn进行比较,然后按照规则些出结果就行。 2、一句话解释:这两个值哪一个大就取谁;想等的话先看Fn里面log的次数,最终的结果在log的基础之上+1就是最终结果log的次数。例题如右下角 3、要注意的一点就是:保证T(n)的形式要和定理里面的一样,一个大问题拆解成为几个相等的小问题。 1、例题如上。 2、N!是阶数最高的,属于NP难问题。复杂度是最大的。 3、n的n次方乘以log n。 Fib数列递推公式的证明(斐波那契数列) 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列。 先回顾一下常微分方程:fib数列。假设y=e的lλx次方,解出y。

【php】神奇的斐波那锲数列(递归 + 非递归)实现

六眼飞鱼酱① 提交于 2019-12-31 13:18:14
一、小知识(概念 + 趣味故事) 1、斐波那契数列: 1 1 2 3 5 8 13 21 34 55 … 概念: 前两个值都为1,该数列从第三位开始,每一位都是当前位前两位的和 规律公式为: Fn = F(n-1) + F(n+1) F:指当前这个数列 n:指数列的下标 2、永生的兔子 斐波纳契早年思考一个关于兔子繁殖的数学问题:从一只雄兔和一只雌兔开始,一年能生多少对兔子?该问题假设了以下条件:从一只刚出生的公兔和母兔开始。兔子在一个月后达到性成熟。兔子的妊娠期是一个月。雌性兔子性成熟后,每月生育一次。一只母兔子生了一只公兔子和一只母兔子。兔子不会死。如下图所示: 二、源代码(递归 + 非递归)实现 <?php function test() { $x = 39; //自增量 可变 $star_time = time(); //斐波那锲数列 递归调用 $arr = []; for ($i=1; $i<=$x; $i++) { $arr[] = f_digui($i); } //非递归方式生成 $arr2 = fbnq($x); $end_time = time(); echo "<pre>"; print_r($arr); echo "<pre>"; print_r($arr2); echo "<pre>"; print_r($star_time - $end_time)

fibnacci数列递归实现

安稳与你 提交于 2019-12-04 14:02:45
斐波那契数列 Fibonacci sequence又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。 递归表达式 F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) python实现 代码 测试 能在一分钟内计算出fib(10),fib(100),fib(1000),不能计算出fib(10000) 来源: https://www.cnblogs.com/harperhjl/p/11869474.html