問題タブ [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 に答える
1042 参照

c++ - スタックを使用したナイツ ツアー

スタックを使用して以前の動きを保存し、ナイトがスタックした場合にポップできるように、ナイツ ツアーを繰り返し解決する任務を負っています。私のプログラムは複数の POPS を作成しているようですが、パズルを解いていないようです。最初の 32 回の移動には Warnsdorffs ルールを使用し、スタックを使用して残りのスペースを解決します。

パズルが解けないように、ロジックに何か問題がありますか?

これは合法的な移動機能ですか

ここに解決機能があります

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

java - Java での騎士のツアー (再帰)

私は古典的な騎士のツアーのコードを書いています。私のコードはほとんど正しいことをしているように見えますが、それでも可能なボードに対して「不可能」と表示され、その理由がわかりません。(例: 行 1、列 3 から始まる 3 行 4 列のテーブルでは失敗します)。行と列をカウントするときは、インデックス 0 から始めます。適切に後戻りしているとは思えません。誰でも私のエラーを指摘できますか? ありがとうございました

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

c# - ナイツ ツアー アルゴリズム

私はプログラミングが初めてで、Knight's Tour を練習として解決したいと考えています。しかし、プログラムのどこにエラーがあるのか​​ わかりません。私の方法は次のとおりです。

ここで座標が繰り返される理由がわかりません。出力は次のとおりです。

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

java - ナイツツアーが4手目以降進まない

ヒューリスティックを使用して潜在的な動きを評価し、「最も難しい」ものを選択するナイツツアー問題の解決策をプログラミングしています。私は、それが 4 番目の移動まで行われ、その後、別の移動に前進または後退しないという問題に遭遇しました。最も遠いのは次のとおりです。

最終的に 8 x 8 に増やす前に、今のところ 5 x 5 ボードに取り組んでいます。最初は小規模で動作するのを見たかっただけです。有効な動きがあることは知っていますが、ヒューリスティックな比較が間違っているのか、それとも私が見ていない完全に別のものなのかはわかりません。

編集:最終作業コード

すべての助けに感謝します。私に求められたことは何でも明確にしようとします。

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

c++ - Knight's Tour 技一覧の出力 (再帰)

私は直接的な答えを探しているわけではありません。続行する方法についてのガイダンスです。私のプログラムはエラーなしでコンパイルおよび実行されるため、機能すると思いますが、動きを出力できないため、完全にはわかりません。私のプログラムに関するその他の洞察は高く評価され、歓迎されます。よろしくお願いします。

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

c++ - ランダム関数は同じ結果を取得し続けます

ナイトのツアーをランダムにシミュレートするプログラムを書いています。(その意味については、ウィキペディアを参照してください: http://en.wikipedia.org/wiki/Knight%27s_tour ) まず、チェス オブジェクトを作成します。これは基本的に、騎士の位置を示す数字を持つ 8*8 の配列です。 . チェス オブジェクトを作成し、騎士の位置をランダムに割り当てます。次に、正当な動きがなくなるまで騎士をランダムに動かし、実行された動きの数を返します。

}

興味深いことに、実行ごとに完全にランダムに実行されますが、同じ実行では同じ結果が出力され続けます。たとえば、これは main() 関数です。

そして、両方の runTour() で次のように出力します: (0 は到達していない位置を表し、1 は騎士の現在の位置を表し、9 つの位置に到達したことを表します)

そして、もう一度実行すると、runTour の両方の出力が次のようになります。

したがって、ランダム関数は異なる実行ではランダムですが、各実行では同じです。これはなぜですか?runTour() が呼び出されたときに異なるパフォーマンスを持つようにコードを変更するにはどうすればよいですか? 不躾な質問を読んでいただき、誠にありがとうございます。

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

c++ - バックトラッキングを使用したコード ナイトのツアーで出力が表示されない

このコードは出力を提供していません。8X8 サイズのマトリックスを出力する必要があります。

この関数は行列を出力します:

この関数は、x と y の範囲と、騎士がその場所を既に訪れたかどうかをチェックします。

この関数はほとんどのことを行います:

これは単なるドライバー関数です。