algorithm - Q: 代入的递归关系
问题描述
我有递归关系:T(n) = c*T (n/3) + (c/2)*n
对于任何 c
让 T(n) >= n^1.5 作为替代方法的猜测。
解决方案
假设T(n) <= n^1.5
是正确的道路。有了它,我们可以拥有:
T(n) <= 6 ( n^1.5 / 3^1.5 ) + 3n
= (6 / 3^1.5)* n^1.5 + 3n
。
6/3^1.5
是 5.1 ......但现在让我们称之为a
。所以我们有:a*n^1.5 + 3n
。
我们需要证明对于 n0>n 存在 c > 0 c*n^1.5 > a*n^1.5 + 3n
。首先让我们除以n:c*n^0.5 > a*n^0.5 + 3
哪个产量:(c-a)*n^0.5 > 3
。
从这里很明显你可以选择任何一个c > a
, n > 9
所以这将是真的。
总结一下:我们变得T(n)
更大并T'(n) = (6/3^1.5)*n^1.5 + 3n
证明了c > 6/3^1.5
n > 9
T(n) < cg(n) where g(n) = n^1.5
推荐阅读
- java - 在 Java 程序中出现“找不到符号”错误
- javascript - 仅当屏幕宽度小于 600px 时,使 div 从底部消失 850px
- asp.net-core - 不同版本的 Hangfire 设置 (.NET Core 3.1)
- java - 在java中插入地图时投射元素
- php - PHP 警告:array_combine() 和 array_merge() 生成警告
- c++ - 为什么我的巴特沃斯滤波器在 VST3 中会产生噪音?
- html - 我编写了相同的 html 代码来显示 2 条水平线,但我得到了 2 条不同厚度的水平线
- javascript - 基于对象值道具的切片
- python - 如何使用 OpenCV 创建图像的二进制掩码?
- c - C ( (int*) (char*)) 中的铸造问题