一个含有n个点的迷宫是一棵树(一个任意两点之间都恰好有一条路径的无向图)。每个点都有一定的概率成为这个迷宫的入口和出口。
从这个迷宫走出去的方法是从入口开始进行深度优先搜索。如果当前有多个移动方案,那么等概率的选择移动方案中的一个。DFS的过程为以下的伪代码:
DFS(x)
if x == exit vertex then
finish search
flag[x] < - TRUE
random shuffle the vertices' order in V(x) // here all permutations have equal probability to be chosen
for i < - 1 to length[V] do
if flag[V[i]] = FALSE then
count++;
DFS(y);
count++;