日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本免费一二区 | 91免费黄视频 | 国产jizz| 4438x五月天 日吊视频 | 精品国产午夜福利在线观看 | 香蕉在线影院 | 国产探花在线观看 | 久久精品色欲国产AV一区二区 | av不卡一区二区 | 中国丰满熟妇xxxx性 | 在线免费黄色片 | 亚州精品国产精品乱码不99按摩 | 九一国产在线 | 9i在线看片成人免费 | 91精东传媒理伦片在线观看 | 特级精品毛片免费观看 | 老牛嫩草二区三区观影体验 | 成人免费视频观看 | 调教少妇视频 | 美女131爽爽爽| 精品人妻天天爽夜夜爽视频 | 少妇2做爰hd韩国电影 | 天天插天天干 | 激情五月五月婷婷 | 亚洲av成人无码久久精品老人 | 精品国产无码一区二区三区 | av私库| 制服丝袜手机在线 | 99自拍视频 | 成人福利一区二区 | 久99热 | 黄色aa视频 | 国产一区二区在线视频观看 | av免费在线观 | 91黄色小视频 | 影音先锋在线播放 | 韩国黄色片网站 | 精品久久ai | 综合一区在线 | 免费在线观看av网址 | 天堂av手机在线 | 91国自产精品中文字幕亚洲 | 精品自拍第一页 | 国产日韩欧美中文字幕 | 久久综合欧美 | 黄色视屏在线看 | 茄子视频懂你更多在线观看 | 欧美黄色xxx| 大桥未久中文字幕 | 国产11页| 免费观看黄色网页 | 成人欧美一区二区三区黑人 | 亚洲av成人一区二区国产精品 | 国产欧美一区二区三区在线 | 美国黄色一级大片 | 日韩久久高清 | 亚洲欧美一二三 | 狠狠婷婷 | 日本一区二区精品 | 成人二三区 | 韩国电影一区二区三区 | 人妻在卧室被老板疯狂进入 | 精品肉丝脚一区二区三区 | 精品一区二区无码 | 亚洲国产精品免费 | 亚洲一区二区不卡视频 | 色屁屁视频| 在线观看黄色的网站 | 亚洲伊人av| 免费无遮挡无码永久视频 | 自拍偷拍国产精品 | 日本少妇喷水视频 | 久久久国产视频 | 377人体粉嫩噜噜噜 www.av黄色 | 伊人亚洲天堂 | 日本欧美在线视频 | 欧美一级大黄 | 超碰最新在线 | 无码人妻一区二区三区一 | 日本激情在线 | 成人免费视频网址 | 日韩免费一级 | 秋葵视频污 | 中国美女一级看片 | 天天爽夜夜春 | 久久精品无码一区二区三区免费 | 日韩激情网站 | 蜜臀av午夜精品 | 一区二区三区亚洲视频 | 蜜臀av在线播放 | 在线观看国产黄 | 成人网站免费观看入口 | 人人搞人人爱 | 国产精品日日摸夜夜爽 | 熟女肥臀白浆大屁股一区二区 | 最近日韩免费视频 | 顶级尤物极品女神福利视频 | 在线观看国产黄 | 久久亚洲欧洲 |