1 条题解

  • 0
    @ 2025-8-24 21:26:38

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Union_of_Britain
    神于天

    搬运于2025-08-24 21:26:37,当前版本为作者最后更新于2024-02-23 23:28:38,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    注:本文基本上是对参考文献 11 的翻译。这份论文是法语的,并且我没找到英语版本或中文介绍(

    大家应该很熟悉汉诺塔了把,,,这里就不解释三柱汉诺塔了。

    Frame-Stewart 算法

    对于有 NN 个圆盘 ppp(p3)p(p\ge 3) 个柱子的汉诺塔,该算法寻找 1l<N1\le l<N,使得以下步骤得到操作次数最小:

    • 把前 ll 个通过 pp 个柱子移到一个非目标柱子上。

    • 把剩下的圆盘通过 p1p-1 个柱子移到目标柱子上去。

    • 把前 ll 个通过 pp 个柱子移到目标柱子上。

    设其答案为 Φ(p,N)\Phi(p,N),有:

    $$\Phi(p,N)=\min_{1\le l<N}(2\Phi(p,l)+\Phi(p-1,N-l)) $$

    边界条件:Φ(3,N)=2N1,Φ(p,1)=1\Phi(3,N)=2^N-1,\Phi(p,1)=1

    如何证明其正确性呢?这是一个困难的问题,见下文所述。

    如何解决本题

    这个算法真的有人在意他的正确性吗?

    好吧还真有。

    // Problem: P1573 栈的操作
    // Contest: Luogu
    // URL: https://www.luogu.com.cn/problem/P1573
    // Memory Limit: 125 MB
    // Time Limit: 1000 ms
    // UOB Koala'
    // 
    // 
    // Powered by CP Editor (https://cpeditor.org)
    
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int mod=1e6+7;
    int qp(int a,int b){
    	if(b==0)return 1;
    	int T=qp(a,b>>1);T=T*T%mod;
    	if(b&1)return T*a%mod;
    	return T;
    }
    int calc(int n){
    	int t=(0.5+sqrt(2.0*n));
    	int res=(1-qp(2,t-2)*(t*t-3*t-2*n+4)%mod+mod)%mod;
    	return res;
    }
    signed main(){
        int n;cin>>n;
        cout<<calc(n)<,endl;
    	return 0;
    }
    

    按照下面讲的通项公式实现即可。

    有关 Ψ\PsiΦ\Phi 的代数性质

    有必要引入几个重要函数及其性质来辅助证明定理 99 和定理 1010

    [n]={0,1,,n1}[n]=\{0,1,\dots,n-1\} $$\Delta (n)=n(n+1)/2,\nabla(n)=\max\{k\ge 0\mid \Delta(k)\le n\} $$Φ(n)=i=0n12(i)\Phi(n)=\sum _{i=0}^{n-1}2^{\nabla(i)}

    此时有 Δu=u+Δ(u1)\Delta u=u+\Delta(u-1)

    参考文献 2 指出,

    Φ(n)=min0m<n2Φ(m)+2nm1\Phi(n)=\min_{0\le m<n}2\Phi(m)+2^{n-m}-1

    可以发现其的确和 Φ(4,N)\Phi(4,N) 的递推式吻合,所以说 Φ(n)\Phi(n) 即为所找 Φ(4,N)\Phi(4,N)。根据这一点不难得出其通项公式

    Φ(n)=12t2(t23t+42n)\Phi(n)=1-2^{t-2}(t^2-3t+4-2n)

    其中 t=2nt=\lceil \sqrt{2n}\rceil

    推论:

    $$\forall a,b\in \mathbb{N},\Phi(a+b)\le 2\Phi(a)+2^b-1 $$

    引理 1:对于 n,pN,pn+1n,p\in \mathbb{N},p\le n+1

    Φ(Δn+p)=1+(n+p1)2n\Phi(\Delta n+p)=1+(n+p-1)2^n

    证明:显然其在 p=0p=0 时成立,pp 逐渐增加到 n+1n+1 时都不会改变 Δn+p1\Delta n+p-1\nabla 值,得证。

    定义函数

    $$\Psi_L(E)=(1-L)2^L-1+\sum_{u\in E}2^{\min(\nabla u,L)} $$Ψ(E)=supLNΨL(E)\Psi(E)=\sup _{L\in \mathbb{N}}\Psi_L(E)

    不难发现其是良定义的。

    引理 2:nN\forall n\in\mathbb{N}

    Ψ[n]=Φ(n+1)12\Psi[n]=\frac{\Phi(n+1)-1}2

    证明:

    n=0n=0 时命题成立。因此假设 n1n\ge 1

    类似于带余除法地,设 n=Δm+pn=\Delta m+p,其中 m=nm=\nabla n,此时 0pm0\le p\le m

    根据引理 11,有:

    Φ(Δm)=1+(m1)2m\Phi(\Delta m)=1+(m-1)2^m Φ(n+1)=1+(m+p)2m\Phi(n+1)=1+(m+p)2^m

    因此 LN\forall L\in \mathbb{N},有:

    $$\Psi_{L+1}[n]-\Psi_L[n]=-(L+1)2^L+\sum _{u\in [n]}2^{\min(\nabla u,L+1)}-2^{\min(L,\nabla u)} $$$$=-(L+1)2^L+2^L(\#\{u\in [n]\mid u\ge \Delta(L+1)\}) $$=2L(max(0,nΔ(L+1))(L+1))=2^L(\max(0,n-\Delta(L+1))-(L+1))

    此式 >0>0 当且仅当:

    nΔ(L+1)+L+2=Δ(L+2)n\ge \Delta(L+1)+L+2=\Delta(L+2)

    nL+2\nabla n\ge L+2,等价于 L<m1L<m-1。因此只需计算 Ψm1[n]\Psi_{m-1}[n]

    $$\Psi_{m-1}(n)=(2-m)2^{m-1}-1+\sum _{0\le i<\Delta m}2^{\nabla i}+\sum_{\Delta m\le k<n}2^{m-1} $$$$=(2-m)2^{m-1}-1+\Phi(\Delta m)+(n-\Delta m)2^{m-1} $$=m2m1+p2m1=m2^{m-1}+p2^{m-1} =Φ(n+1)12=\frac{\Phi(n+1)-1}2

    证毕。

    推论:

    $$\forall a,b\in \mathbb{N},\Psi[a+b]\le 2\Psi[a]+2^{b-1} $$

    根据引理 22 化为 Φ\Phi 即可。

    引理 33nN\forall n\in \mathbb{N}

    Ψ[n+2]2(n)+1\Psi[n+2]\ge 2^{(\nabla n)+1}

    s=ns=\nabla n。根据 Ψ[]\Psi[\cdot] 递增,仅需考虑 Ψ[Δs+2]2s+1\Psi[\Delta s+2]\ge 2^{s+1}

    容易验证 s<2s<2 时成立,对于 s2s\ge 2,根据引理 22

    Ψ[Δs+2]=(s+2)2s12s+1\Psi[\Delta s+2]=(s+2)2^{s-1}\ge 2^{s+1}

    证毕。

    引理 44EN,#E=n\forall E\subset N,\#E=n

    nΨ[n]Ψ(E)2n1n\le \Psi[n]\le \Psi (E)\le 2^n-1

    nΨ[n]n\le \Psi[n] 是显然的。

    Ψ[n]Ψ(E)\Psi[n]\le \Psi (E):设 EE 排序后为 e0<e1<<en1e_0<e_1<\dots<e_{n-1}。此时有 eiie_i\ge i。所以

    $$\Psi_L(E)=(1-L)2^L-1+\sum_{i}2^{\min(\nabla e_i,L)}\ge (1-L)2^L-1+\sum_{i}2^{\min(\nabla i,L)}=\Psi_L[n] $$

    Ψ(E)2n1\Psi(E)\le 2^n-1:放缩,

    $$\Psi_L(E)=(1-L)2^L-1+\sum_{i\in E}2^{\min(\nabla u,L)} $$$$\le (1-L)2^L-1+\sum_{i\in E}2^{L}=(1+n-L)2^L-1\le 2^{n}-1 $$

    证毕。

    引理 55:设 A,BNA,B\subset \mathbb{N}

    Ψ(A)Ψ(B)uAB2u\Psi(A)-\Psi(B)\le \sum_{u\in A-B}2^{\nabla u}

    Ψ(A)=ΨL(A)\Psi(A)=\Psi_L(A)。放缩:

    $$\Psi(A)-\Psi(B)\le \Psi_L(A)-\Psi_L(B)\le \Psi_L(A)-\Psi_L(A\cap B) $$$$=\sum _{u\in A-B}2^{\min (\nabla u,L)}\le \sum _{u\in A-B}2^{\nabla u} $$

    引理 66:设 ANA\subset \mathbb{N}sNs\in \mathbb{N},使得 #(A[Δs])s\#(A-[\Delta s])\le s,那么:

    Ψ(A)Ψ(A{a})2s1,aA\Psi(A)-\Psi(A-\{a\})\le 2^{s-1},\forall a\in A

    可以假设 AA\neq \varnothing,那么 s1s\ge 1Ls1\forall L\ge s-1,根据前面的结果,

    $$\Psi_{L+1}(A)-\Psi_L(A)=2^L(\#\{n\in A\mid n\ge \Delta(L+1)\}-L-1)\le 2^L(\#\{n\in A\mid n\ge \Delta s\}-s)\le 0 $$

    那么 Ls1,Ψ(A)=ΨL(A)\exists L\le s-1,\Psi(A)=\Psi_L(A),所以:

    $$\Psi(A)-\Psi(A-\{a\})\le \Psi_L(A)-\Psi_L(A-\{a\})=2^{\min(\nabla a,L)}\le 2^L\le 2^{s-1} $$

    证毕。

    引理 77

    设 $n,s\in \mathbb{N},s\ge 1,n\ge \Delta(s-1),A\in [n],b_{1:s}\in \mathbb{N}^s$。有:

    $$\Psi(A\cup \{b_{1:s}\})-\Psi(A)\le \Psi[n+s]-\Psi[n] $$

    At=A{b1:t},0tsA_t=A\cup \{b_{1:t}\},0\le t\le s。原命题等价于

    Ψ(At)Ψ(At1)Ψ[n+t]Ψ[n+t1]\Psi(A_t)-\Psi(A_{t-1})\le \Psi[n+t]-\Psi[n+t-1]

    只需考虑 t>0,bt>0,b 互不相同。

    根据引理 22,右式可以写作 2σ12^{\sigma -1},其中 σ=(n+t)\sigma=\nabla (n+t)。根据引理 66,只需证明 #(At[Δσ])σ\#(A_t-[\Delta\sigma])\le \sigma

    注意到 Δ(σ+1)>n+t\Delta(\sigma+1)>n+t,即 σ+Δσn+t\sigma+\Delta\sigma\ge n+t,所以

    $$\#(A_t-[\Delta\sigma])\le t+\#([n]-[\Delta\sigma])=t+\max(0,n-\Delta\sigma)\le \max(t,\sigma) $$

    下面证明 σt\sigma\ge t

    Δtt=Δ(t1)Δ(s1)n\Delta t-t=\Delta(t-1)\le \Delta(s-1)\le n

    所以

    Δtn+t\Delta t\le n+t

    σ=(n+t)t\sigma=\nabla(n+t)\ge t。证毕。

    引理 88

    A,BN,n=#(AB)A,B\subset \mathbb{N},n=\#(A\cup B),则

    $$\Psi(A)+\Psi(B)\ge \frac{\Phi(n+3)-5}4=\frac 12\Psi[n+2]-1=\frac 14\left(\sum _{i=3}^{n+2}2^{\nabla i}\right) $$

    等号可直接通过定义得到,关注不等号:

    E=AB,LNE=A\cup B,L\in \mathbb{N}。根据引理 44,总有 ΨL(E)ΨL[n]\Psi_L(E)\ge \Psi_L[n]。所以:

    $$\Psi(A)+\Psi(B)\ge \Psi_L(A)+\Psi_L(B)=\Psi_L(A\cap B)+\Psi(A\cup B)\ge \Psi _L(\varnothing)+\Psi_L(E) $$ΨL[0]+ΨL[n]\ge \Psi_L[0]+\Psi_L[n]

    和上面类似地,设 n+3=Δm+pn+3=\Delta m+p,其中 m=(n+3)m=\nabla (n+3)

    根据引理 11,有:

    $$\Phi(n+3)=1+(m+p-1)2^m\\ \Phi(\Delta(m-2))=1+(m-3)2^{m-2} $$

    L=m2L=m-2。这样

    $$\Psi_L[0]+\Psi_L[n]=(1-L)2^{L+1}-2+\sum_{i=0}^{n-1}2^{\min(\nabla i,L)} $$$$=(3-m)2^{m-1}-2+\sum _{i=0}^{\Delta(m-2)-1}2^{\nabla i}+\sum_{i=\Delta(m-2)}^{n-1}2^{m-2} $$$$=(3-m)2^{m-1}-2+\Phi(\Delta(m-2))+(n-\Delta(m-2))2^{m-2} $$=(m+p1)2m21=Φ(n+3)54=(m+p-1)2^{m-2}-1=\frac{\Phi(n+3)-5}{4}

    这些引理会在后面的证明被反复应用。

    定理 99 及其证明

    汉诺塔游戏和定理 99

    接下来回到原问题汉诺塔问题。

    从小到大对圆盘用 [N][N] 标号。记 CC 是柱子集合,比方说 {0,1,2,3}\{0,1,2,3\}

    一个汉诺塔游戏的状态可以使用一个函数 u:[N]Cu:[N]\to C 表示。u(a)u(a) 表示 aa 盘子所在柱子。所有状态的集合显然就是 C[N]C^{[N]}

    定义距离函数 d(u,v):(C[N])2N{}d(u,v):(C^{[N]})^2\to \mathbb{N}\cup \{\infty\},是两个状态通过合法操作互化的最小操作次数。

    定理 99

    C={0,1,2,3},NNC=\{0,1,2,3\},N\in \mathbb{N}u,vu,v 是两个 NN 圆盘 44 柱汉诺塔的状态。如果 i,v(i){2,3}\forall i,v(i)\in \{2,3\},那么:

    d(u,v)Ψ(k[N]u(k)=0)d(u,v)\ge \Psi(k\in [N]\mid u(k)=0)

    这个定理意味着,NN 圆盘 44 柱汉诺塔的答案 Ψ[N]\ge \Psi[N]

    下面大部分的篇幅将会证明这个定理。

    定理 99 的证明

    定义和基础性质

    我们采取对 NN 归纳的方法。边界条件是显然的。

    E={k[N]u(k)=0}E=\{k\in [N]\mid u(k)=0\}。可以假设 EE\neq \varnothing,否则命题显然。

    u,v:[N1]Cu',v':[N-1]\to C,是 u,vu,v 移除掉最大的圆盘的状态。

    有:

    d(u,v)d(u,v)Ψ(E{N1})d(u,v)\ge d(u',v')\ge \Psi(E-\{N-1\})

    N1∉EN-1\not\in E,显然;因此,假设 N1EN-1\in E。不妨设 v(N1)=2v(N-1)=2

    接下来定义路径。设 d(u,v)=Dd(u,v)=D。路径是函数 γ:[D+1]C[N]\gamma:[D+1]\to C^{[N]},且满足 γ(0)=u,γ(D)=v\gamma(0)=u,\gamma(D)=vd(γ(i),γ(j))=ij,i,j[D+1]d(\gamma(i),\gamma(j))=|i-j|,\forall i,j\in [D+1]。下面,也用 γi\gamma _i 指代 γ(i)\gamma(i)(应用柯里化技巧)。

    事实上,把所有的状态可以一步互化的连上无向边,得到的图上 uuvv 的任意一条最短路径就是上面的 γ\gamma

    E={kEt[D+1],γt(k)=3}E'=\{k\in E\mid \exists t\in [D+1],\gamma_t(k)=3\},即初始在第 00 柱,但经过第 33 柱的圆盘集合。

    考虑 E=E'=\varnothing 的情况。这就是三柱问题,而根据引理 44 知道 Ψ(E)2#E1\Psi (E)\le 2^{\# E}-1,而 D2#E1Ψ(E)D\ge 2^{\# E}-1\ge \Psi(E)

    T=maxET=\max E'E=E[T+1]E''=E-[T+1]K=EK=|E''|(可能是 00)。设 E={b1:K},bi<bi+1E''=\{b_{1:K}\},b_i<b_{i+1}

    显然有 T+K+1NT+K+1\le N

    t0t_0 是最小的整数使得 γt0(T)0\gamma_{t_0}(T)\neq 0,即 TT 已经离开 00 柱子的时间。设状态 x0=γ(t01)x_0=\gamma(t_0-1)。在这一状态中,第 00 柱的顶部是 TT,移动到的那一柱的顶部 >T>T。设 t1t_1 是最小的整数使得 γt1(T)=3\gamma_{t_1}(T)=3。类似地,设 x3=γ(t1)x_3=\gamma(t_1)。在这一状态中,第 33 柱的顶部是 TT,来的那一柱顶部 >T>T。显然 1t0t1D1\le t_0\le t_1\le D

    t2t_2 是最小的整数使得 γt2(N1)0\gamma_{t_2}(N-1)\neq 0,并设 z0=γ(t21)z_0=\gamma(t_2-1)。在这一状态中,第 00 柱的顶部是 N1N-1,移动到的那一柱是空的。设 t3t_3 是最大的整数使得 γt3(N1)2\gamma_{t_3}(N-1)\neq 2,并设 z2=γ(t3+1)z_2=\gamma (t_3+1)。在这一状态中,第 22 柱的顶部是 N1N-1,来的那一柱是空的。此时有 t2t3+1t_2\le t_3+1

    类似地定义 xa,zbx'_a,z'_b 是忽略 N1N-1 圆盘的 xa,zbx_a,z_bxa,zbx_a'',z_b''忽略 T\ge T 的圆盘的 xa,zbx_a,z_b u,vu,v 同理。

    观察到 z0z_0' 的两列都是空的。所以可以类似地应用归纳假设:

    $$d(u,z_0)\ge d(u',z_0')\ge \Psi\{k\in [N-1]\mid u(k)=0\}=\Psi(E-\{N-1\}) $$

    类似地:

    d(u,x0)d(u,x0)Ψ(E[T])d(u,x_0)\ge d(u'',x_0'')\ge \Psi(E\cap [T])

    ΔK>T\Delta K>T

    首先考虑 ΔK>T\Delta K>T 的情形。

    此时有 K1,T<bk=N1K\ge 1,T<b_k=N-1,也就是说 N1N-1 没有经过第 33 柱。

    此外,注意到 (E[ΔK])E(E-[\Delta K])\subset E''#(E[ΔK])ΔK\#(E-[\Delta K])\le \Delta K,那么可以应用引理 66

    Ψ(E)Ψ(E{N1})2K1\Psi (E)-\Psi(E-\{N-1\})\le 2^{K-1}

    与上面的式子结合,得到

    d(u,z0)Ψ(E)2K1d(u,z_0)\ge \Psi(E)-2^{K-1}

    由于 t2t3+1t_2\le t_3+1uuvv 的路径 γ\gamma 一定形如:

    uz0z2vu\to z_0\to z_2\to v

    考虑 z2z_222 柱和 c=γt3(N1)c=\gamma_{t_3}(N-1)c{0,1}c\in\{0,1\})柱上不能有 <N1<N-1 的圆盘,所以 b1:K1b_{1:K-1} 一定都在 1c1-c 柱上。这些盘最后(vv)一定都在 22 柱上,而这些圆盘不被允许通过第 33 柱。根据三柱汉诺塔,有:

    d(z2,v)2K11d(z_2,v)\ge 2^{K-1}-1

    d(z0,z2)1d(z_0,z_2)\ge 1,所以:

    D=d(u,z0)+d(z0,z2)+d(z2,v)D=d(u,z_0)+d(z_0,z_2)+d(z_2,v) (Ψ(E)2K1)+1+(2K11)=Ψ(E)\ge (\Psi(E)-2^{K-1})+1+(2^{K-1}-1)=\Psi(E)

    证毕。

    ΔKT\Delta K\le T

    其次考虑 ΔKT\Delta K\le T 的情况。

    s=(T+K+1)s=\nabla(T+K+1)。由于 E=[T+1]EE=[T+1]\cup E''#(E[Δs])max(T+1Δs,0)+K\#(E-[\Delta s])\le \max(T+1-\Delta s,0)+K

    显然 sTKs\ge \nabla T\ge K。并且 T+K+1<Δ(s+1)=Δs+s+1T+K+1<\Delta(s+1)=\Delta s+s+1,那么 T+K+1ΔssT+K+1-\Delta s\le s。根据以上两条,有:

    #(E[Δs])s\#(E-[\Delta s])\le s

    所以应用引理 66 有:

    Ψ(E)Ψ(E{N1})2s1\Psi(E)-\Psi(E-\{N-1\})\le 2^{s-1}

    这次作用于上面的式子得到的结果是

    $$d(u,z_0)\ge d(u',z_0')\ge \Psi(E)-2^{\nabla(T+K+1)-1} $$

    K=0K=0

    先考虑 K=0K=0

    这意味着 T=N1T=N-1 经过了 33 柱,最后留在 22 柱。

    因为 t1t3t_1\le t_3,所以 uuvv 的路径 γ\gamma 一定形如:

    uz0=x0x3z2vu\to z_0=x_0\to x_3\to z_2\to v

    c=γt3(N1)2c=\gamma_{t_3}(N-1)\neq 2。所以在状态 z2z_2' 中,所有圆盘都在除了 2,c2,c 的那两个柱子上。设:

    {0,1,2,3}{2,c}={a,b}\{0,1,2,3\}-\{2,c\}=\{a,b\}

    不妨设 a,ba,b 是依下表的值:

    cc 00 11 33
    aa 33 00
    bb 11 00 11

    A={k[N1]z2(k)=a}A=\{k\in [N-1]\mid z_2(k)=a\} B={k[N1]z2(k)=b}B=\{k\in [N-1]\mid z_2(k)=b\}

    因为 AB=[N1]A\cup B=[N-1],根据引理 88,有:

    Ψ(A)+Ψ(B)12Ψ[N+1]1\Psi(A)+\Psi(B)\ge \frac 12\Psi[N+1]-1 $$=\frac 14(2^{\nabla (N+1)}+2^{\nabla N})+\frac 12 \Psi[N-1]-1 $$2(T+K+1)1+12Ψ[N1]1\ge 2^{\nabla(T+K+1)-1}+\frac 12 \Psi[N-1]-1

    xax'_a 中, aa 柱和另一柱为空,因此可以应用归纳假设:

    d(z2,xa)Ψ(A)d(z_2',x_a')\ge \Psi(A)

    而在 vv' 中,0011 柱为空,有:

    d(z2,v)d(z2,v)Ψ(B)d(z_2,v)\ge d(z_2',v')\ge \Psi(B)

    而在 z0z_0z2z_2 的路径上,[N1][N-1] 的圆盘至少做了 d(xa,z2)d(x_a',z_2') 次操作(因为路径结构),而 N1N-1 至少需要 0320\to 3\to 2,所以

    d(z0,z2)Ψ(A)+2d(z_0,z_2)\ge \Psi(A)+2

    那么

    D=d(u,v)=d(u,z0)+d(z0,z2)+d(z2,v)D=d(u,v)=d(u,z_0)+d(z_0,z_2)+d(z_2,v) Ψ(E)2(T+K+1)1+Ψ(A)+2+Ψ(B)\ge \Psi(E)-2^{\nabla(T+K+1)-1}+\Psi(A)+2+\Psi(B) Ψ(E)+1+12Ψ[N1]Ψ(E)\ge \Psi(E)+1+\frac 12 \Psi[N-1]\ge \Psi(E)

    K1K\ge 1

    接下来解决最后一种情况:K1K\ge 1,所以 T<bk=N1T<b_k=N-1

    此时我们无从比较 t1t_1t3+1t_3+1,难以像之前一样直接每段放缩,只能分类讨论。

    t1>t3+1t_1>t_3+1

    假设 t1>t3+1t_1>t_3+1

    那么 uvu\to v 的路径一定形如:

    uz0z2x3vu\to z_0\to z_2\to x_3\to v

    在状态 x3x_3 中,33d=γt11(T)d=\gamma_{t_1-1}(T) 不包含小于 TT 的圆盘。他们在剩下的两列里。所以,设 c=γt3(N1){0,1}c=\gamma_{t_3}(N-1)\in \{0,1\}

    那么设:

    {0,1,2,3}{3,d}={a,b}\{0,1,2,3\}-\{3,d\}=\{a,b\}

    其中 a,ba,b 值依下表。

    dd 0011 22
    aa 22 cc
    bb 1d1-d 1c1-c

    A={k[T]x3(k)=a}A=\{k\in [T]\mid x_3(k)=a\} B={k[T]x3(k)=b}B=\{k\in [T]\mid x_3(k)=b\}

    在状态 z2z_2'' 中, aa 和另一列是空的。因此应用归纳假设:

    d(x3,z2)d(x3,z2)Ψ(A)d(x_3,z_2)\ge d(x_3'',z_2'')\ge \Psi(A)

    而在 vv'' 中, 0,10,1 列为空。所以应用归纳假设:

    d(x3,v)d(x3,v)Ψ(B)d(x_3,v)\ge d(x_3'',v'')\ge \Psi(B)

    d(z0,z2)1d(z_0,z_2)\ge 1,所以:

    D=d(u,v)=d(u,z0)+d(z0,z2)+d(z2,z3)+d(x3,v)D=d(u,v)=d(u,z_0)+d(z_0,z_2)+d(z_2,z_3)+d(x_3,v) $$\ge \Psi(E)-2^{\nabla (T+K+1)-1}+1+\Psi(A)+\Psi(B) $$$$\ge \Psi(E)-2^{\nabla(T+K+1)-1}+\frac 12 \Psi[T+2] $$

    s=(T+K+1)s=\nabla(T+K+1)。因为 TΔKT\ge \Delta KT+K+1Δ(K+1)T+K+1\ge \Delta(K+1),即 sK+1s\ge K+1。但是

    T=(T+K+1)(K+1)Δss=Δ(s1)T=(T+K+1)-(K+1)\ge \Delta s-s=\Delta(s-1)

    Ts1\nabla T\ge s-1。根据引理 33Ψ[T+2]2s\Psi[T+2]\ge 2^s。所以,DΨ(E)D\ge \Psi (E)

    t1<t3+1t_1<t_3+1

    t1<t3+1t_1<t_3+1

    uvu\to v 的路径一定形如:

    ux0x3/z0z2vu\to x_0\to x_3/z_0\to z_2\to v

    中间不能确定 x3x_3z0z_0 的顺序。

    在状态 z2z_2' 中,22 柱和 c=γt3(N1){0,1}c=\gamma_{t_3}(N-1)\in \{0,1\} 柱为空。因此所有圆盘都在 33 柱和 b=1cb=1-c 柱上。b1:K1b_{1:K-1} 一定在 bb 柱上。

    A={k[T]z2(k)=3}A=\{k\in [T]\mid z_2(k)=3\} B={k[N1]z2(k)=b}B=\{k\in [N-1]\mid z_2(k)=b\}

    在状态 x3x_3'' 中,33 柱和另一柱为空。因此可以应用归纳假设,d(z2,x3)Ψ(A)d(z_2'',x_3'')\ge \Psi(A)

    而在状态 vv' 中,0,10,1 柱为空,所以 d(z2,v)d(z2,v)Ψ(B)d(z_2,v)\ge d(z_2',v')\ge \Psi(B)

    ([T]{b1:K1})(AB)([T]\cup \{b_{1:K-1}\})\subset (A\cup B)

    所以

    Ψ(A)+Ψ(B)12Ψ[T+K+1]1\Psi(A)+\Psi(B)\ge \frac 12 \Psi[T+K+1]-1

    由于 d(z2,x3)Ψ(A)d(z_2'',x_3'')\ge \Psi(A),在 x3x_3z2z_2<T<T 的圆盘至少操作 Ψ(A)\Psi(A) 次。从 uux0x_0<T<T 的圆盘至少操作 Ψ(E[T])\Psi(E\cap [T]) 次(依靠归纳假设)。此外,在 uu 状态下,b1:K1b_{1:K-1} 圆盘都在 00 柱,在 z0z_0 却都不在 00 柱上,且不能经过 33 柱。因此,根据三柱汉诺塔,他们至少需要 2K112^{K-1}-1 次操作完成这个。最后,盘 TTx0x_0x3x_3 至少被操作一次,盘 N1N-1z0z_0z2z_2 至少被操作一次。综上,

    d(u,z2)Ψ(E[T])+Ψ(A)+2K1+1d(u,z_2)\ge \Psi(E\cap [T])+\Psi(A)+2^{K-1}+1

    得到结果:

    D=d(u,v)=d(u,z2)+d(z2,v)D=d(u,v)=d(u,z_2)+d(z_2,v) Ψ(E[T])+Ψ(A)+2K1+1+Ψ(B)\ge\Psi(E\cap [T])+\Psi(A)+2^{K-1}+1+\Psi(B) Ψ(E[T])+12Ψ[T+K+1]+2K1\ge \Psi(E\cap [T])+\frac 12 \Psi[T+K+1]+2^{K-1}

    另外,由于 TΔKT\ge \Delta KE=(E[T]){T,b1:K}E=(E\cap[T])\cup\{T,b_{1:K}\},根据引理 77,有:

    Ψ(E)Ψ(E[T])Ψ[T+K+1]Ψ[T]\Psi(E)-\Psi(E\cap [T])\le \Psi[T+K+1]-\Psi[T]

    根据上式,有:

    DΨ(E)Ψ(T)+2K112Ψ[T+K+1]D-\Psi(E)\ge \Psi(T)+2^{K-1}-\frac 12\Psi[T+K+1]

    根据引理 22 的推论,右式非负,所以 DΨ(E)D\ge \Psi(E)

    至此,定理 99 的所有情况证毕。

    证明原命题-定理 1010

    定理 99 并没有显然地给出 Frame-Stewart Algorithm 的正确性。

    定理 1010NN 个圆盘的汉诺塔问题可以在 Φ(N)\Phi(N) 步内解决。

    不妨设 N1N\ge 1

    uu 是所有 NN 个圆盘都在 00 柱的状态,vv 是所有圆盘都在 22 柱的状态。

    uuvv 的路径一定形如:

    uz0z2vu\to z_0\to z_2\to v

    由于 z0z_0 有两列为空,应用定理 99

    $$d(u,z_0)\ge d(u',z_0')\ge \Psi\{k\in [N-1]\mid u(k)=0\}=\Psi[N-1] $$

    同样,

    d(v,z2)Ψ[N1]d(v,z_2)\ge \Psi[N-1]

    d(z0,z2)1d(z_0,z_2)\ge 1,所以:

    $$d(u,v)=d(u,z_0)+d(z_0,z_2)+d(z_2,v)\ge 1+2\Psi[N-1]=\Phi(N) $$

    最后一个等号来源于引理 22

    证毕。

    参考文献

    参考文献 1 :T. Bousch. La quatri`eme tour de Hano¨ı. Bull. Belg. Math. Soc. Simon Stevin, 21:895–912,2014.

    参考文献 2: S.Klav˘zar, U. Milutinovi´c, and C. Petr. On the Frame-Stewart algorithm for the multi-peg Tower of Hanoi problem.Discrete Appl. Math., 120(1–3):141–157, 2002.

    • 1

    信息

    ID
    566
    时间
    1000ms
    内存
    125MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者