做一個任務,並被困在了幾個問題。爲什麼主定理不能適用
- 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
這是一個任務,是的。但我確實嘗試了嘗試,所以我說我相信這個定理不起作用。我來指導和理解,而不是被嘲笑。 –