斐波那契数列(兔子数列)

学编程的人肯定接触过“斐波那契数列”和“约瑟夫环”,这里给出两种代码的写法意思不在于体会不同。而是要找到方法。也就是我们所说的数据结构和算法。基础很重要,以此告诫自己莫要追逐PHP华丽的函数。

  1. F(n)=f(n-1)+f(n-2)
  2.   F(1)=1
  3.   F(2)=1
  4. PHP代码:
  5. <?php
  6. // 斐波那契数列
  7. $arr = array(1,1);
  8. for ($i=2; $i<20; $i++)
  9. {
  10. //printf("i-1 = %s, i-2 = %s, i=%s<br/>",$arr[$i-1],$arr[$i-2],$i);
  11. $arr[$i] = $arr[$i-1] + $arr[$i-2];
  12. }
  13. for ($i=0; $i<count($arr); $i++)
  14. {
  15. if ($arr[$i]%5 == 0)
  16. {
  17. printf(‘%s<br/>‘,$arr[$i]);
  18. }
  19. }
  20. ?>
时间: 2024-08-11 01:34:30

斐波那契数列(兔子数列)的相关文章

(原)更高效的斐波那契(兔子问题)

还是兔子问题,速度更高了.不考虑数学公式求解的情况.考虑减少变量申请的数目,考虑减少栈的深度.(适合学生阅读.)C语言描述. 1 /* 2 *效率的斐波那契数列取值函数. 3 *时间效率o(n). 4 */ 5 int Fib(int month) 6 { 7 int a,b; 8 a=b=1; 9 if(month<3)//排除起始情况 10 return 1; 11 month-=3;//真实次数 12 while(month-- > 0) 13 month&1?(a+=b):(b

1 斐波那契的兔子

1 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 2 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....    3 斐波那契数列, Sn = Sn-1+Sn-2 思路分析: 这是一道数学问题,思路就是,首先你要知道递归的概念,什么是递归,递归在编程里就是一个判断 一般用if语句实现 if(条件一){ 执行一 }else { 这行这里的递归 } 一般这种问题都是有一个条件是死

斐波拉契的兔子

package cn.gl.program25; import java.util.Scanner; /** * 题目: * 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生对兔子,假如兔子不死, * 问每个月兔子总数为多少? * @author 冷夜雨花未眠 E-mail:[email protected] * @version 创建时间:2019年11月11日 */ public class Demo1 { public static void ma

Java 兔子问题(斐波那契数列)扩展篇

Java兔子问题(斐波那契数列)扩展篇 斐波那契数列指的是这样一个数列 0, 1, 1, 2,3, 5, 8, 13, 21, 34, 55, 89, 144, ...对于这个数列仅仅能说将兔子生产周期第为3月.假设生成周期变成4月这个数列肯定不是这种,或者说兔子还有死亡周期,在这里我是对兔子生产周期没有限定.仅仅要月份大于生产周期都能够计算出第month月份究竟能产生多少对兔子. Java兔子生殖问题 斐波那契数列又因数学家列昂纳多·斐波那契以兔子生殖为样例而引入.故又称为"兔子数列"

斐波那契数列——兔子繁殖问题

斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”. 斐波那契数列 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来.如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔民数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; --- 依次类推可以列出下表: 经过月数:0,1,2,3,4,5,6,7

斐波那契数列——摘自搜狗百科

1数列公式 递推公式 斐波那契数列:0.1.1.2.3.5.8.13.21.34.55.89.144... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式: F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3) 通项公式 通项公式的推导方法一:利用特征方程 线性递推数列的特征方程为: X^2=X+1 解得 X1=(1+√5)/2, X2=(1-√5)/2. 斐波拉契数列则F(n)=C1*X1^n + C2*X2^n ∵F(1)=F(2

斐波那契数列实例讲解以及C++实现

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以<斐波纳契数列季刊>为名的一份数学杂志,用于专门刊载这方面的研究成果. 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,

【编程小题目1】求解斐波拉契数列问题

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”.Fibonacci 数列定义:n = 1,2 时,fib(n) = 1n > 2 时,fib(n) = fib(n-2) + fib(n-1) // 递归算法求解Fibonacci 数列 #i

剑指Offer面试题9(java版)斐波那契数列

题目一:写一个函数,输入n,求斐波那契数列的第n项.斐波那契数列的定义如下: 1.效率很低效的解法,挑剔的面试官不会喜欢 很多C语言的教科书在讲述递归函数的时候,都户拿Fibonacci作为例子,因此很多的应聘者对这道题的递归解法都很熟悉. 下面是实现代码 我们教科书上反复用这个问题来讲解递归的函数,并不能说明递归的解法最适合这道题目.面试官会提示我们上述递归的解法有很严重的效率问题要求我们分析原因. 我们以求解f(10)为例来分析递归的求解过程.想求得f(10),需要先求出f(9)和f(8).

斐波拉契数列的一些性质

\(fib[1]=1,fib[2]=1,fib[n]=fib[n-1]+fib[n-2](n>=3)\) \(h[1]=a,h[2]=b,h[n]=b*fib[n-1]+a*fib[n-2](n>=3)\) \(h[n]=h[n-1]+h[n-2]\) \(h[n]=h[n-2]+h[n-3]+h[n-2]\) \(h[n]=h[n-4]+h[n-4]+h[n-3]+h[n-2]\) \(h[n]=\sum_{i=1}^{n-2}h[i] + h[2]\) \(\sum_{i=1}^{n}h[