算法导论 3-3

来源:互联网 发布:mysql数据库编程 编辑:程序博客网 时间:2024/04/25 16:31

问题

  1. 根据增长率来对下列函数排序;即找出函数的一种排列g1,g2,…,g30,使g2为g1 的渐近下界,g3为g2的渐近下界,…,以此类推。将该序列划分为等价类,使f(n)和g(n) 在同一个等价类中当且仅当g(n)是f(n)的渐近确界。
  2. 给出非负函数f(n)的一个例子,使对任何在1中gi(n),gi(n)既不是f(n)的渐近上界 也不是f(n)的渐近下界。

分析

  1. 通过第三章可知,从整体上讲,各类函数按增长性降序排列如下所示:

    其中a>1,b>0,c>0
    上述顺序是判断函数增长性的核心,对题目中的函数等价类划分就是按照上述顺序,然后 再对等价类中的函数的增长性按照上述顺序进行排序
    要特别注意lgn为指数和底的形式的增长性,一般先看看能否化简
    等价类函数
    • 注此函数大于任何n*以小于e为底的指数函数
    ,注:这两个函数相等注 根据3.18所以
    • ,注:这两个函数相等
    • ,
    • ,n注:两个函数相等
    • ,
    c
    • ,1
  2. 这个函数要求同时满足有时比所有函数增长都快和有时比所有函数增长都慢(甚至是 表中的常数函数),显然此函数需要是一个振幅不断增大的波函数或分段函数。
    满足比常数增长还小,自然想到是0或 负数,题目要求非负那么自然是0;满足比表中的所有函数增长都快,需要选择比 增长更 快的函数,将之乘以一个周期性函数,自然想到正弦函数,就可以满足要求。因此,下面 这个函数可以满足要求:
原创粉丝点击