zoukankan      html  css  js  c++  java
  • 一个小证明

    函数 $f colon mathbb{Z_{>0}} o mathbb{R}$ 满足
    $f(1) = 0$,
    $f(n) = f(n/2) + 1$,$n$ 是偶数;
    $f(n) = f((n + 1) / 2) + 1$,$n$ 是奇数。

    试证明 $f(n) = lceil log_2 n ceil$。

    证明:对 $n$ 用归纳法。以下 $n > 1$。
    若 $n$ 是偶数,则 $f(n) = f(n /2) + 1 = lceil log_2 n / 2 ceil + 1 = lceil (log_2 n / 2) + 1 ceil = lceil log_2 n ceil$。 若 $n$ 是奇数,则 $f(n) = f((n + 1) / 2) + 1 = lceil log_2 (n + 1) / 2 ceil + 1 = lceil (log_2 (n + 1) / 2) + 1 ceil = lceil log_2 (n + 1) ceil$ 。我们要证明 $lceil log_2 (n + 1) ceil = lceil log_2 n ceil$。由 $n$ 是奇数且 $n > 1$ 知 $log_2 n$ 不是整数,故有 $ log_2 n < lceil log_2 n ceil$。若 $lceil log_2 n ceil < log_2 (n + 1)$,则有 $ n < 2^{ lceil log_2 n ceil} < n + 1 $。这与 $ 2^{ lceil log_2 n ceil}$ 是整数相矛盾,所以必有 $log_2 (n + 1) le lceil log_2 n ceil$,从而有 $lceillog_2 (n + 1) ceil le lceil log_2 n ceil$,也就是 $lceillog_2 (n + 1) ceil = lceil log_2 n ceil$。

    也可以从 $n$ 的二进制表示入手证明,不过不容易说清楚。

  • 相关阅读:
    用C语言编写生成小学四则运算程序
    每周学习报告
    读现代软件工程有感和自我介绍
    第七天
    第五天
    第六天
    作业九:课程总结
    作业四:结对编程项目--四则运算
    psp记录个人项目花费时间
    作业三:代码规范,代码复查
  • 原文地址:https://www.cnblogs.com/Patt/p/14577227.html
Copyright © 2011-2022 走看看