斐波那契数列兔子繁殖python(斐波那契数列兔子繁殖java)
python 打印斐波那契数列前二十项中中既能被三整除又能被五整除的数?
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1,?F(n)=F(n - 1)+F(n - 2)(n?≥ 3,n?∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
def fibonacci(n):
"""生成斐波拉数列的元素"""
a, b = 0, 1
for item in range(n + 1):
a, b = b, a + b
return a
fibonacci_list = list()
for i in range(20): ?# 将前20个保存到列表中
fibonacci_list.append(fibonacci(i))
# ls=[1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]
for item in fibonacci_list:
if item % 5 == 0 and item % 3 == 0: ?# 被3和5整除,即余数是0
print(item, end=" ")
斐波那契数列兔子繁殖的答案
13世纪意大利数学家斐波那契在他的《算盘书》中提出这样一个问题:有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对兔子关在里面。已知一对兔子每一个月可以生一对小兔子,而一对兔子出生后第二个月就开始生小兔子。假如一年内没有发生死亡,则一对兔子一年内能繁殖成多少对? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对 两个月后,生下一对小兔民数共有两对 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对 ------ 依次类推可以列出下表: 经过月数 0 1 2 3 4 5 6 7 8 9 10 11 12 幼仔对数 0 0 1 1 2 3 5 8 13 21 34 55 89 成兔对数 0 1 1 2 3 5 8 13 21 34 55 89 144 总体对数 1 1 2 3 5 8 13 21 34 55 89 144 233 幼仔对数=前月成兔对数 成兔对数=前月成兔对数+前月幼仔对数 总体对数=本月成兔对数+本月幼仔对数 可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。 这个数列是意大利中世纪数学家斐波那契在中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)的性质外,还可以证明通项公式为:an=(1/√5)*{[(1+√5)/2]^n-[(1-√5)/2]^n}(n=1,2,3.....)
满意请采纳

意大利著名数学家斐波那契研究兔子繁殖问题,满两年的兔子一共怎么算?
斐波那契兔子数列的描述:
在第一个月有一对刚出生的小兔子,在第二个月小兔子变成大兔子并开始怀孕,第三个月大兔子会生下一对小兔子,并且以后每个月都会生下一对小兔子。 如果每对兔子都经历这样的出生、成熟、生育的过程,并且兔子永远不死,那么兔子的总数是如何变化的?
也就是说,
第一个月只有一对兔宝宝,1对兔子。
第二个月兔宝宝变成大兔子,1对兔子。
第三个月大兔子生了一对兔宝宝,一大一小2对兔子。
第四个月大兔子继续生一对兔宝宝,小兔子变成大兔子。两大一小3对兔子。
兔子数列最大的特点就是前两项之和等于后一项,比如1+1=2、1+2=3、2+3=5、3+5=8、5+8=13…
所以,用excel列表如下
结论是46268对兔子
真的是一个可怕的数字啊!
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子.
1、上一个月的兔子(n),在下一个月,保持到下一月(n);即老兔数=上月兔子总数。
2、第3月出生的兔仔,由上上月(第前3月)的兔子所生,且是1对生1对,1:1的比例。及兔仔数=上上月的兔子总数。
3、总数=上月兔子总数+上上月的兔子总数(也即相邻两项之和)
“第3个月起每个月都生一对”(这里容易造成误解的是,第3个月起,这个起始时间点,是指月初还是月末的问题,从这个经典问题的初衷来说,是指的月初)。
因此:“第3个月,即隔2个月(约61天,闰月则忽略并按月来算)就发生”。
“斐波纳契数列”
兔子这道题是意大利的数学家列奥纳多·斐波纳契在1202年出版的惊世之作《算盘书》中提到的一道题。这道看似简单的计算题,其中包含这样一个数列关系:
f(1)=0;
f(2)=1:
f(n)=f(n-1)+f(n-2).
换种方式可以表达为:A1=0A2=1当n≥3时,数列An=A(n-1)+A(n-2)
不难发现,从第三个数起,每个数都是前两数之和。把它延续下去,就得到了一个数列。人们为了纪念斐波纳契这个伟大的发现,就将这个数列称为“斐波纳契数列”,这个数列也是我们知道的最早的无穷数列。
“一对兔子,出生后第二个月开始有生育能力,每月繁殖一对小兔子。问一对兔子一年中可繁殖出多少对兔子
一对兔子,出生后第二个月开始有生育能力,每月繁殖一对小兔子,一年中可繁殖出144对兔子.
斐波那契数列指的是这样一个数列?0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368
扩展资料
斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对
两个月后,生下一对小兔对数共有两对
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对
幼仔对数=前月成兔对数
成兔对数=前月成兔对数+前月幼仔对数
总体对数=本月成兔对数+本月幼仔对数
可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
参考资料:360百科—斐波那契数列
【算法】兔子繁殖之斐波那契数列
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
读题之后,我直接着手进行解题:
这个方法直接从实现角度来解决这个问题,就事论事,不太优雅。
因为每对兔子从出生到生产的过程是一致的,所以我考虑是不是封装一个方法来表示兔子的这一过程,然后用递归实现
这个方法我认为从解决问题的角度不失为一个好方法。但对规律问题考虑不深入,也属于就事论事。
网上看了正规解法后发现,这道题表现的本质就是斐波那契数列 f(0)=0,f(1)=1...f(n)=f(n-1)+f(n-2) (当前项等于前两项之和) 。这一数列强大之处我还无法深入体会,我就整理下如何让兔子生产和斐波那契数列联系起来:
整个推导过程为了让 幼年兔子对数更纯净 (保证都是上月生产的兔子),次月我们就把前一个月的幼年兔子并入成年了,这是由于从客观上来说
所以以上对幼年对数当月的“纯净”处理有利于对幼年对数的直接使用(试想一下如果幼年对数中混有新生的和上个月生的,你该如何处理它)。
从这推导过程的构架和实际推导过程中,我认为 变量定义功能的明确性和纯净性非常重要 。 我要的不是这个数列和公式的直接应用,而是这个推导过程。 想想当三个月变成四个月,变成五个月该怎么来推导?