日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python迷宫问题的所有路径_python——迷宫问题总结

發(fā)布時間:2025/4/5 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python迷宫问题的所有路径_python——迷宫问题总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于迷宮問題,常見會問能不能到達(dá)某點(diǎn),以及打印到達(dá)的最短路徑。可以用回溯法+遞歸來解決

代碼一:dfs + 回溯

將矩陣外圍以及路障統(tǒng)一設(shè)置為-1

設(shè)置current_step和next_step兩個值。如果面臨的點(diǎn)大于next_step,或者從未走過,就可以對它遞歸

存儲矩陣:直接在原迷宮上修改,每個點(diǎn)標(biāo)記的是從起點(diǎn)過來經(jīng)過的步數(shù),遇到0或者是比當(dāng)前大至少2的,就考察

# -*- coding:utf-8 -*-

def init():

global graph

graph.append([-1, -1, -1, -1, -1, -1, -1])

graph.append([-1, 0, 0, -1, 0, 0, -1])

graph.append([-1, 0, -1, 0, 0, 0, -1])

graph.append([-1, 0, -1, 0, -1, -1, -1])

graph.append([-1, 0, -1, 0, 0, 0, -1])

graph.append([-1, 0, 0, 0, -1, 0, -1])

graph.append([-1, 0, 0, 0, 0, 0, -1])

graph.append([-1, -1, -1, -1, -1, -1, -1])

#深度優(yōu)先遍歷

def deepFirstSearch( steps , x, y ):

global graph

current_step = steps + 1

print(x, y, current_step )

graph[x][y] = current_step

next_step = current_step + 1

'''

遍歷周圍4個點(diǎn):

如果周圍節(jié)點(diǎn)不是-1 說明 不是障礙 在此基礎(chǔ)上:

里面是0 說明沒遍歷過 我們把它修改成當(dāng)前所在位置步數(shù)加1

里面比當(dāng)前的next_step大 說明不是最優(yōu)方案 就修改它

里面比當(dāng)前next_step說明當(dāng)前不是最優(yōu)方案,不修改

'''

if not(x-1== 1 and y==1) and graph[x-1][y] != -1 and ( graph[x-1][y]>next_step or graph[x-1][y] ==0 ) : #上

deepFirstSearch(current_step, x-1 , y )

if not(x == 1 and y-1==1) and graph[x][y-1] != -1 and ( graph[x][y-1]>next_step or graph[x][y-1] ==0 ) : #左

deepFirstSearch(current_step, x , y-1 )

if not(x == 1 and y+1==1) and graph[x][y+1] != -1 and ( graph[x][y+1]>next_step or graph[x][y+1]==0 ) : #右

deepFirstSearch(current_step, x , y+1 )

if not(x+1== 1 and y==1) and graph[x+1][y] != -1 and ( graph[x+1][y]>next_step or graph[x+1][y]==0 ) : #下

deepFirstSearch(current_step, x+1 , y )

if __name__ == "__main__":

graph = []

init()

deepFirstSearch(-1,1,1)

print(graph[1][5])

代碼二:也是回溯

這里0是可走,1是路障,用while來做循環(huán)。如果某點(diǎn)的附近有判斷可走的新點(diǎn),就將新點(diǎn)append進(jìn)stack,走過了標(biāo)記為-1;如果四個方向都沒有,就從舊點(diǎn)從stack中pop掉,標(biāo)上-1,進(jìn)行回溯。

存儲矩陣:stack中存儲的0是可走,1是路障,-1是走過的或者是死路

maze = [

[1,1,1,1,1,1,1,1,1,1],

[1,0,0,1,0,0,0,1,0,1],

[1,0,0,1,0,0,0,1,0,1],

[1,0,0,0,0,1,1,0,0,1],

[1,0,1,1,1,0,0,0,0,1],

[1,0,0,0,1,0,0,0,0,1],

[1,0,1,0,0,0,1,0,0,1],

[1,0,1,1,1,0,1,1,0,1],

[1,1,0,0,0,0,0,1,0,1],

[1,1,1,1,1,1,1,1,1,1]

]

