迷宫问题输出路径数量python
时间: 2023-09-05 17:00:32 浏览: 91
迷宫问题是一个经典的问题,目的是找到从起点到终点的所有可能路径。下面是一个使用Python解决迷宫问题并输出路径数量的示例代码:
```python
def findPaths(maze):
start = (0, 0) # 起点坐标
end = (len(maze)-1, len(maze[0])-1) # 终点坐标
def dfs(path, curr): # 深度优先搜索
if curr == end: # 当前位置为终点
paths.append(path) # 将路径添加到结果集中
return
x, y = curr
for dx, dy in [(0,1), (1,0)]: # 向右和向下尝试
nx, ny = x + dx, y + dy
if 0 <= nx < len(maze) and 0 <= ny < len(maze[0]) and maze[nx][ny] == 0:
maze[nx][ny] = 1 # 标记已访问的路径
dfs(path+[(nx, ny)], (nx, ny)) # 继续搜索
maze[nx][ny] = 0 # 回溯,将路径标记重置为0
paths = [] # 存储所有路径的结果集
dfs([start], start) # 从起点开始深度优先搜索
return len(paths) # 返回路径数量
maze = [
[0, 0, 0],
[0, 1, 0],
[0, 0, 0]
]
num_paths = findPaths(maze)
print(f"路径数量为: {num_paths}")
```
这段代码使用了深度优先搜索的方法来找到所有可能的路径。它通过递归函数`dfs`来进行搜索,在每个节点上,它判断是否可以向右或向下移动,并继续搜索。当搜索到达终点时,将当前路径添加到结果集中。最后,返回结果集的长度即为路径的数量。
以上的代码只是一个简单的示例,并可以根据具体的迷宫问题进行适当的修改和优化。
阅读全文