【神奇的兔子数列】

news/2025/2/6 17:35:39/

14天阅读挑战赛
努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!

题目:有个很有名的数学逻辑题叫做不死神兔问题,假设第一个月有一对兔子,第二个月进入成熟期,第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月的兔子对数为多少?

这个典型兔子数列即是斐波那契数列

1、问题分析:

首先不妨拿出生的一对小兔子分析。

第一个月,小兔子①没有繁殖能力,所以还是一对。

第二个月,小兔子①进入成熟期,还是一对。

第三个月,小兔子①生了一对小兔子②,于是第二个月共有2对兔子(1+1)。

第四个月,兔子①又生了一对小兔子③,兔子②进入成熟期,于是共有3对兔子(1+2)。

第五个月,兔子①生了一对兔子④,这个月兔子②也生了一对兔子⑤,因此改月共有5(2+3)对兔子。

......

以此类推,那么为了表达清楚,我们来看一下图解。

那么我们可以发现,这个数列有如下明细的特点,从第三个月开始,当月的兔子数=上月的兔子数+上上月的兔子数。因此前面两项之后便构成后一项。 

算法知识点

根据斐波那契数列如下:

1  1  2  3  5  8  13  21  34  ......

推出递归的表达式:

 得出了规律,我们就可以进行代码的实现

代码实现

 public static void main(String[] args) {//求解1//1.创建一个长度为12的数组int[] arr =new int[12];//2、手动给0、1索引数据赋值arr[0]=1;arr[1]=1;//3、利用循环给剩下的数据进行赋值for (int i = 2; i < arr.length; i++) {arr[i]=arr[i-1]+arr[i-2];}//4、获取最大索引上的数据即可System.out.println("第十二个月的兔子为:"+arr[11]);//求解2:用递归求解/*1、找到递归出口2、找到递归的规律Fn(12)=Fn(11)+Fn(10)Fn(11)=Fn(10)+Fn(9)...Fn(3)=Fn(2)+Fn(1)Fn(2)=1Fn(1)=1*///获取方法得数据即可System.out.println("第十二个月的兔子为:"+getRabbitSum(12));}public static int getRabbitSum(int month){if (month==1||month==2){return 1;}return getRabbitSum(month-1)+getRabbitSum(month-2);}

相关算法题型题目总结

在进行代码实现的时候,需要注意递归算法的出口和规律,才能更好的解决题目。

通过这种小的算法题可以精进我们的编程能力和数据算法能力。在日常生活中也有很多递归的模型,欢迎大家参与讨论。

注:图片来源《趣味算法》第二版 


http://www.ppmy.cn/news/750903.html

相关文章

[机缘参悟-25]:鬼谷子-反应篇-钓语之术(诱饵、隐蔽、忍耐)

目录 前言&#xff1a; 第1章 何为钓-语 1.1 原文 1.2 翻译 第2章 如何运用钓-语之术 2.1 以虚求实 以无形&#xff08;虚&#xff09;求有声&#xff0c;得人“实" 2.2 以假探真 张网得实&#xff0c;虚静以待 第3章 综合运用多种技巧 3.1 与反听术(鉴定侦测…

【题目】一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子

/**************************** 文件名&#xff1a;[作业]作者&#xff1a;〈漆黑〉描述&#xff1a;〈 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子&#xff0c;就隔一个洞&#xff0c;到第三个洞去找&#xff1b;也没有找到&#xff0c;就隔两个洞&…

狮子搏兔 亦用全力

一直没有写退役感言&#xff0c;因为感慨&#xff0c;因为忙&#xff0c;更是因为之前还没有放下。 我一直在想&#xff0c;我是不是真的不适合这条路&#xff1f; 小学六年级的时候&#xff0c;起初真的是抱着&#xff1a;能玩电脑 这样的一种心态&#xff0c;才加入了信息学…

狡兔三窟,在搜狐也开了一个博客

感觉搜狐的博客最漂亮&#xff1b;新浪的最容易用&#xff1b;Donews的可塑性较大&#xff0c;但一般人用不了。今天就到这里了&#xff0c;收工&#xff01;

Stable Diffusion 中英文对照中文tag补全

Stable Diffusion是老外做的&#xff0c;因此全部界面都是英文的&#xff0c;因此会对国内很多英语不好的小伙伴来说是一个灾难&#xff0c;不过这里介绍大家一个自定义翻译插件的方法如下图。 还有我们在输入关键词的时候&#xff0c;由于英语水平有限对我们造成阻碍&#xf…

狡兔三窟,这是第二窟;)

Test. 转载于:https://www.cnblogs.com/huhuan/p/6113506.html

[机缘参悟-38]:鬼谷子-第五飞箝篇 - 警示之一:有一种杀称为“捧杀”

目录 第1章 什么是捧杀&#xff1f; 1.1 什么是捧杀 1.2 捧杀的本质 第2章 捧杀的案例 2.1 被捧杀的武圣关羽&#xff1b; 2.2 现代生活的捧杀 附录&#xff1a; 第1章 什么是捧杀&#xff1f; 1.1 什么是捧杀 “捧杀”典故出自《风俗通》&#xff0c;《现代汉语词典》…

Google:狡兔三窟

&#xfeff;&#xfeff; 谷歌经验&#xff1a;挑起“产品内斗”成为常胜将军 猎云网11月11日报道 &#xff08;编译&#xff1a;小豆豆&#xff09; 在社交网络和互联网时代&#xff0c;Google早已不再只靠搜索引擎一款产品打天下。人们常说“狡兔三窟”&#xff0c;而Googl…