很多人都听说过斐波那契数列, 也知道它的规律, 但有些人很可能不知其所以然, 以下是我的分析:
1.假设第n 月有a1对兔子, 其中能生育的为b1.
2.那么第n + 1 月就有a2 = a1(上个月的总数) + b1(新生出来的个数)对.
3.第n + 2 月时, 第n月的兔子都能生了, 因此此时兔子的总对数
a3 = (a1 + b1)(这是上个月的基数) + a1(第n 月存在的兔子都生了一对) = a2 + a1.
4.由以上可得, 第(n + 2)月的数目等于前两个月的数目之和 即F(n + 2) = F(n) + F(n + 1).
size_t Fibonacci (size_t n)
{
if (n < 3)return 2;
else {
size_t f1 = 1, f2 = 1;
for (size_t i = 0; i < n - 2; ++i) {
size_t f = f1 + f2;
f1 = f2;
f2 = f;
}
return f2 * 2;
}
}