做一个任务,并被困在了几个问题。为什么主定理不能适用
- T(N)= T(2π/ 5)+ N
- T(N)= T(2π/ 3)+ T(N/3)+ N
- T(N)= T(n-2)+ n
有些东西告诉我他们所有的定理都不能应用。但为什么?他们的上限是什么(大哦)?
做一个任务,并被困在了几个问题。为什么主定理不能适用
有些东西告诉我他们所有的定理都不能应用。但为什么?他们的上限是什么(大哦)?
硕士定理可以应用到以下形式的任何复发
T(n)=在(N/B)+ O(N d)
其中a, b和d是常数。 (还有一些其他的表达方式,但是上面的一个处理更常见的情况)。具体而言,这意味着
这些标准排除了第二次重复(次级问题没有相同的大小),第三次(问题大小必须缩小一个常数因子)。然而,第一次复发符合所有这四个标准。它可能有助于重写为
T(n)= T(n /(5/2))+ n。
在此基础上,你在什么情况下掌握了主定理,重复解决了什么问题?
对于(2)的问题,我看到它不起作用,因为有2个T,他们都有尊敬的2/3和1/3。我不知道该从哪里出发 –
只有在所有子问题具有相同的大小时,主定理才适用,因此只要您看到具有多个子问题大小的事物,就可以排除应用主定理,尽管您可以解决以其他方式重现。 – templatetypedef
主方法仅适用于以下类型的重复发生。
T(n) = aT(n/b) + f(n) where a >= 1 and b > 1
对于问题,
1. T(N)= T(2π/ 5)+ N
@templatetypedef已修改此递推方程,以适应主定理如
T(n) = T(n/(5/2)) + n
我想你可以从这里解决它。
2. T(N)= T(2π/ 3)+ T(N/3)+ N
显然,这不能直接由主定理解决。我们应该尝试构建递归树并查看。递归树形图的递归调用树和工作在每次调用完成的工作量。 以下是从here
所以拍摄的图像,这减少至O(N * log n)的
3. T(N)= T(N-2)+ N
显然这不能直接由主定理解决。 有一个为减法和征服类型派生的修改公式。
这个link可能是有用的。
对于形式的复发,
T(n) = aT(n-b) + f(n)
where n > 1, a>0, b>0
如果F(N)是O(n ķ)和k> = 0,则
我想你可以从这里解决。
希望它有帮助!
我投票结束这个问题作为题外话题,因为它的任务没有尝试和倾倒在这里。 – nullpointer
忘记所有的大师定理和数学的东西,对于第三个,你可以通过常识或者通过替换的方法来解决它,你发现的答案是有意义的,因为子问题几乎不会被减少 – shole
这是一个任务,是的。但我确实尝试了尝试,所以我说我相信这个定理不起作用。我来指导和理解,而不是被嘲笑。 –