12.推广的斐波那契数列.斐波那契数列是以兔子繁殖为例子而引入,其假设是初始状态有一对兔子,兔子出生满两个月后每个月生产一对小兔,兔子不会死亡. (1)假设出生满三个月后每个月生产一对小兔,其他假设不变,这里称为第一类推广的斐 波那契数列.用 m 函数递推调用方式给出第一类推广的斐波那契数列 m 函数,并求第40个月时兔子的对数. (2)假设兔子死亡率为 a ,其他假设不变,这里称为第二类推广的斐波那契数列.用 m 函数递推调用方式给出第二类推广的斐波那契数列 m 函数,并求 a =0.1时第40个月时兔子的对数的数学期望.
时间: 2023-12-03 13:43:51 浏览: 177
兔子繁殖案例
5星 · 资源好评率100%
1. 第一类推广的斐波那契数列
假设出生满三个月后每个月生产一对小兔,其他假设不变,则每对兔子在出生后第三个月开始生产,设第 $n$ 个月共有 $f(n)$ 对兔子,则有递推式:
$$
f(n)=f(n-1)+f(n-3)
$$
初始条件为 $f(1)=f(2)=1, f(3)=2$。用递推函数 m 表示为:
```python
def m(n):
if n == 1 or n == 2:
return 1
elif n == 3:
return 2
else:
return m(n-1) + m(n-3)
```
当 $n=40$ 时,兔子的对数为 $f(40)=331160281$。
2. 第二类推广的斐波那契数列
假设兔子死亡率为 $a$,则每对兔子在出生后平均可以生存 $\frac{1}{a}$ 个月,设第 $n$ 个月共有 $f(n)$ 对兔子,则有递推式:
$$
f(n)=f(n-1)+f(n-2)-f(n-\lfloor\frac{1}{a}\rfloor-1)
$$
其中 $\lfloor\frac{1}{a}\rfloor$ 表示向下取整。这个式子的意思是,第 $n$ 个月的兔子数量是上个月的兔子数量加上两个月前的兔子数量,但同时要减去 $\lfloor\frac{1}{a}\rfloor+1$ 个月前的兔子数量,因为那时候的兔子已经死亡了。
初始条件为 $f(1)=f(2)=1$。用递推函数 m 表示为:
```python
def m(n, a):
if n == 1 or n == 2:
return 1
else:
s = 0
for i in range(3, n+1):
s += m(i-1, a) + m(i-2, a) - m(i - int(1/a) - 1, a)
return s
```
当 $a=0.1$,$n=40$ 时,兔子的对数的数学期望为 $E[f(40)]=61.1673$ 对。
阅读全文