首页 > 编程语言 >Java-与斐波那契数列相关的变体问题

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

时间:2023-12-17 16:32:56浏览次数:45  
标签: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开始的。

标签:Java,数列,跳法,与斐波,兔子,变体,那契,产下
From: https://blog.51cto.com/u_15535912/8862193

相关文章

  • java实现二叉树前序搜索输出深度完整代码
    importjava.util.Scanner;//1:无需package//2:类名必须Main,不可修改classTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intval){this.val=val;this.left=null;this.right=null;}}p......
  • 无涯教程-Java - boolean startsWith(String prefix, int toffset)函数
    判断字符串是否以prefix开头。booleanstartsWith-语法这是此方法的语法-publicbooleanstartsWith(Stringprefix,inttoffset)这是参数的详细信息-prefix   -要匹配的前缀。toffset  -从何处开始查找字符串。booleanstartsWith-返回值如果参数表示......
  • 无涯教程-Java - boolean startsWith(String prefix)函数
    判断字符串是否以prefix开头。booleanstartsWith-语法publicbooleanstartsWith(Stringprefix)这是参数的详细信息-prefix  - 要匹配的前缀。booleanstartsWith-返回值如果是以prefix开头,则返回true,否则为false。booleanstartsWith-示例importjava.io.*......
  • 无涯教程-Java - split(String regex, int limit)函数
    将字符串拆分成一个数组。String[]split-语法publicString[]split(Stringregex,intlimit)这是参数的详细信息-regex   -定界的正则表达式。limit   -输出阈值,这意味着要返回多少个字符串。String[]split-返回值它返回通过将字符串拆分为字符串......
  • Java医院3D人体智能导诊系统源码 Uniapp+springboot
    “智能导诊”以人工智能手段为依托,为人们提供智能分诊、问病信息等服务,在一定程度上满足了人们自我健康管理、精准挂号等需求。智能导诊可根据描述的部位和病症,给出适合病症的科室参考。智慧导诊页面会显示男性或女性的身体结构图,可切换正面/背面。通过点击部位选项,选择自己身体不......
  • 无涯教程-Java - String replaceFirst(String regex, String replacement)函数
    使用replacement替换第一个匹配的字符串。StringreplaceFirst-语法publicStringreplaceFirst(Stringregex,Stringreplacement)这是参数的详细信息-regex       -此字符串要匹配的正则表达式。replacement -将替换找到的表达式的字符串。String......
  • 无涯教程-Java - split(String regex)函数
    此方法将该字符串拆分成一个数组。String[]split-语法这是此方法的语法-publicString[]split(Stringregex)这是参数的详细信息-regex  - 定界的正则表达式。String[]split-返回值它返回字符串数组。String[]split-示例importjava.io.*;publicclass......
  • java接口自动化系列(02):测试数据文件设计
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html说明本次分享的是测试数据存excel中,后续分享测试数据存yaml中测试用例数据示例解释:标题行每个单词首字母大写,因为代码里面反射会用到解释:字段数据Url:只写路径,不需要写ip、端口RequestType:目......
  • 十一,JAVA内部类,枚举
    内部类描述事物内部的事物;就是一个类定义在另一个类的内部当内部类定义在成员变量的位置上时,可以被成员修饰符修饰,修饰后会具备修饰符的特征:private:只能在当前类中访问static:访问出现局限性privateintnum=110;  classInner{  ......
  • Java之可变参数和Collections的详细解析
     1.可变参数在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.格式:修饰符返回值类型方法名(参数类型...形参名){}底层:其实就是一个数组好处:在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层帮我们自动创建数组并添加元素了......