• 「具体数学」一:递归问题


    汉诺塔

    (T_n)(n)个圆盘的方案数,显然(T_0=0,T_1=1)

    构造一种方案:将(n-1)个圆盘移动到第二根柱子上,将最大的圆盘移动到第三根柱子,再将(n-1)个圆盘移动过去

    那么按照此方案至少有

    [T_n≤2T_{n-1}+1,n>0 ]

    且易证最优

    [T_n≥2T_{n-1}+1,n>0 ]

    所以

    [T_0=0,T_n=2T_{n-1}+1,n>0 ]

    (n)很大时递归式不好算,考虑一个封闭形式

    观察好像有

    [T_n=2^n-1 ]

    至少(T_1=2^1-1)

    那么当(T_{n-1}=2^{n-1}-1)时,有(T_n=2T_{n-1}+1=2^n-1),根据归纳得(T_n=2^n-1)

    有时我们观察不到(T_n=2^n-1)

    也许更容易发现(U_n=T_n+1=2^n)

    平面上的直线

    求平面上(n)条直线所界定的区域的最大个数(L_n)

    显然(L_0=1,L_1=2,L_2=4)

    那么似乎有(L_n=2^n)

    然后有(L_3=7),What a pity

    (n)条直线使得区域增加(k)个,当且仅当对(k)个已有区域进行分割,即与已有直线有(k-1)个交点,此前仅有(n-1)条直线

    [L_n≤L_{n-1}+n,n>0 ]

    易证等号可取(第(n)条与此前所有直线有交点可取)

    [L_0=1,L_n=L_{n-1}+n,n>0 ]

    展开(L_n)

    [L_n=L_0+1+2+3+…+n ]

    [L_n=1+S_n ]

    [S_n=1+2+3+…+n ]

    (S_n)又称三角形数,是一个有(n)行的三角形阵列中保龄球的个数

    高斯九岁得出了计算(S_n)的办法

    [S_n=1+2+3+…+n ]

    [S_n=n+(n-1)+(n-2)+…+1 ]

    [2S_n=(n+1)+(n+1)+…+(n+1)=n*(n+1) ]

    [S_n=frac{n*(n+1)}{2} ]

    由此得出

    [L_n=1+frac{n*(n+1)}{2},n≥0 ]

    归纳也可得

    [L_n=L_{n-1}+n=(frac{(n-1)*n}{2}+1)+n=1+frac{n*(n+1)}{2} ]

    问题变形:用折线代替直线,每个折线包含一个尖,求(n)条折线能界定的区域最大个数(Z_n)

    先列小数据:(Z_0=1,Z_1=2,Z_2=7)

    观察发现(根本没法发现x):一个折线相当于两条相交直线去掉一半(去掉蓝色一半)

    等价于:每条折线我们失去了两条直线界定空间中的两个,也就是

    [Z_n=L_{2n}-2n ]

    [Z_n=2n^2-n+1,n≥0 ]

    约瑟夫问题

    (n)个人围成一个圆圈,隔一个杀一个,直到只有一人存活,求存活的人的编号

    (n=10)时,杀死的顺序是(2、4、6、8、10、3、7、1、9)

    于是得到(J(10)=5)

    猜测(J(n)=frac{n}{2})

    然后试了几次就(GG)

    假设有(2n)个人,经过第一轮只剩下奇数编号的人,那么(3)号就成为下一个要离开的人

    也就是除了每个人的号码加倍再减一,其他规则同(n)个人一致

    那么(J(2n)=2J(n)-1)

    由此(J(20)=2*J(10)-1,n≥1)

    同理(J(2n+1)=2J(n)+1)

    结合得到递推式

    [J(1)=1 ]

    [J(2n)=2J(n)-1,n≥1 ]

    [J(2n+1)=2J(n)+1,n≥1 ]

    指数级的递推式更快捷

    打表

    [J(1)=1 ]

    [J(2)=1,J(3)=3 ]

    [J(4)=1,J(5)=3,J(6)=5,J(7)=7 ]

    [J(8)=1,J(9)=3,J(10)=5,J(11)=7,J(12)=9,J(13)=11,J(14)=13,J(15)=15 ]

    [J(16)=1 ]

    似乎可以按(2)的幂分组,并且每组开始(J(n)=1)

    [J(2^m+l)=2l+1,m≥0,0≤l<2^m ]

    (m)归纳

    [J(1)=1,J(2^m+l)=2J(2^{m-1}+frac{l}{2})-1=2(frac{l}{2}+1)-1=2l+1 ]

    观察前式可知

    [J(2n+1)-J(2n)=2 ]

    拓展:

    假设(n)的二进制展开式是

    [n=(b_mb_{m-1}…b_1b_0)_2 ]

    等价于

    [n=b_m*2^m+b_{m-1}*2^{m-1}+…+b_1*2+b_0 ]

    其中(b_i=0)(1),而首位(b_m=1)

    那么依次有

    [n=(1b_{m-1}…b_1b_0)_2 ]

    [l=(0b_{m-1}…b_1b_0)_2 ]

    [2l=(b_{m-1}…b_1b_00)_2 ]

    [2l+1=(b_{m-1}…b_1b_01)_2 ]

    [J(n)=2l+1,J(n)=(b_{m-1}…b_1b_0b_m)_2 ]

    最后得到了

    [J((b_mb_{m-1}…b_1b_0)_2)=(b_{m-1}…b_1b_0b_m)_2 ]

    (n)向左循环一位就得到了(J(n))

    如果一直用二进制表示也许很快就能发现

    根据循环可以期待进行(m+1)次迭代再次得到(n)

    但事实上例如(J((1101)_2)=(1011)_2),再迭代一次(J((1011)_2)=(111)_2),当(0)为首位时会消失

    实际上(J(n))必然(≤n),于是如果(J(n)<n)就不可能迭代回(n)

    反复迭代得到一系列递减数列后最终会到达一个不动点(J(n)=n)(至少还有(J(1)=1)呢)

    显然这个不动点的二进制表示中全是(1)

    所以不动点的数值是(2^{v(n)}-1),其中(v(n))(n)的二进制表示中(1)的个数

    回去考虑第一个猜测:(J(n)=frac{n}{2})

    考虑它什么时候成立

    [J(n)=frac{n}{2} ]

    [2l+1=frac{2^m+l}{2} ]

    [l=frac{2^m-2}{3} ]

    (l=frac{2^m-2}{3})为整数时,(n=2^m+l)就是一个解

    不难验证,当(m)为奇数时,(2^m-2)(3)的倍数,但当(m)为偶数时则不然(后面再研究)

    前几个解:

    [m=1,l=0,n=2,J(n)=1,n=(10)_2 ]

    [m=3,l=2,n=10,J(n)=5,n=(1010)_2 ]

    [m=5,l=10,n=42,J(n)=21,n=(101010)_2 ]

    [m=7,l=42,n=170,J(n)=85,n=(10101010)_2 ]

    其中通过二进制很好看出来

    再拓展:

    引入

    [f(1)=α,f(2n)=2f(n)+β,f(2n+1)=2f(n)+γ ]

    打表

    [f(1)=α ]

    [f(2)=2α+β,f(3)=2α+γ ]

    [f(4)=4α+3β,f(5)=4α+2β+γ,f(6)=4α+β+2γ,f(7)=4α+3γ ]

    [f(8)=8α+7β,f(9)=8α+6β+γ ]

    一般地

    [f(n)=A(n)α+B(n)β+C(n)γ ]

    [A(n)=2^m,B(n)=2^m-l-1,C(n)=l ]

    归纳法易证,但是很难直接得出此结论

    下面考虑一般方法

    (f(n)=A(n)),可得(α=1,β=γ=0)

    [A(n)=1,A(2n)=2A(n),A(2n+1)=2A(n) ]

    成立

    若代入(f(n)=1)

    [1=α,1=2*1+β,1=2*1+γ ]

    此时(α=1,β=γ=-1)

    类似,若代入(f(n)=n),得到(α=1,β=0,γ=1)

    但由此我们有

    [A(n)=2^m,A(n)-B(n)-C(n)=1,A(n)+C(n)=n ]

    [C(n)=n-A(n)=l ]

    [B(n)=A(n)-1-C(n)=2^m-1-l ]

    猜想的结果被完美推出

    此为成套方法,有多少个独立参数就需多少独立特解

    将成套方法用于约瑟夫问题:

    已知

    [J((b_mb_{m-1}…b_1b_0)_2)=(b_{m-1}…b_1b_0b_m)_2 ]

    若令(β_0=β,β_1=γ)

    [f(1)=α ]

    [f(2n+j)=2f(n)+β_j,j=0,1,n≥1 ]

    按二进制展开就是

    [f((b_mb_{m-1}…b_1b_0)_2)=2f((b_mb_{m-1}…b_1)_2)+β_{b_0} ]

    [=4f((b_mb_{m-1}…b_2)_2)+2β_{b_1}+β_{b_0} ]

    [=2^mα+2^{m-1}β_{b_{m-1}}+…+2β_{b_1}+β_{b_0} ]

    则有

    [f((b_mb_{m-1}…b_1b_0)_2)=(αb_{m-1}…b_1b_0)_2 ]

    打表

    [f(1)=α ]

    [f(2)=2α+β,f(3)=2α+γ ]

    [f(4)=4α+2β+β,f(5)=4α+2β+γ,f(6)=4α+β+2γ,f(7)=4α+γ+2γ ]

    例如

    [n=100=(1100100)_2,α=1,β=-1,γ=1 ]

    [f(n)=64+32-16-8+4-2-1=73 ]

    (100)为例,(1100100)中每个(1)(0)(-1))减至最靠右的(0)的位置上

    由此推出循环移位性质

    更拓展:

    [f(j)=α_j,1≤j<d ]

    [f(dn+j)=cf(n)+β_j,0≤j<d,n>0 ]

    则有

    [f((b_mb_{m-1}…b_1b_0)_d)=(αb_{m-1}…b_1b_0)_c ]

    例如假设

    [f(1)=34,f(2)=5,f(3n)=10f(n)+76,n>0,f(3n+1)=10f(n)-2,n>0,f(3n+2)=10f(n)+8,n>0 ]

    (d=3,c=10),要求(d=19)

    [f(19)=f((201)_3)=(5,76,-2)_{10}=5*100+76*10-2=1258 ]

    约瑟夫问题有趣起来了

    习题

    1.当(n=2)时,(1)(n-1)(2)(n)不存在交叉部分,不具有传递性

    [T_0=0,T_1=2 ]

    [T_n=3T_{n-1}+2 ]

    [T_n=3^n-1 ]

    3.显然

    4.数学归纳法
    (n=1)时,移动次数为(0)(1)
    (g(1)=1=2^n-1)
    对于第(n)个盘子,若在第三根柱子上(g(n)=g(n-1)≤2^{n-1}-1)
    若不在第三根柱子上(g(n)=g(n-1)+1+T_{n-1}≤2^n-1)

    5.不能,第四个圆与前三个圆最多有6个交点,最多增加6个表示集合

    6.(f(1)=f(2)=0,f(n)=f(n-1)+n-2=S_{n-2},n>2)

    7.(H(1)=J(2)-J(1)=0)

    [Q_2=frac{1+β}{α} ]

    [Q_3=frac{1+frac{1+β}{α}}{β}=frac{1+α+β}{αβ} ]

    [Q_4=frac{1+frac{1+α+β}{αβ}}{frac{1+β}{α}}=frac{α+frac{1+α+β}{β}}{1+β}=frac{1+α+frac{1+α}{β}}{1+β}=frac{frac{(1+α)(1+β)}{β}}{1+β}=frac{1+α}{β} ]

    [Q_5=frac{1+frac{1+α}{β}}{frac{1+α+β}{αβ}}=frac{αβ+α(1+α)}{1+α+β}=frac{α(1+α+β)}{1+α+β}=α ]

    a:

    [(frac{x_1+…+x_n}{n})^n≥x_1…x_n ]

    [(frac{x_1+…+x_{n-1}+frac{x_1+…x_{n-1}}{n-1}}{n})^n≥x_1…x_{n-1}*frac{x_1+…+x_{n-1}}{n-1} ]

    [(frac{x_1+…+x_{n-1}}{n-1})^n≥x_1…x_{n-1}*frac{x_1+…+x_{n-1}}{n-1} ]

    [(frac{x_1+…+x_{n-1}}{n-1})^{n-1}≥x_1…x_{n-1} ]

    b:

    引理一:基本不等式:

    [ab≤(frac{a+b}{2})^2 ]

    证明:

    [(frac{sum_{i=1}^{n}x_i}{n})^n≥prod_{i=1}^{n}x_i ]

    [(frac{sum_{i=n+1}^{2n}x_i}{n})^n≥prod_{i=n+1}^{2n}x_i ]

    两式相乘

    [(frac{sum_{i=1}^{n}x_i}{n}*frac{sum_{i=n+1}^{2n}x_i}{n})^n≥prod_{i=1}^{2n}x_i ]

    由引理一得

    [(frac{sum_{i=1}^{2n}x_i}{2n})^{2n}≥prod_{i=1}^{2n}x_i ]

    c.

    疑问,对于a.的证明,题目给出了特定条件,是否对一般地情况成立

    引用

    补充对不等式的证明:

    引理一:

    [x≤e^{x-1} ]

    证明:

    如果存在(x_i=0),那么显然成立

    若任意(x_i>0),令

    [a=frac{sum_{i=1}^{n}x_i}{n}>0 ]

    对任意(x_i)

    [frac{x_i}{a}≤e^{frac{x_i}{a}-1} ]

    所有式子相乘得到

    [frac{prod_{i=1}^{n}x_i}{a^n}≤e^{sum_{i=1}^{n}frac{x_i}{a}-n}=e^{n-n}=1 ]

    [a^n≥prod_{i=1}^{n}x_i ]

    [(frac{sum_{i=1}^{n}x_i}{n})^n≥prod_{i=1}^{n}x_i ]

    (Q_n):先将(n-1)个盘子挪到(C),将第(n)个盘子挪到(B),再将(n-1)个盘子挪到(B)

    (Q_n=R_{n-1}+1+R_{n-1}=2R_{n-1}+1)

    (R_n):将(n-1)个盘子挪到(A),将第(n)个盘子挪到(C),将(n-1)个盘子挪到(B),将第(n)个盘子挪到(A),将(n-1)个盘子挪到(A)

    (R_n=R_{n-1}+1+Q_{n-1}+1+R_{n-1}=Q_n+Q_{n-1}+1)

    a.

    [P_n=2P_{n-1}+2=2^{n+1}-2 ]

    b.

    注意,只需要在最后恢复,经偶数次(a)中放置即可恢复顺序

    [Q_n=4P_{n-1}+3=4*(2^n-2)+3=2^{n+2}-5 ]

    [P_n=2P_{n-1}+m_n=sum_{i=1}^{n}2^{n-i}m_i ]

    每条(Z)比三条直线少了(5)块区域

    [F_n=L_{3n}-5n=frac{3n(3n+1)}{2}-5n+1=frac{9n^2-7n+2}{2} ]

    或,第(n)个折线与前(n-1)条折线每条最多有(9)个交点,共计最多(9n-9)个交点,可新增(9n-8)个区域

    (F_n=F_{n-1}+9n-8=frac{9n^2-7n+2}{2})$

    新切一刀增加的空间数量为切面上直线划分的二维平面数量

    [P_n=P_{n-1}+L_{n-1} ]

    类似的,设(X_n)是一条直线上(n)个点所确定的一维区域的最大个数,有

    [L_n=L_{n-1}+X_{n-1} ]

    更有趣的:

    [X_n=dbinom{n}{0}+dbinom{n}{1} ]

    [L_n=dbinom{n}{0}+dbinom{n}{1}+dbinom{n}{2} ]

    [P_n=dbinom{n}{0}+dbinom{n}{1}+dbinom{n}{2}+dbinom{n}{3} ]

    符合上述规律:

    [P_n=P_{n-1}+L_{n-1}=dbinom{n-1}{0}+dbinom{n-1}{1}+dbinom{n-1}{2}+dbinom{n-1}{3}+dbinom{n-1}{0}+dbinom{n-1}{1}+dbinom{n-1}{2} ]

    [=dbinom{n-1}{0}+(dbinom{n-1}{0}+dbinom{n-1}{1})+(dbinom{n-1}{1}+dbinom{n-1}{2})+(dbinom{n-1}{2}+dbinom{n-1}{3}) ]

    [=dbinom{n}{0}+dbinom{n}{1}+dbinom{n}{2}+dbinom{n}{3} ]

    组合意义待探究

    (I(2)=2,I(3)=1)

    (n)为偶数,第一轮删掉(2,4,6,…),剩下(1,3,5,……),再从(1)开始,那么(I(n)=2I(frac{n}{2})-1)

    (n)为奇数,第一轮过后再从(3)开始,那么(I(n)=2I(frac{n}{2})+1)

  • 相关阅读:
    linux系统常用命令
    python文件处理
    Python按行读文件
    向脚本传递参数-shift命令
    shell脚本中一些特殊符号
    标准make变量 MAKE_VERSION, CURDIR
    makefile "=" ":=" "?=" "+="
    静态资源映射
    Spring MVC的常用注解
    SpringMVC项目的快速搭建
  • 原文地址:https://www.cnblogs.com/knife-rose/p/14894389.html
Copyright © 2020-2023  润新知