资源简介
骑士周游问题,采用多种方法解决骑士周游问题,如有其它需要,请留言
代码片段和文件信息
#骑士周游问题
#递归方法,这种方法,我电脑的配置计算6*6的棋盘就十分困难
def knight_1(x y n):
move_pace = {(21) (2-1) (12) (1-2) (-21) (-2-1) (-12) (-1-2)}
solutions = []
#下面这个函数获取当前位置所有可能下一步,并返回所有新位置构成的列表
def posible_position(pos state):#state 中存储已经走过的位置
posible_pos = []
for pace in move_pace:
new_pos = (pos[0]+pace[0] pos[1]+pace[1])
if new_pos not in state and 0 <=new_pos[0] posible_pos.append(new_pos)
return posible_pos
#递归函数
def knight(state = ((xy))):
if len(state) == n*n:
#print(state)
solutions.append(list(state))
return True
else:
for pos in posible_position(state[-1] state):
knight(state + (pos))
knight()
return solutions
#这个方法也不好
#只能运行6格棋盘
#非递归方法
def knight_2(x y n):
move_pace = [(21) (2-1) (12) (1-2) (-21) (-2-1) (-12) (-1-2)]
st = ESStack()
state = ((x y))
st.push((state0))
def posible_pace(pace state):
new_pos = (state[-1][0]+pace[0] state[-1][1]+pace[1])
if new_pos not in state and 0 <=new_pos[0] < n and 0 <=new_pos[1] < n:
return new_pos
return False
while not st.is_empty():
state pace_index = st.pop()
if len(state) == n*n:
print(“find“)
return state
for pace in range(pace_index 8):
new_pos = posible_pace(move_pace[pace] state)
if new_pos:
st.push((state pace+1))
st.push((state + (new_pos) 0))
#print(st.top())
break
#这个稍微优化一点,换汤不换药,只是避免了每次都把走过的路径亚入栈中
#仍然只能计算到6
def knight_3(x y n):
move_pace = [(21) (2-1) (12) (1-2) (-21) (-2-1) (-12) (-1-2)]
st = ESStack()
state = [(x y)]
st.push(((xy)0))
count = 0
def posible_pace(pace state):
new_pos = (state[-1][0]+pace[0] state[-1][1]+pace[1])
if new_pos not in state and 0 <=new_pos[0] < n and 0 <=new_pos[1] < n:
return new_pos
return False
while not st.is_empty():
count += 1
pos pace_index = st.pop()
#print(state)
if len(state) == n*n:
prin
- 上一篇:卷积神经网络源码
- 下一篇:KDD99数据集的归一化
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论