Discuss / Python / 人工代入n=3 && n=4

人工代入n=3 && n=4

Topic source
def move(n,x,y,z):
    if n == 1:
        print(x+'-->'+z)
    else:
        move(n-1,x,z,y)#acb
        move(1,x,y,z)#abc
        move(n-1,y,x,z)#bac


    #3
        #2,acb
            #x=a,y=c,z=b
            #1,ac
            #ab
            #1,cb
        #abc
        #2,bac
            #x=b,y=a,z=c
            #1,ba
            #bc
            #ac
    #4
        #3,acb
            #x=a,y=c,z=b
            #2,abc
                #x=a,y=b,z=c
                #1,ab
                #ac
                #bc
            #ab
            #2,cab
                #x=c,y=a,z=b
                #1,ca
                #cb
                #ab
        #ac
        #3,bac
            #x=b,y=a,z=c
            #2,bca
                #x=b,y=c,z=a
                #1,bc
                #ba
                #ca
            #bc
            #2,abc
                #x=a,y=b,z=c
                #1,ab
                #ac
                #bc


#ab
#ac
#bc
#ab
#ca
#cb
#ab
#ac
#bc
#ba
#ca
#bc
#ab
#ac
#bc

虽然是按照@腿腿小魔王的捋顺了.但是还是没大消化掉. 然后我自己代入程序走了一遭n=3 && n=4. 发现.我陷入了一个误区,确切点说是没抓到这个或者说是这类问题的点. 在写这个的时候.突然间明白.递归其实就是假定,前面的都已经成功了.只差最后一步了.这最后一步是要做什么.然后最后一步之前的,假定它的前一步已经完成了.以此类推.


  • 1

Reply