python京东笔试题象棋马⾛到指定位置⽅法数
#给定中国象棋棋谱10⾏9列。有⼀马,初始位置为(0,0),问⾛到指定位置有多少种⾛法,x轴0-8,y轴0-9,左下⾓位置为(0,0)
#采⽤回溯法
#马的初始位置
start = [0,0]
#马的最终位置
end =[0,0孕妇可以吃酸辣粉吗 ]
#指定马⾛的步数
step = 2
#马的⼋个⽅向
axes = [[1,2],[1,-2],[2,1],[2,-1],[-1,2],[-1,-2],[-2,1],[-2,-1]]
#新建空的列表当做栈,便于出栈,进栈
startx=[]
starty=[]
M=0
def hor_run(k):
global乐羊子妻翻译 M
for each in axes:
(each[0])
(each[1])
#先爱情伤感诗句 ⾛⼀步后判断,⾛到指定步数停⽌,且到达指定位置
煮饭仙人 if k == step and sum(startx) == end[0] and sum(starty) == end[1]:
M += 1
print('第%d种情况马的⾛法'% M,[(k,v) for k,v in zip(startx,starty)])
#没有⾛完指定步数,⾛到边界外,这些不满⾜情况的
el:
if k < step and 0<=sum(startx) and sum(startx) <=8 and 0<=sum(starty) and sum(starty)<=9:
hor_run(k+1)
#⾛完指定步数,但没有到达指定位置,删除最后⼀个位置,以便下⼀次接收下⼀次位置
()
()
hor_run(1)
print(M)
结果:
第1种情况马的⾛洞庭湖大闸蟹 法 [(1, 2), (-1, -2)]
第2种情况马的⾛法 [(2, 1), (-2, -1)]
2
马从初始位置到初始位置的⾛法,且只能⾛两步。
总共有两种⽅法,看图:
本文发布于:2023-04-22 13:35:46,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/842789.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |