|  | 网站首页 | .Net研究 | 
您现在的位置: 程序员之路 >> .Net研究 >> .net应用技术 >> 具体编程点 >> 文章正文
赞助商链接
频 道 导 航
.Net研究频道栏目导航
相 关 文 章
马的遍历(Python版)           
马的遍历(Python版)
作者:81 文章来源:不详 更新时间:2007-5-10 11:07:07

 0 or m >= A or n < 0 or n >= A or X[m][n] != 0:
        
return next(cur_zf)                 #如果超出了棋盘的大小,则取下一个走法 
    else:
        
#print [m, n, -1]
        return [m, n, -1]

    
count 
= 0
while True:
    count 
= count + 1
    last 
= finish[-1]
    node 
= next(last)
    
if node == None:
        X[last[0]][last[
1]] = 0              #未使用
        finish.pop()
        
#print 'pop',last
        if len(finish) <= 0:
            
print 'over'
            
break
    
else:
        X[node[0]][node[
1]] = 1              #已使用
        finish.append(node)
        
#print 'append',node
        if len(finish) == A * A:
            
print 'ok'
            
print finish
            
break

print 'count = %d' % count
print '费时%f秒' % (time.clock() - start)


上述代码在A=8时,即8*8的棋盘大小,从(0,0)开始时count = 16501401费时359.331413 秒(Python2.51)
在IronPython 2 a中运行是300秒,速度稍快一点。

另:在本代码中,为了定义一个初始为0的二维数组,很花了点时间,下一节再说。

posted on 2007-05-08 10:10 81 阅读(54) 评论(0)  编辑 收藏 引用 网摘 所属分类: 其他