为以下方案创建重复关系

时间:2012-03-02 20:37:00

标签: algorithm recursion

我有这个家庭作业问题:

假设数据库表在n = 0时有0条记录。假设在时间n,将100n个新记录填充到该表中。记录数每分钟增加20%。编写一个递归关系和一个初始条件,用于定义数据库表中的记录数。如果数据库表中的每条记录包含50KB,那么表的大小是否大于1GB?


所以从阅读我知道的问题:

F(0)= 0时刻0有0条记录

让我了解这个问题的部分是"Suppose that at time n, 100n new records are populated"

那将意味着:

F(1)= 100

F(2)= 200

F(3)= 300

如果问题会说在第一分钟创建了100条新记录,那么我将知道在下一分钟将创建120项,然后144等。我相信我的导师错误地提出了问题。


编辑:

实际问题不涉及数据库记录我修改它以使其更适合在这里询问它。这项功课让我感到非常满意。我认为其中一个原因是因为老师输入了他自己的问题,而且他没有正确解释他的意思。这是实际问题:

  

假设门罗县的鹿群在时间n = 0时为0。   假设在时间n,100n鹿被引入梦露县   并且人口每年增加20%。写一个   递归关系和定义鹿的初始条件   在时间n的人口,然后解决复发关系。 (10   点)。

这是我到目前为止的答案:

问题说:假设在时间n,100n鹿被引入梦露。换句话说,第一年带来了100头鹿,第二年带来了200头鹿,第三年带来了300头等等。这可以用递归关系来解释:T(n)=T(n-1)+100

问题还说人口每年增加20%。这可以通过以下递归关系来解释:T(n)=T(n-1)*120%

现在我们必须结合递归关系才能获得:

T(n)=T(n-1)*120%+100          where T(0)=0

我不知道这是不对的。我知道递归算法的基础知识,但我认为可以用不同的方式提出问题,以便更容易理解人口的确切增长。

1 个答案:

答案 0 :(得分:2)

我认为情况是这样的:在第n分钟,增加了100n个新记录,并且存储到第(n-1)分钟的记录增加了20%。

所以,复发应该是:

F(0) = 0  <-- initial condition
F(n) = 1.2 * F(n - 1) + 100 * n where n > 0

解释了几个步骤:

 n  F(n)  Size(KB)
-- -----  --------
 0     0       0
 1   100    5000
 2   320   16000
 3   684   34200
 4  1220   61000
 5  1964   98200