問題タブ [knights-tour]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
220 参照

prolog - リストを最短から最長に並べ替える

私は最近プロローグを手に入れ、有名なパズル Knight's Tour [ここにあります] の解決策を見つけるプログラムを作成しようとしています。

Warnsdorff アルゴリズムを使用して、チェス盤の特定の場所から行うことができるすべての可能な動きを見つけようとしています。上記の動きを見つけるのに苦労しました。

これまでの私のコードは次のとおりです

可能な移動の数は、それらをすべて見つけた後にのみカウントされるため、リストは必要な方法でソートされていません。

たとえば、この入力で

結果は

しかし、私は得る

誰かが私が得るNewXのを手伝ってくれるなら、NewYそれは素晴らしいことです

0 投票する
1 に答える
374 参照

c# - ナイツツアー再帰

誰かが私の間違いを見つけることができますknight's tour codeか? 見つからないようで、スタック オーバーフローではなく、無限ループが発生しています。

そしてそれを呼び出す:

jmp複数の試行を実行していて、たどったパスも表示したいので、変数が必要です。ありがとう!

0 投票する
1 に答える
174 参照

c - ナイトツアーのバックトラックで無限ループに陥る

このコードは、バックトラッキングを使用して解決しているナイト ツアーの問題で無限ループに陥っています。配列を使用して、方向x[8] and y[8]の可能な動きにアクセスしました。また、すでに解決された回答と同じように、8これらxと配列を形成しました。yしかし、まだ何かが欠けていて、何がうまくいかないのか理解できません。

0 投票する
1 に答える
74 参照

c++ - Recursive Breath First Search は最初の実行では機能しますが、次の実行では機能しません

CodeReviewで提示されたソリューションは、CentOS 7.1 で正常に動作します。私はそれをWindows 7、Visual Studio 2012に移植しようとしました.VS 2012がコードコンパイルをサポートしていないC++ 11の部分を可能にするためにマイナーな編集を行い、ループの最初の実行が正しく機能します. テスト ケースの残りの実行は失敗し、実行のたびに不正確さが増していきます。

この問題のコードはgithubにあります。

0 で計算を終了 /* ここの問題は問題に含まれていません */
経過時間: 0.202012 秒

すべてのパス検索の起点は A3 でした すべてのパス検索
の終点は H4
でした ボードの各エッジの正方形の数は 8 です
検索をさらに制限するために使用されたスライス方法論は、行または列への繰り返しの訪問ではありませんでした。
結果のパスは 5 つです
試行されたパスは 323 ありました
パスの長さの平均は 4.8 です
パスの長さの中央値は 4 です
最長のパスは 6 回の移動
です 最短のパスは 4 回の移動です

問題は、以下にリストされているファイルのいずれかにあると思います。私はこれを 2 日間デバッグしてきました。

CRKnightMoves_Cpp2.cpp

KnightMovesImplementation.h

KnightsImplementation.cpp

KMMoveFilters.h

KMMoveFilters.cpp

0 投票する
0 に答える
978 参照

c# - C# を使用した Knights Tour の実装

Knights Tour の問題を C# で実装しようとしています。

このリンクの C++ コードを参照します。

http://www.geeksforgeeks.org/backtracking-set-1-the-knights-tour-problem/

私の C# コード (C++ コードとほぼ同じ) が同じ結果を生成しない理由を理解しようと、何時間も頭を悩ませてきました。なんらかの理由で、実際に無限ループに陥っていると思います。

C# コードは次のとおりです。

Main メソッドでの実行:

0 投票する
2 に答える
667 参照

algorithm - 騎士のツアー、A から B までの歩数を数えます

騎士は (a,b) の位置にあり、(c,d) にいる王を取る必要があります。どうやって:

A: ツアーを視覚化する

B: (a,b) から (c,d) に移動するために必要な最小ステップを計算します。

私が見つけた実装は、基本的にチェス盤上の騎士の一連の動きであり、騎士はすべての正方形を 1 回だけ訪れますが、より具体的に特定の場所に足を踏み入れたいと考えています。

どのようなアルゴリズムまたは戦略を探す必要がありますか?

私はpythonの使用を考えています

0 投票する
2 に答える
119 参照

java - ナイトのツアー再帰は解決策を見つけられません

ナイトのツアーは前に頼まれたのですが、いまだに困っています。チェス盤のすべてのセルを訪問する再帰を試みていますが、52 回を超える訪問はできません。その後、バックトラックし、訪問したセルの数がカウントダウンします。これが私のコードです:

0 投票する
1 に答える
110 参照

algorithm - Haskell: 55 を超えるステップを試行すると、Knight ツアーが終了しない?

これは私のコードです:

終わらない理由を知っていますか (もっと待てるかも...)? 同じブルートフォースアルゴリズムを実装するための他のソリューションがありますが、より高速に動作しますか?