通过以下算法求出递推关系方程

时间:2012-03-03 16:26:20

标签: algorithm recursion

据估计,特定社交网站每月的用户数量如下。

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

这意味着每月会因为广告而增加100个新用户,并且由于用户邀请社交网络用户,每月会增加20%的用户。同样在第一个月没有用户。

无论如何,如果我们将数字插入到这个递归中,我们将得到:

F(0)=0
F(1)=F(0)*1.2 + 100*1=100
F(2)=F(1)*1.2 + 100*2=320
F(3)=F(2)*1.2 + 100*3=684
F(4)=F(3)*1.2 + 100*4=1220.8
F(5)=F(4)*1.2 + 100*5=1964.96
....

无论如何,我已经回答了这个问题的第一部分。现在我陷入了解决这种递归关系的困境。我需要找到一个能解决递归关系的方程式。换句话说,如果我在哪里传递数字2那么它将输出320例如而不必调用自身。

答案实际上是: enter image description here

我不明白如何解决这个问题。我从HERE得到了答案。我想了解如何解决它,而不仅仅是解决方案。

4 个答案:

答案 0 :(得分:2)

数学观点

而不是1.2我将使用a而不是100我会使用b(a> 1,b!= 0):

F(n) = aF(n-1) + bn ==>
F(n) = a (aF(n-2) + bn) + bn 
     = a^2 F(n-2) + ab(n-1)+bn 
     = a^3F(n-2) + a^2 * b * (n-2)+a*b*(n-1)+b*n=...
     = a^n F(0) + a^(n-1) * b * (n-(n-1)) + .... + bn
     = 0 + a^(n-1)* nb + a^(n-2)* (n-1)b + ... + a^0 *1*b -
           [a^(n-1)* (n-1)b + a^(n-2) * (n-2)b + ... + 0)

如果我们写:

A = a^(n-1)* nb + a^(n-2)* (n-1)b + ... + a^0 *1*b
B = a^(n-1)* (n-1)b + a^(n-2) * (n-2)b + ... 

您需要找到A-B

然后

A = b (a^n + a^n-1 + a^n-2 + ....)'
B = b/a * (a^(n-1)+....)' - a

如果我们让C = a^n + a^n-1 + a^n-2 + ....我们知道C = (a^(n+1) - a)/(a - 1)并且您只能计算C',那么您最终可以计算A和B及其差异A - B

算法和实际工作视图

但如果我想在算法的背景下谈谈,我关心O和Θ和Ω,......不关心确切的运行时间。

所以,当我看到你的算法我说它是Θ(一个 n )而没有任何计算,因为如果你用1替换bn,它不会影响你的Θ符号,因为你的函数指数增长所以删除一些常量或多项式函数(不将它们转换为零)不会改变指数运行时间,它只是从最终结果中删除一些多项式函数。所以在这种情况下我从不尝试过坚实的数学。我将使用扎实的数学来撰写学术论文或考试,而不是现实生活中。

答案 1 :(得分:0)

F(N)= A * F(N-1)+ B * N

我们这里看起来像一个带线性加法的指数。

我们的想法是找到C和D,它们使下面的等式成为现实:

F(N)+ C * N + d = A *(F(N-1)+ C *(N-1)+ d)

然后我们可以引入另一个函数:G(n)= F(n)+ C * n + D

G(N)= A * G(N-1)

G(n)= E * A ^ n(E可以从起始条件中找到)

F(N)= A ^ n的-C * N-d

现在让我们找到C和D:

B * N = A * C *(N-1)+ A * d-C *正d =(A * C-C)* N + A * d-d-A * C

B = C *(A-1) - 这将给我们C

0 = A * D-D-A * C - 这将给我们D(提供C已知)

答案 2 :(得分:0)

f(n)=af(n-1)+bn =a[af(n-2)+b(n-1)+b(n-1)]=a^2f(n-2)+(a+1)b(n-1) -ab
总的来说     f(n)= a ^ n * x + n * y + z

现在     F(1)= A * X + Y + Z = 1     f(2)=(a ^ 2)* x + 2y + z =     F(3)= ...

我们可以通过这个线性系统得到x,y,z

答案 3 :(得分:-1)

我希望我能提出我之前发布的解决方案。这就是我已经解决的问题,我想,因为我得到了一个方程式(非递归),这可能是一个正确的解决方案。

enter image description here