dirs = [lambda x, y: (x + 1, y),

lambda x, y: (x - 1, y),

lambda x, y: (x, y - 1),

lambda x, y: (x, y + 1)]

def mpath(x1, y1, x2, y2):

stack = []

stack.append((x1, y1))

while len(stack) > 0:

curNode = stack[-1]

if curNode[0] == x2 and curNode[1] == y2:

#到達(dá)終點(diǎn)

for p in stack:

print(p)

return True

for dir in dirs:

nextNode = dir(curNode[0], curNode[1])

if maze[nextNode[0]][nextNode[1]] == 0:

#找到了下一個

stack.append(nextNode)

maze[nextNode[0]][nextNode[1]] = -1 # 標(biāo)記為已經(jīng)走過,防止死循環(huán)

break

else:#四個方向都沒找到

maze[curNode[0]][curNode[1]] = -1 # 死路一條,下次別走了

stack.pop() #回溯

print("沒有路")

return False

mpath(1,1,8,8)

總結(jié)

以上是生活随笔為你收集整理的python迷宫问题的所有路径_python——迷宫问题总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 牛牛精品一区二区 | 特级西西444www大精品视频 | 久久九九久精品国产免费直播 | 亚洲精品一区二区三区婷婷月 | 国模私拍一区二区三区 | 国产精品.com| 中文字幕在线一区二区三区 | 一本大道视频 | 亚洲av日韩av高潮潮喷无码 | 色一情一交一乱一区二区三区 | 一级久久久久 | 国产老妇伦国产熟女老妇视频 | 制服丝袜在线第一页 | 六月婷婷综合网 | www.爱爱| 菊肠扩张playh | 手机看片福利永久 | 男人添女人下部高潮全视频 | 香蕉视频在线免费播放 | 亚洲综合精品国产 | 成人午夜在线观看 | 精品裸体舞一区二区三区 | 国产福利资源 | 亚洲av无码乱码在线观看富二代 | 国产精品久久网站 | 激情文学av | 精品影视一区二区 | 538国产视频| ass极品水嫩小美女ass | 爽妇综合网| 亚洲制服一区 | 免费啪视频在线观看 | 日韩视频在线一区二区 | 久久国产精品一区 | 在线观看国产小视频 | 日韩三级中文字幕 | 少妇脱了内裤让我添 | 伊人网视频 | 另类一区 | 一女三黑人理论片在线 | 国产一区二区视频在线免费观看 | 国内精品在线播放 | 黄色网址在线免费看 | 三级黄毛片 | 三级黄色免费片 | 成人午夜福利视频 | 亚洲乱码视频在线观看 | 一本色道久久综合狠狠躁的推荐 | 国产777| 成人精品福利 | 日本55丰满熟妇厨房伦 | 国产尤物在线观看 | 97视频人人| 日韩中文字幕亚洲精品欧美 | 九九精品在线观看 | 最近最好的2019中文 | 老司机精品福利视频 | 狠狠操人人干 | 天天射天天草 | 三上悠亚久久 | 99久久久无码国产精品 | 动漫av一区二区三区 | 一区二区三区黄色 | 91av手机在线| 国产av剧情一区 | 精品视频导航 | 国内外成人免费视频 | av在线免费观看网站 | 美女光屁屁露胸胸 | 男男做的视频 | 欧美女同在线 | 日本高清不卡在线 | 成人午夜久久 | 精品少妇av | 国产精品久久久久久一区 | 日韩青青草 | 成年人国产 | 国产不卡视频一区二区三区 | 国产福利一区二区三区在线观看 | 99热欧美| 亚洲免费精品视频在线观看 | 国产日韩欧美中文字幕 | 夜夜看 | 日韩午夜网站 | 九九视频在线观看 | 波多野结衣理论片 | 在线观看毛片av | 亚洲av永久无码精品一百度影院 | 激情综合五月婷婷 | 草草地址线路①屁屁影院成人 | 日韩在线一二三 | 国产99久| 狠狠天天 | 色婷婷www | 日韩精品xxx | 自拍日韩亚洲一区在线 | 一二三av | 久久国产综合 | 国产成人麻豆免费观看 |