• 更换变元法求递推式


    即高中经常用的换元法。

    直接看两个例子吧!

    例子一

    考虑递推式

    $$f(n) = egin{cases}
    1 &  n=2 \
    1 &  n = 4 \
    f(n/2)+f(n/4) & n>4
    end{cases}$$

    解:

    这里假设 $n$ 是2的幂,令 $t = log n, g(k) = f(2^k)$

    那么

    $$g(k) = egin{cases}
    1 &  n=2 \
    1 &  n = 4 \
    g(k-1)+g(k-2) & n>4
    end{cases}$$

    根据Fibonacci的递推式,$g(k) = phi ^k,  phi = frac{1+sqrt5}{2}$

    所以 $f(n) = g(log n) = phi^{log n} = n^{log phi } = Theta(n^{0.69})$.

    例子二

    考虑递推式

    $$f(n) = egin{cases}
    d & n=2 \
    2f(sqrt n) + b log n& n>2
    end{cases}$$

    解:

    设 $n = 2^{2^k}$,则 $k = loglogn, g(k) = f(2^{2^k})$.

    $f(n)$ 可重写成

    $$g(k))egin{cases}
    d & k=0 \
    2g(k-1)+b2^k & k>0
    end{cases}$$

    易求 $g(k) = d2^k + bk2^k$

    因此 $f(n) = g(loglogk) = d* logn + b* logn* loglogn$.

  • 相关阅读:
    工具类-vim在shell中卡死的情况
    tomcat日志分类
    逻辑运算
    牛客练习赛29 F 算式子
    牛客练习赛29 B
    查询
    hdu 5984
    zoj 4057
    zoj 4056
    zoj 4054
  • 原文地址:https://www.cnblogs.com/lfri/p/11632420.html
Copyright © 2020-2023  润新知