Discuss / Python / 作死改了下程序算算64个盘子要多少步才能全部移过去。。。结果跑了好几分钟还没跑完。。看了是没希望了

作死改了下程序算算64个盘子要多少步才能全部移过去。。。结果跑了好几分钟还没跑完。。看了是没希望了

Topic source

作死改了下程序算算64个盘子要多少步才能全部移过去。。。结果跑了好几分钟还没跑完。。看了是没希望了

# -*- coding: utf-8 -*-
x=0
def move(n, a, b, c):

    if n > 1:
        move(n-1,a,c,b)
        move(1,a,b,c)
        move(n-1,b,a,c)
    if n == 1:
        global x
        x=x+1
        print('第%08d步  ' %x)
        print(a, '-->', c)
move(64, 'A', 'B', 'C')

运行结果

...
第06043730步
A --> C
第06043731步
B --> C
第06043732步
A --> B
第06043733步
C --> A
第06043734步
C --> B
第06043735步
A --> B
第06043736步
A --> C
第06043737步
B --> C
第06043738步
B --> A
第06043739步
C --> A
第06043740步
B --> C
第06043741步
A --> B
第06043742步
A --> C
第06043743步
B --> C
第06043744步
B --> A
第06043745步
C --> A
第06043746步
...(无限运行中。。)

你如果算比较大的数据计算时,应该先把程序中输出的部分尽可能的减少。cpu的速度是很快的,但是你屏幕io的速度相对是很慢的。


  • 1

Reply