欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

04 Rabbits and Recurrence Relations

发布时间:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 04 Rabbits and Recurrence Relations 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Problem

A sequence is an ordered collection of objects (usually numbers), which are allowed to repeat. Sequences can be finite or infinite. Two examples are the finite sequence (π,2–√,0,π)(π,−2,0,π) and the infinite sequence of odd numbers (1,3,5,7,9,)(1,3,5,7,9,…). We use the notation anan to represent the nn-th term of a sequence.

A recurrence relation is a way of defining the terms of a sequence with respect to the values of previous terms. In the case of Fibonacci's rabbits from the introduction, any given month will contain the rabbits that were alive the previous month, plus any new offspring. A key observation is that the number of offspring in any month is equal to the number of rabbits that were alive two months prior. As a result, if FnFn represents the number of rabbit pairs alive after the nn-th month, then we obtain the Fibonacci sequence having terms FnFn that are defined by the recurrence relation Fn=Fn1+Fn2Fn=Fn−1+Fn−2 (with F1=F2=1F1=F2=1 to initiate the sequence). Although the sequence bears Fibonacci's name, it was known to Indian mathematicians over two millennia ago.

When finding the nn-th term of a sequence defined by a recurrence relation, we can simply use the recurrence relation to generate terms for progressively larger values of nn. This problem introduces us to the computational technique of dynamic programming, which successively builds up solutions by using the answers to smaller cases.

Given: Positive integers n40n≤40 and k5k≤5.

Return: The total number of rabbit pairs that will be present after nn months, if we begin with 1 pair and in each generation, every pair of reproduction-age rabbits produces a litter of kk rabbit pairs (instead of only 1 pair).

Sample Dataset

5 3

Sample Output

19

注: F1 = 1, F2 = 1, F3 = F2+F1*2,
这里k=3, 所以手写答案为 1,1,4,7,19
方法一:def fibonacciRabbits(n, k):F = [1, 1]generation = 2while generation <= n:F.append(F[generation - 1] + F[generation - 2] * k)generation += 1return (F[n-1])print fibonacciRabbits(5, 3)方法二:def fibonacciRabbits(n,k):if n <= 2:return (1)else:return (fibonacciRabbits(n-1,k) + fibonacciRabbits(n-2,k)*k) print fibonacciRabbits(5,3)

  





















转载于:https://www.cnblogs.com/think-and-do/p/7257691.html

总结

以上是生活随笔为你收集整理的04 Rabbits and Recurrence Relations的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。