• 具体数学


    递归问题

    河内塔

    递归式

    [f_n = 2 f_{n - 1} + 1 ]

    封闭形式

    [f_n = 2^n - 1 ]

    • 证明

    (f_1 = 1) 成立,考虑 (f_{n - 1}) 成立 (f_n = 2 (2^{n - 1} - 1) + 1 = 2^n - 1)

    平面上的直线

    (n) 个直线最多划分出多少部分

    递归式

    考虑新加入一条直线,如果和前面的直线有交点,则会新分一个平面,只需要让新加入的直线不和任何一条已有直线平行即可

    [f_n = f_{n - 1} + n ]

    封闭形式

    考虑从 (f_0) 一直加到 (f_n)

    [f_n = f_0 + 1 + 2 + ... + n = 1 + frac {(1 + n) n} 2 ]

    考虑用数学归纳法证明

    [f_n = f_{n - 1} + n = 1 + n + frac{n ^ 2 - n} 2 = 1 + frac{n ^ 2 + n} 2 ]

    约瑟夫问题

    一个 (1)(n) 环,每隔一个数删去一个(删除从第二个数开始删),最后剩下哪个数?

    递归式

    首先考虑 (2n) 是偶数,发现删除一圈后,所有偶数都被删除了 ((2,4,6,...,2n))

    剩下的每个数可以看做一个 (n) 的环,每个数乘 2 减 1

    那么我们知道了

    [f_{2n} = 2f_n - 1 ]

    再考虑 (2n + 1) 是奇数,相当于转了一圈后,把 1 也删除了

    剩下的每个数可以看做一个 (n) 的环,每个数乘 2 加 1

    [f_{2n + 1} = 2f_n + 1 ]

    封闭形式

    找到 (n) 的最高次幂 (2^m)

    可以发现所有最高次幂是 (2^m) 的结果都是从最高次幂为 (2^{m - 1}) 的情况下得到的

    经过寻找规律可得

    [f_n = 2 (n - 2^{m}) + 1 ]

    这个式子用数学归纳法可以证明

    推论

    如果一个函数长的和约瑟夫问题很像,或者说有另外的递推式,我们应该怎样寻找它的封闭形式呢?

    对于一个函数,我们可以加入独立参数来描绘它,比如,(f_1 = a, f_{2n} = 2f_n + b_0, f_{2n + 1} = 2f_n + b1)

    对于一些特殊情景(如 (f_2 = 2f_1 + b_0))我们可以直接解出它的特殊参数

    总结

    通过上面的例子可以发现,在求解一个封闭形式时,一般要先讨论边界和小数情况,进行合理推理和猜想,最后证明式子

    对于一般的递归式,可以设置独立参数来辅助求解

  • 相关阅读:
    浅谈IIS处理Asp.net请求和 Asp.net页面生命周期
    Windows Phone 7与Android和iPhone的比较
    ExtJs开发需要引用的Js库文件
    Windows phone开发(1)一些基本概念
    synthesize
    Objective C 基础教程
    Objective C基础教程笔记
    ObjectiveC语法与Cocoa框架
    Handing basic Interactio IOS notes
    Learning ObjectiveC and Xcode
  • 原文地址:https://www.cnblogs.com/XiaoVsun/p/13063560.html
Copyright © 2020-2023  润新知