0
点赞
收藏
分享

微信扫一扫

Java-与斐波那契数列相关的变体问题

变体问题指的是提问的方式不一样了,但是解决问题的方法还是用斐波那契数列来解。——写在前面的话。

一、变体1-兔子问题

1.问题描述

  • 第一个月,有一对未成熟的兔子
  • 第二个月上述的一对兔子成熟
  • 第三个月,他们能产下一对小兔子
  • 所有兔子遵循相同规律,求第n个月的兔子个数

2.分析例子

假设我要求第六个月的兔子个数。

  • f(6) = f(5) + 上个月成熟的兔子产下的小兔子
  • 上个月成熟的兔子 = 上上个月产下的兔子 = f(4)

-->f(6) = f(5) + f(4)

二、变体2-青蛙爬楼梯问题

1.问题描述

  • 楼梯有n阶
  • 青蛙要爬到楼顶,可以一次跳一阶,也可以一次跳两阶
  • 只能向上跳,问有多少种跳法

2.问题分析

将跳法列举出来,再找规律,看看是否符合斐波那契数列。

n

跳法

规律

1

(1)

1

2

(1,1)

(2)

2

3

(1,1,1)

(1,2)(2,1)

3

4

(1,1,1,1)(2,1,1)(1,2,1)

(2,2)(1,1,2)

5

可以看出,四个台阶的跳法来自于两个台阶的跳法再跨2,和来自三个台阶的跳法再跨1个台阶。即f(4) = f(3) + f(2)。但是要注意的是,这里的斐波那契数列是从1开始的而不是从0开始的。

举报

相关推荐

0 条评论