《算法导论》第三章 3.1(参考答案)

3.1 渐进符号

3.1-1

假设 与 都是渐进非负函数。使用 记号的基本定义来证明 。


因为 与 都为渐进非负的函数,所以根据定义,有:

存在 、,使得:

  • 当 时,;

  • 当 时,。

所以,我们取 ;此时,当 时,同时有 。

下面我们取 ,根据 的渐进非负保证,当 时,有:

所以,得证!。


3.1-2

证明:对任意实常数 和 ,其中 ,有 。


为了证明 ,我们需要找到常量 ,使得:

对于所有的 ,有 。

其中:

故,若 。

易得,若 ,有下列公式:

​ ,即:

​ 。

故,取 ,即可证明 。


3.1-3

解释为什么“算法 A 的运行时间至少是 ”这一表述是无意义的。


设运行时间为 。则 代表:

对于任意的 。

也即 。

这只能说明 这一无需证明的结论而已。


3.1-4

成立吗? 成立吗?


  1. ,故:

    对于任意的 ,易得 。

    即 成立。

  2. 反证法:若 成立,则对 ,有 ;

    又因为此时 ,故有 ;

    即 。显然这与趋向无穷的 n 是相悖的,

    故 不成立。


3.1-5

证明定理 3.1。


  1. 充分性:已知 ,即存在 ,使得:

    ​ 。

    故 且 。

  2. 必要性:已知 ,则存在 ,使得:

    ​ ;

    且已知 ,则存在 ,使得:

    ​ 。

    故,取 ,有

    ​ 。

    于是可得:。


3.1-6

证明:一个算法的运行时间为 ,则当且仅当其最坏情况运行时间为 ,且其最好情况运行时间为 。


由定义易可证, 记号渐进地给出一个函数的上界及下界,且可分别由 和 符号来表示其上下界。相对的,该算法的最坏和最好情况的运行时间也代表了该算法运行时间的上下界。故得证。


3.1-7

证明: 为空集。


设 ,也就代表着 。则有:

很明显,不成立。


3.1-8

可以扩展我们的记号到有两个参数 和 的情形,其中的 和 可以按不同速率独立地趋于无穷。对于给定的函数 ,用 来表示以下函数集:

:存在正常量 和 ,使得对所有 或 ,有 。

对 和 给出相应的定义。


  1. :存在正常量 和 ,使得对所有 或 ,有 。
  2. :存在正常量 和 ,使得对所有 或 ,有 。

你可能感兴趣的:(《算法导论》第三章 3.1(参考答案))