据估计,特定社交网站每月的用户数量如下。
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例如而不必调用自身。
答案实际上是:
我不明白如何解决这个问题。我从HERE得到了答案。我想了解如何解决它,而不仅仅是解决方案。
答案 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)
我希望我能提出我之前发布的解决方案。这就是我已经解决的问题,我想,因为我得到了一个方程式(非递归),这可能是一个正确的解决方案。