再帰バックトラックで生成された迷路の開始点と終了点はどうやって見つかりますか? 迷路は決してends
なので、それを理解するのは難しいようです。最初にバックトラッキングを開始するのはポイントですか?開始地点は出発地にすることができますが、時にはより良い地点があります。再帰バックトラック迷路の開始と終了をどうやって見つけますか?
答えて
あなたは、このような再帰的なバックトラックと迷路生成:
http://weblog.jamisbuck.org/2010/12/27/maze-generation-recursive-backtracking
、すべてのセルが接続されている、そして、あなたのステップを辿りせずに任意の二つのセル間を移動するための一つの方法は、正確にあります。
好きな開始点と終了点を選択できます。
迷路セルのように接続されたグラフは、すなわち、任意の頂点から他の頂点までの正確な経路が1つあるように、無向木であることに留意されたい。最も離れている2つの点を見つけて、開始点と終了点として使用できるようにするには、このツリーの直径を見つける必要があります。
ありことを行う方法の多くが、最も簡単なものは次のとおりです。
1)で開始し、それから最も遠い/頂点を見つけるために、BFSを使用してランダムな頂点を選択します。それがあなたの出発点になります。
2)BFSを使用して、開始頂点から最も遠い/ a頂点を見つけます。それがあなたの終点です。
開始点と終了点はできるだけ離れています。 Proof of correctness: Algorithm for diameter of a tree in graph theory
注意を遠く離れている点が、エッジに限らないこと:それは常に働く理由
この質問への答えは説明しています。 https://mtimmerm.github.io/webStuff/maze.html
私は、距離が最も大きい場所を見つけたいので、それを最も難しくします。 – lol
@lol、OK、私はそれのためのものを追加しました –
- 1. 再帰バックトラック迷路ジェネレータ(開始/終了)
- 2. 迷路のようなバックトラック
- 3. 再帰迷路にスタック
- 4. が再帰的に迷路
- 5. data.frameでシーケンスの開始と終了を見つける
- 6. RxJS.ajaxコールの開始と終了を見つける方法は?
- 7. Javaで開始日と終了日を見つける
- 8. どのように再帰を使用して迷路から出る?
- 9. 再帰バックトラッカー迷路生成アルゴリズムスタックループ
- 10. Cの迷路で最小限の経路を見つける
- 11. 迷路での最短経路を見つける、SQL
- 12. Cの迷路で最短経路を見つける
- 13. 迷路で最短経路を見つける
- 14. どのように再帰的な迷路ジェネレータが各ステップを描くか?
- 15. 再帰を使用してJavaで迷路を解決する
- 16. UIVideoEditorControllerが開始点と終了点を知っています
- 17. TextMateは、一致する開始タグと終了タグを見つけることができますか?
- 18. セレクト開始と終了
- 19. 開始時間と終了時間を1つの開始時間と終了時間に分割する
- 20. 開始パターンと終了パターン内のパターンを見つけて修正してファイルを更新する
- 21. 再帰バックトラック数独ソルバー
- 22. 再帰的な迷路ソルバーを最適化する方法
- 23. Androidは再帰的メソッドを使用して見つかったテキストを見つけて色付けします
- 24. 迷路を通して可能なすべてのパスを見つける
- 25. 特定の開始点と終了点の間にあるすべての可能なパスを見つける
- 26. 擬似再帰的メソッドにバックトラックを組み込む方法を見つけることができません
- 27. 2つの位置(開始/終了)ユーザコントロール
- 28. 開始日の終了日と終了日を取得する
- 29. カスタムHTMLのような構造の開始タグと終了タグを見つける
- 30. サイクルの開始と終了を見つけ、配列から周波数を計算する
各組み合わせが見つかるたびに、最大数のステップを定義してこの数を増やすことができます。 –