某日到某公司笔试~遇到以下算法题目,顿时蒙了,冥思苦想不得其解,只怪当时数据结构与算法这门课没好好学,现在真是狼狈。
归来,上百度一搜,原来是一道Fibonacci 问题,真无奈,为什么学过Fibonacci却不知道兔子繁殖问题呢?真是可笑~~学习不彻底惹的祸,不过吃一堑长一智,现将问题及答案记录下来:
1,1,2,3,5,8,13,21。。。
称为裴波那契数列有许多神奇也叫兔子数列
神奇一、一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔民数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
------
依次类推珂以列出下表:
所经过月数:0123456789101112
兔子对数:1 1 2 3 5 8 13 21 34 55 89 144 233
表中数字1,1,2,3,5,8---构成了一个序列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
神奇二、有一楼梯共10级,一人每一步要跨一级也可跨二级,某人从第一级走到第十级共有几种不同的走法?
想一下这也可以用裴波那契数
程序大概是这样写的:
class Rabit
{
public static int caclulate(int m) //通过递归来计算
{
if (m <= 2)
{
return 1;
} else
return caclulate(m-1) + caclulate(m-2);
}
public static void main(String[] args)
{
for(int i=1; i<=12; ++i)
System.out.println("第" + i + "月:" + Rabit.caclulate(i));
}
}
分享到:
相关推荐
【C语言-兔子繁殖问题多解】是关于计算斐波那契数列的一个经典编程问题。斐波那契数列是由意大利数学家斐波那契提出的,它在数学、计算机科学和其他领域都有广泛的应用。兔子繁殖问题即为斐波那契数列的一种表现形式...
兔子繁殖问题
兔子繁殖问题,也被称为“兔子困境”或“莱昂纳多的兔子”,是斐波那契数列的一个经典实例。 在这个问题中,我们设想一对兔子在出生后的第一个月无法生育,但从第二个月开始可以生育。每对兔子每个月都会生出一对新...
### 兔子繁殖问题及其Python实现 #### 一、问题背景与定义 兔子繁殖问题源自一个经典的数学问题,它不仅在计算机科学领域有着广泛的应用,也是理解递归算法的一个很好的例子。该问题最早由意大利数学家斐波那契在...
兔子繁殖问题 def calculate_rabbit_pairs(months): if months == 1 or months == 2: return 1 else: rabbits = [1, 1] for i in range(2, months): rabbits.append(rabbits[i-1] + rabbits[i-2]) return ...
Python求解兔子繁殖问题涉及到的是经典的斐波那契数列,这是一个在计算机科学和数学中常见的序列。斐波那契数列的定义是这样的:序列中的每个数字是前两个数字的和,通常以0和1作为起始数字,即F(0)=0,F(1)=1。对于...
Python实现兔子繁殖问题的代码示例程序:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少。
兔子繁殖问题.py
在兔子繁殖问题中,假设每对兔子在出生后一个月就能繁殖,且每次繁殖出一对新的兔子(假设没有死亡),那么兔子的数量将按照斐波那契数列增长。 在C语言中解决这个问题,我们需要编写一个程序,它能根据用户输入的...
c 语言 兔子繁殖问题
本题使用C思想进行斐波那契数列的输出,可帮助同学的作业提交问题。
这种递归关系在很多数学和编程问题中都有应用,包括模拟自然界的某些现象,如兔子繁殖问题。 在C语言中,求解斐波那契数列通常有几种方法,包括递归、动态规划、循环等。在这个例子中,我们使用了一个简单的循环...
斐波那契数列是数学领域的一个经典概念,源自13世纪意大利数学家斐波那契(Fibonacci)在其著作《算盘书》中提出的一个兔子繁殖问题。这个问题假设每对兔子在出生后第二个月就能繁殖一对新的兔子,且没有死亡和其他...
在C语言中处理兔子繁殖问题通常涉及到著名的“斐波那契数列”(Fibonacci sequence),它描述了一对兔子从出生到达到生殖年龄开始繁殖,然后每一对兔子每个月都能生出新的一对兔子,新生的一对兔子在第一个月不会...
通过模拟兔子繁衍问题,我们还可以进一步探索斐波那契数列在自然界的其他应用,比如在植物的叶序排列、花朵的花瓣数目、动物的繁殖模式等许多地方都可以找到斐波那契数列的影子。这些自然界的规律与数学和计算机科学...
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
# 问题:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少? def rabbit(month): if month<=2: return 2 else: return rabbit(month-1)+rabbit(month-2) if __name__==__main__: month=int(raw_...
斐波拉契题目(生小兔子题目) 一对兔子,一个月生一对兔子,兔子两个月后长大,又能生兔子
兔子繁衍问题.c
标题中的“001_兔子问题_趣味C++练习题”指的是一个经典的数学问题,通常称为“斐波那契兔群问题”或“兔子繁殖问题”。这个问题源自中世纪的欧洲,是一个关于兔子繁殖的理想化模型。在C++编程中,解决这类问题可以...