20个月后一共6765对兔子。
在700多年前,意大利有一位著名数学家斐波那契在他的《算盘全集》一书中提出了这样一道有趣的兔子繁殖问题。他先用列举法计算出各个月兔子对数,并进行了仔细观察,从中发现了一个十分有趣的规律,就是后面一个月份的兔子总对数,恰好等于前面两个月份兔子总对数的和。
1月兔子等于1对。
2月兔子等于1对。
3月兔子对数等于1月与2月兔子数相加等于2对。
4月兔子对数等于2月与3月兔子数相加等于5对。
后面依次类推。
扩展资料:
递归方法计算兔子繁殖问题:
根据实际问题,设置两个基本事件:rabbit(1)=1和rabbit(2)=1,由此,递归定义式为:
rabbit(n)=1when n=1 or n=2;
rabbit(n)=rabbit(n-1)+rabbit(n-2)when n>2;
rabbit(1),rabbit(2),rabbit(3), 称为Fibonacci序列,它是许多自然现象的模型。
rabbit(n)的Java方法:
[java]view plaincopy
publicstaticint rabbit(int n){
//------------------------------------------
//Computes a term in the Fibonacci sequence
//Precondition:n is a positive integer
//Postcondition:Returns the nth Fibonacci number
//------------------------------------------
if(n<=2){return1;}
else {//n>2, so n-1>0 and n-2>0
return rabbit(n-1)+rabbit(n-2);
}//end if
}//end rabbit
参考资料:
1、兔子是胎生。兔子是诱发排卵动物,当兔子五月到七月时就可配种,兔子没有明显的发情期,一年四季均可交配繁殖,但应注意避开高温和低温的季节,以保证幼仔的成活。
2、一般在兔子进入怀孕期的时候,兔子的颈子部位会出现一圈多余的毛,这个时候一定要尽快将母兔分栏饲养,如果不分栏的话,母兔可能会因为过于狂暴的脾气导致出现撕咬行为。
3、在一些刚刚性成熟的母兔怀孕时,可能母兔他没有经验,在她生完兔子之后,他可能会认为这个地方被侵占了,这个小兔子可能被他当成了敌人,他有可能会攻击小兔子。所以对于年龄比较小的母兔,我们需要将小兔拿出进行人工饲养。
斐波那契兔子数列的描述:
在第一个月有一对刚出生的小兔子,在第二个月小兔子变成大兔子并开始怀孕,第三个月大兔子会生下一对小兔子,并且以后每个月都会生下一对小兔子。 如果每对兔子都经历这样的出生、成熟、生育的过程,并且兔子永远不死,那么兔子的总数是如何变化的?
也就是说,
第一个月只有一对兔宝宝,1对兔子。
第二个月兔宝宝变成大兔子,1对兔子。
第三个月大兔子生了一对兔宝宝,一大一小2对兔子。
第四个月大兔子继续生一对兔宝宝,小兔子变成大兔子。两大一小3对兔子。
兔子数列最大的特点就是前两项之和等于后一项,比如1+1=2、1+2=3、2+3=5、3+5=8、5+8=13…
所以,用excel列表如下
结论是46268对兔子
真的是一个可怕的数字啊!
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
1 1月
1 2月
2 3月
3 4月
5 5月
8 6月
13 7月
21 8月
34 9月
55 10月
89 11月
144 12月
233 13月
第1种:
Private Sub Command1_Click()
i = 0
x = 1
y = 1
b = x & "," & y
For n = 3 To 13 Step 1
i = x + y
x = y
y = i
b = b & "," & i
Next
Print b
End Sub
这个算法是最经典的。其实a月的数量也就是老兔子加上新生兔子。老兔子这么算的:因为当月的生产数量为上个月的兔子总数,而这个生产数量就是由老兔子生的。所以老兔子的数量就是a-1月的数量也就是上一个月的数量。新兔子这么算的:因为新兔子就是上一个月的繁殖数量,即a-1月的繁殖数量,而这个繁殖数量就是由a-2月的总数决定的,所以新兔子就是a-2月了。所以根据这个原理,第一种方法成立。
第2种:
Private Sub Command1_Click()
i = 0
x = 1
y = 1
z = 2
b = x & "," & y & "," & z
For n = 4 To 13 Step 1
i = y 2 + x
x = y
y = z
z = i
b = b & "," & i
Next
Print b
End Sub
第2种算法的逻辑是:
(a月-2的月总数) 2 + (a月-3月总数)
因为当月的生产数量为上个月的兔子总数,而当月的新兔子(即上个月新生的兔子,这个月还未能生产)数量为上上个月的总数。
第3种:
Private Sub Command1_Click()
i = 0
x = 1
y = 1
z = 2
b = x & "," & y & "," & z
For n = 4 To 13 Step 1
i = z 2 - x
x = y
y = z
z = i
b = b & "," & i
Next
Print b
End Sub
(a月总数2) - (a-2月总数)
这第2种算法和第3种算法是基于第一种算法的原理的。只不过实在太复杂了,我自己脑子里只能粗略整理它的逻辑关系(其实也不是很懂),所以写出来大家一定看不懂。。。
后记:这个经典的兔子数列其实还可以继续玩下去。有非常复杂的递推关系(自己说的,虽然没学过什么叫真正的递推不过应该差不多吧)。每个参数影响非常复杂。我本来想继续这个混乱的递推逻辑,但想到再复杂的算法的时候我差不多都要疯掉了。。啊啊啊,暂时就这样吧~~~大脑休息下。熄火。
即斐波那契数列,“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5){[(1+√5)/2]^n - [(1-√5)/2]^n}√5表示根号5
很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
该数列有很多奇妙的属性
比如:随着数列项数的增加,前一项与后一项之比越逼近黄金分割06180339887……
还有一项性质,从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。
如果你看到有这样一个题目:某人把一个88的方格切成四块,拼成一个513的长方形,故作惊讶地问你:为什么64=65?其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。
如果任意挑两个数为起始,比如5、-24,然后两项两项地相加下去,形成5、-24、26、02、28、3、58、88、146……等,你将发现随着数列的发展,前后两项之比也越来越逼近黄金分割,且某一项的平方与前后两项之积的差值也交替相差某个值。
斐波那契数列的第n项同时也代表了集合{1,2,,n}中所有不包含相邻正整数的子集个数。
斐波那契数列别名
斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
斐波那契数列
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔民数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
------
依次类推可以列出下表:
经过月数:0123456789101112
兔子对数:1123581321345589144233
表中数字1,1,2,3,5,8---构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
这个数列是意大利中世纪数学家斐波那契在<算盘全书>中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)/的性质外,还可以证明通项公式为:an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3)
斐波那挈数列通项公式的推导
斐波那契数列:1,1,2,3,5,8,13,21……
如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
显然这是一个线性递推数列。
通项公式的推导方法一:利用特征方程
线性递推数列的特征方程为:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2
则F(n)=C1X1^n + C2X2^n
∵F(1)=F(2)=1
∴C1X1 + C2X2
C1X1^2 + C2X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5){[(1+√5)/2]^n - [(1-√5)/2]^n}√5表示根号5
通项公式的推导方法二:普通方法
设常数r,s
使得F(n)-rF(n-1)=s[F(n-1)-rF(n-2)]
则r+s=1, -rs=1
n≥3时,有
F(n)-rF(n-1)=s[F(n-1)-rF(n-2)]
F(n-1)-rF(n-2)=s[F(n-2)-rF(n-3)]
F(n-2)-rF(n-3)=s[F(n-3)-rF(n-4)]
……
F(3)-rF(2)=s[F(2)-rF(1)]
将以上n-2个式子相乘,得:
F(n)-rF(n-1)=[s^(n-2)][F(2)-rF(1)]
∵s=1-r,F(1)=F(2)=1
上式可化简得:
F(n)=s^(n-1)+rF(n-1)
那么:
F(n)=s^(n-1)+rF(n-1)
= s^(n-1) + rs^(n-2) + r^2F(n-2)
= s^(n-1) + rs^(n-2) + r^2s^(n-3) + r^3F(n-3)
……
= s^(n-1) + rs^(n-2) + r^2s^(n-3) +……+ r^(n-2)s + r^(n-1)F(1)
= s^(n-1) + rs^(n-2) + r^2s^(n-3) +……+ r^(n-2)s + r^(n-1)
(这是一个以s^(n-1)为首项、以r^(n-1)为末项、r/s为公差的等比数列的各项的和)
=[s^(n-1)-r^(n-1)r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解为 s=(1+√5)/2, r=(1-√5)/2
则F(n)=(1/√5){[(1+√5)/2]^n - [(1-√5)/2]^n}
C语言程序
main()
{
long fib[40] = {1,1};
int i;
for(i=2;i<40;i++)
{
fib[i ] = fib[i-1]+fib[i-2];
}
for(i=0;i<40;i++)
{
printf("F%d==%d\n", i, fib);
}
return 0;
}
Pascal语言程序
var
fib: array[040]of longint;
i: integer;
begin
fib[0] := 1;
fib[1] := 1;
for i:=2 to 39 do
fib[i ] := fib[i-1] + fib[i-2];
for i:=0 to 39 do
write('F', i, '=', fib[i ]);
end
数列与矩阵
对于斐波那契数列1,1,2,3,5,8,13……有如下定义
F(n)=f(n-1)+f(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = 1 1 F(n)
F(n) 1 0 F(n-1)
它的运算就是
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
可见该矩阵的乘法完全符合斐波那契数列的定义
设1 为B,1 1为C
1 1 0
可以用迭代得到:
斐波那契数列的某一项F(n)=(BC^(n-2))1
这就是斐波那契数列的矩阵乘法定义
另矩阵乘法的一个运算法则A¬^n(n为偶数)=A^(n/2) A^(n/2)
因此可以用递归的方法求得答案
时间效率:O(logn),比模拟法O(n)远远高效。
代码(PASCAL)
{变量matrix是二阶方阵, matrix是矩阵的英文}
program fibonacci;
type
matrix=array[12,12] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]y[1,1]+x[1,2]y[2,1];
temp[1,2]:=x[1,1]y[1,2]+x[1,2]y[2,2];
temp[2,1]:=x[2,1]y[1,1]+x[2,2]y[2,1];
temp[2,2]:=x[2,1]y[1,2]+x[2,2]y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procedure init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procedure work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end
数列值的另一种求法
F(n) = [ (( sqrt ( 5 ) + 1 ) / 2) ^ n ]
其中[ x ]表示取距离 x 最近的整数。
数列的前若干项
1 1
2 2
3 3
4 5
5 8
6 13
7 21
8 34
9 55
10 89
11 144
12 233
13 377
14 610
15 987
16 1597
17 2584
18 4181
19 6765
20 10946
兔子的繁殖力强,多胎多产、孕期短、成熟早、全年发情产仔等特点。
兔子有左右2个子宫,没有子宫和子宫角之分,属于最原始的双子宫类型。有所知哺乳动物中最大的卵子,直径160um(发育最快、最易培养)。
在**《疯狂动物城》中,就有一个关于兔子繁殖能力的笑点。兔子朱迪有275个兄弟姐妹!她离开兔子窝的时候,标志牌上显示“兔口”的数字还在噌噌地往上涨。
作为哺乳动物里的生育机器,兔子拥有2个子宫,成长到3-4个月就可以繁殖,每窝可以生6-10,每年4-6次再加上兔子的平均寿命5~12年,生个两三百只完全不是问题!
扩展资料:
兔子听觉比较灵敏。一有风吹草动就会警惕的竖起两耳,作出反应。兔子属胆小的动物。见到陌生人、狗、猫等都会惊慌不安,在兔笼内乱窜乱跳,严重时导致孕兔流产,哺乳母兔拒绝哺喂幼崽,特别严重的会发出尖叫,全身瘫痪或心脏破裂而亡。
兔喜欢干燥、清洁的环境。家兔适宜的湿度为60%~70%,湿度对兔的影响也很大。尤其是高湿,无论是高温高湿,还是低温高湿,对兔子的体温调节都是不利的。
兔的汗腺不发达,全身覆盖浓厚的被毛,体表的散热能力差。因此,宠物兔非常怕热。宠物兔最适宜的环境温度为15~25℃,临界温度为5℃和30℃。
-家兔
中国日报网-详解《疯狂动物城》里的18种动物!
兔子是通过胎生繁殖的,一次生产,一个雌性兔可以产下5只左右的小兔子。最少的情况下,也会产小两只。
兔子长大开始发情时,雄兔的后腿常用力拍击地面发出声音,并在雌兔后面追逐。这个时期很容易分辨兔的雄雌。
雄兔的这种行为是在向雌兔求爱,并向对方表示自己的存在。雌兔发情时能分泌出一种特殊气味,并将尾巴举起,不断摆动,使分泌气味向外扩散,借此引诱雄兔。
扩展资料:
对于初次养兔的人来说,养兔之前应做一些准备工作。
(1)学习养兔技术。
要购买一些养兔资料,系统学习养兔理论,了解家兔的生物学特性。可向大专院校、科研单位的专家以及具有多年养兔经验的农民请教,接受他们的建议。最好参加养兔技术培训班和到知名度较高的兔场参观、实习1~2周。
(2)做好市场调查。
引种之前,应向权威部门及权威人士了解有关情况。例如,向外贸部门了解国际行情,皮兔、肉兔及毛兔各类产品的销路及前景如何;向畜牧部门了解不同品种的特征特性以及本地有哪些好兔场;向有关兔场了解兔场经营情况,有哪些经验与教训。以此决定自己所选购的品种、数量和发展规划。
(3)建好笼舍。
养兔之前先建好兔舍、兔笼,备好有关用具,如食盆、水盆、产箱等,进兔前一周全面清理和消毒,以便兔子一进场就有一个舒适的“家”。
(4)备好饲料。
兔常用的粗饲料、精饲料以及矿物质和添加剂应准备1个月以上的用量。进兔之前就应根据兔子原产地兔场情况拟定配方,配好饲料,使新引进的兔不因饲料的变化而造成不良反应。
(5)备足药械、药物。
诊治兔病常用的药械如注射器、体温计、剪子、镊子等要准备好。常用药物如助消化药、抗菌消炎药、外用药、抗寄生虫药和兔瘟疫苗也应准备一些。
-兔
人民网-波兰政府鼓励民众像兔子一样多生育
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)