一個(gè)含有n個(gè)點(diǎn)的迷宮是一棵樹(shù)(一個(gè)任意兩點(diǎn)之間都恰好有一條路徑的無(wú)向圖)。每個(gè)點(diǎn)都有一定的概率成為這個(gè)迷宮的入口和出口。
從這個(gè)迷宮走出去的方法是從入口開(kāi)始進(jìn)行深度優(yōu)先搜索。如果當(dāng)前有多個(gè)移動(dòng)方案,那么等概率的選擇移動(dòng)方案中的一個(gè)。DFS的過(guò)程為以下的偽代碼:
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++;