簡體   English   中英

從段落中導出遞歸關系

[英]Deriving recurrence relations from a paragraph

我最近重新開始學習離散數學。 我在大學里上了一門課程,遇到了麻煩,尤其是從單詞問題中得出遞歸關系時,我很難再掌握一遍了。 我很樂意為您提供一些技巧。

例如 (我從家庭作業問題中更改了數字,所以如果這不起作用,請告訴我):如果讓讓將大小為n的輸入划分為三個子集,每個子​​集的大小為n / 5,並將它們組合成theta(n )時間,什么是運行時間? 我得到了3T(n / 5)+ theta(n)作為遞歸關系,但我不知道運行時是什么,我覺得它們都不正確。

我發現此站點( https://users.cs.duke.edu/~ola/ap/recurrence.html )有助於將遞歸關系分解為可靠的運行時,但是我仍然不知道如何獲得首先是來自問題一詞的遞歸關系。 謝謝!

可以將問題視為樹形結構,每個級別上都有節點。每個節點將包含一個數量,該大小與您在特定時間要處理的問題的大小有關,並且在每個級別上都有一些節點。 這個數字可能是1,2,........在每個級別上最多n個節點。

現在從頂層開始。 您將有1個節點,其中的值為'n'(因為在開始時,我們將要處理'n'個元素)。

現在下降到第二級。 在上面的問題中,說在任何時間點將問題(元素)分為三部分,因此級別2上的節點數將為3。每個節點中的值為'n / 5'(因為問題是說每個節點的大小子集是父節點上存在的元素數除以5)。樹看起來像:-

         (n)
     |     |     |
    (n/5)(n/5) (n/5)

現在進一步下降到第三層,樹看起來像

                             (n)                                 level(1)
           |                  |                 |
        (n/5)               (n/5)             (n/5)              level(2)
      |   |   |          |    |    |      |     |     |
  (n/25)(n/25)(n/25) (n/25)(n/25)(n/25) (n/25)(n/25)(n/25)       level(3)

您將繼續進行到最后一個僅包含1個元素的級別,並且節點總數為'n'。

因此,如果您需要編寫遞歸,請參閱級別1和級別2。

Time taken to solve problem with 'n1' element is written as T(n1).
Time taken to solve problem with 'n2' element is written as T(n2).

Now number of elements in level 1 is n1=n

(Time taken to solve problem on first level)=(Time taken to solve 1st 
node of level 2)+(Time taken to solve 2nd node of level 2)+(Time taken 
to solve last node of level 2) + (It also takes time to combine these 
three nodes given in question i.e.  theta(number of total elements(n))

T(n)=T(n/5)+T(n/5)+T(n/5)+theta(n)
=>T(n)=3T(n/5)+theta(n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM