簡體   English   中英

主定理案例2-常數k

[英]Master Theorem case 2 - Constant k

我正在研究Master定理的一個中期項目,並且遇到了一個案例2,其中k>0。我了解該定理的所有內容,除了常數及其遞增或計算方式。

情況2表示:當n log b a = f(n)時,T(n)=Θ(n log b a log k + 1 n),但k來自何處?

有問題的示例:

矩陣乘法

cilk void Mult(*C, *A, *B, n) {
    float *T = Cilk_alloca(n*n*sizeof(float));
    spawn Mult(C11,A11,B11,n/2);
    spawn Mult(C12,A11,B12,n/2);
    spawn Mult(C22,A21,B12,n/2);
    spawn Mult(C21,A21,B11,n/2);
    spawn Mult(T11,A12,B21,n/2);
    spawn Mult(T12,A12,B22,n/2);
    spawn Mult(T22,A22,B22,n/2);
    spawn Mult(T21,A22,B21,n/2);
    sync;
    spawn Add(C,T,n);
    sync; 
    return;
}

cilk void Add(*C, *T, n) {
  h base case & partition matrices i
  spawn Add(C11,T11,n/2);
  spawn Add(C12,T12,n/2);
  spawn Add(C21,T21,n/2);
  spawn Add(C22,T22,n/2);
  sync;
  return;
}

發現加法的范圍是:Θ(log n)

在計算乘法范圍時,示例說明:

M1(n)= M1(n / 2)+ A1(n)+Θ(1)

A1(n)實際上就是Θ(log n):M1(n)= M1(n / 2)+Θ(log n)

n log b a = n log 2 1 = 1-> f(n)=Θ(n log b a log 1 n)

因此,跨度最終為:Θ(log 2 n)。

我想知道的是為什么在此示例中k = 1?

您需要找到這樣的參數k ,使得表達式Θ(n log b a log k n)將成為Θ(log n) 在這種情況下, k=1將滿足要求。 您需要進行匹配才能獲得所需的表達式形式。 更具體地,它類似於求解方程log k n = log nk

暫無
暫無

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

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