代码改变世界

证明 logX < X 对所有 X > 0 成立

2014-11-30 23:38  星星之火✨&#128293;  阅读(5478)  评论(3编辑  收藏  举报

题目取自:《数据结构与算法分析:C语言描述_原书第二版》——Mark Allen Weiss      

练习1.5(a)  证明下列公式: logX < X 对所有 X > 0 成立。(注意:计算机科学中,若无特别说明,所有对数都是以2为底的)

  这个小题,看似简单。乍一看一高中证明题而已嘛。实则不然,我根据高中时常用的思路解了一下:

      设 f(X) = X - logX,其中X>0。  

      易知 f(0) = 0 + ∞ > 0,f(X)′ = 1 - 1/(Xln2),令f(X)′ = 0,解得X = 1/ln2。

      于是当 0< X < 1/ln2时,f(X)′ < 0,函数单调递减。

        X > 1/ln2时,f(x)' > 0,函数单调递增。

所以f(1/ln2)为函数的极小值点。到这里我们只需要求出 f(1/ln2) = 1/ln2 - log(1/ln2) > 0 问题就得证了。结果的确大于零,不过计算结果只得求助于计算器(对减数进行放大也行不通)。对于求助于计算器的问题多少让人感觉不爽。到这里才想到,高中应该做的是lnX < X,问题一下就得到了可靠的答案(这里可靠的意思:不用借助计算器)。

我带着这个多少让人不爽的问题到网上搜了一圈,也没有多大的收获,很多还是错误的。不得已网搜了一下题解,发现本书竟然有作者提供的答案,于是果断搬了过来:)

不多说了,赶紧随我来膜拜一下Weiss吧:

证明采用数学归纳法。

  0 < X ≤ 1 时,logX < X 显然成立。因为X = 1时,log1 = 0 < 1。X < 1时,logX为负数,明显小于X。

  同样显然的情况是1 < X ≤ 2 时。因为log2 = 1 < 2,且X < 2 时logX < 1。

准备好了,最精彩的部分来了:

  归纳基础:1< X ≤ 2 时命题成立,由上可知。

  归纳假设:假设命题对任意正整数p(p≥1),p < X ≤ 2p 时命题成立,求证对于任意的正整数p,2p < Y < 4p命题成立。

  证明:logY = log(2·Y/2) = log2 + log(Y/2) < 1 + Y/2 < (Y/2 + Y/2 = Y)。

     即logY < Y成立。

  数学归纳法的步骤是完美的,因此命题logX < X,X > 0成立。

 

PS:由于答案是英文的,这里对语序做了下调整,且对不易理解的部分做了补充。