zoukankan      html  css  js  c++  java
  • 具体数学 第一章 递归问题

    1.河内塔问题

    • 数学归纳法:①对最小规模时成立;②设对(n=[1,k])时成立,证明对于(n=k+1)时也成立。于是问题对任意规模都成立。

    它可以与递归的模型天然地结合在一起。

    实际问题->递归式->数学归纳法->通项公式

    • 通过处理递归式的某些项会使得数学归纳更加简单。

    2.平面上的直线

    • 展开递归式是求通项公式的好方法。

    • 对于不易直接分析的实例,可以讨论“损失”了多少。

    3.JOJO问题

    • 对于一个递归式,把它的部分常量替换为未知数,希望求出它的通项公式中每个未知数的系数。

    此时可以把每个未知数取一些特殊值,代入递归式中。

    更加通用的方法是找一些简单的函数,令它满足递归式,借此列出方程,解出未知数的值。通过这种方式寻找未知数系数之间的联系,从而列出关于未知数系数的方程。

    注意到有多少独立的未知数,我们就需要列出多少组方程。

    同时,解除递归式中一些既定的限制(进制等),可以将递归式推广到更为一般的情况。

    4.热身题

    1. 问题出在“类似的”,数学归纳法只能假设([1,k])内的马是相同颜色,如果要推广到([2,k+1])的情况,则需要证明(k+1)号马与前面颜色均相同。

    2. 发现对规模为(k)的问题,流程如下:①将([1,k-1])移动到(B)柱;②将(k)移动到中间柱;③将[1,k-1]移动到(A)柱;④将(k)移动到(B)柱;⑤将([1,k-1])移动到(B)柱。

    (T_n)为将规模为(n)的问题解决所需的最小步数,由此获得递归式:

    [T_1=2 ]

    [T_n=6T_{n-1}+2,ngeq 2 ]

    (G_n=T_n+frac{2}{5}),则(G_1=frac{12}{5},G_n=6(T_{n-1}+frac{2}{5})=6G_{n-1}=frac{2}{5}6^n)

    (T_n=frac{2}{5}(6^n-1))

    证明:(T_n)一定是整数,即(5|(6^n-1))

    对于(n=1)的情况,显然成立。

    假设对于([1,n-1])均成立。(6^n-1=6 imes6^{n-1}-1=(6-1) imes 6^{n-1}+6^ {n-1}-1),由于对于(n-1)时成立,此处也成立。

    1. 显然(A,B)柱上会有此类正确摆放,只需考虑中间柱。发现在③过程时,(n)必然在中间柱,而([1,n-1])(B)(A),必然整体经过中间柱。

    2. (T_n)为原规则下的最小步数,(G_n)是将(n)个始末位置不确定的圆盘排好的最小步数。问题转化为对于任意始末位置,证明(G_nleq T_n)

    对于(n=1)的情况,若始末位置在同一根石柱,则(G_1=0<T_1),否则(G_1=T-1),结论成立。

    假设对于([1,n-1])均成立。对于第(n)个圆盘,设始位置为(x),末位置为(y),中间位置为(z)。若(x=y),则(G_n=G_{n-1}leq T_{n-1}<T_n)。否则,需要执行如下操作:①([1,n-1])移动到(z),设此操作花费(G_{n-1,0});②将(n)移动到(y);③将([1,n-1])移动到对应末位置,设此操作花费(G_{n-1,1})。此时(G_n=G_{n-1,0}+G_{n-1,1}+1leq 2T_{n-1}+1=T_n)

    由数学归纳法得证。

  • 相关阅读:
    《Windows核心编程系列》十四谈谈默认堆和自定义堆
    《windows核心编程系列》十五谈谈windows线程栈
    《Windows核心编程系列》十三谈谈在应用程序中使用虚拟内存
    《Windows核心编程系列》十二谈谈Windows内存体系结构
    《Windows核心编程系列》十一谈谈Windows线程池
    Extjs利用vtype验证表单
    Extjs文本输入框
    Extjs文本输入域
    远程数据源Combobox
    Extjs整体加载树节点
  • 原文地址:https://www.cnblogs.com/suwakow/p/11375079.html
Copyright © 2011-2022 走看看