主定理案例2 - 常数k

问题描述 投票:0回答:1

我正在研究硕士定理的期中考试,我遇到了一个案例2的例子,其中k> 0.我理解了定理的一切,除了常数以及它如何递增或计算。

Case 2陈述:当nlogba = f(n)时,T(n)=Θ(nlogba logk + 1n)但是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 loading = n log21 = 1 - > f(n)=Θ(log1 n密码)

因此跨度最终为:Θ(log2 n)。

我想知道为什么在这个例子中k = 1?

algorithm computer-science master-theorem
1个回答
3
投票

你需要找到这样的参数k,以便表达式Θ(nlogbalogkn)将是Θ(log n)。在这种情况下,k=1将满足要求。这是您需要做的匹配,以获得表达式的所需形式。更具体地说,它类似于为logkn = log n求解方程k

© www.soinside.com 2019 - 2024. All rights reserved.