問題タブ [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.
c++ - スタックを使用したナイツ ツアー
スタックを使用して以前の動きを保存し、ナイトがスタックした場合にポップできるように、ナイツ ツアーを繰り返し解決する任務を負っています。私のプログラムは複数の POPS を作成しているようですが、パズルを解いていないようです。最初の 32 回の移動には Warnsdorffs ルールを使用し、スタックを使用して残りのスペースを解決します。
パズルが解けないように、ロジックに何か問題がありますか?
これは合法的な移動機能ですか
ここに解決機能があります
java - Java での騎士のツアー (再帰)
私は古典的な騎士のツアーのコードを書いています。私のコードはほとんど正しいことをしているように見えますが、それでも可能なボードに対して「不可能」と表示され、その理由がわかりません。(例: 行 1、列 3 から始まる 3 行 4 列のテーブルでは失敗します)。行と列をカウントするときは、インデックス 0 から始めます。適切に後戻りしているとは思えません。誰でも私のエラーを指摘できますか? ありがとうございました
c# - ナイツ ツアー アルゴリズム
私はプログラミングが初めてで、Knight's Tour を練習として解決したいと考えています。しかし、プログラムのどこにエラーがあるのか わかりません。私の方法は次のとおりです。
ここで座標が繰り返される理由がわかりません。出力は次のとおりです。
java - ナイツツアーが4手目以降進まない
ヒューリスティックを使用して潜在的な動きを評価し、「最も難しい」ものを選択するナイツツアー問題の解決策をプログラミングしています。私は、それが 4 番目の移動まで行われ、その後、別の移動に前進または後退しないという問題に遭遇しました。最も遠いのは次のとおりです。
最終的に 8 x 8 に増やす前に、今のところ 5 x 5 ボードに取り組んでいます。最初は小規模で動作するのを見たかっただけです。有効な動きがあることは知っていますが、ヒューリスティックな比較が間違っているのか、それとも私が見ていない完全に別のものなのかはわかりません。
編集:最終作業コード
すべての助けに感謝します。私に求められたことは何でも明確にしようとします。
c++ - Knight's Tour 技一覧の出力 (再帰)
私は直接的な答えを探しているわけではありません。続行する方法についてのガイダンスです。私のプログラムはエラーなしでコンパイルおよび実行されるため、機能すると思いますが、動きを出力できないため、完全にはわかりません。私のプログラムに関するその他の洞察は高く評価され、歓迎されます。よろしくお願いします。
c++ - ランダム関数は同じ結果を取得し続けます
ナイトのツアーをランダムにシミュレートするプログラムを書いています。(その意味については、ウィキペディアを参照してください: http://en.wikipedia.org/wiki/Knight%27s_tour ) まず、チェス オブジェクトを作成します。これは基本的に、騎士の位置を示す数字を持つ 8*8 の配列です。 . チェス オブジェクトを作成し、騎士の位置をランダムに割り当てます。次に、正当な動きがなくなるまで騎士をランダムに動かし、実行された動きの数を返します。
}
興味深いことに、実行ごとに完全にランダムに実行されますが、同じ実行では同じ結果が出力され続けます。たとえば、これは main() 関数です。
そして、両方の runTour() で次のように出力します: (0 は到達していない位置を表し、1 は騎士の現在の位置を表し、9 つの位置に到達したことを表します)
そして、もう一度実行すると、runTour の両方の出力が次のようになります。
したがって、ランダム関数は異なる実行ではランダムですが、各実行では同じです。これはなぜですか?runTour() が呼び出されたときに異なるパフォーマンスを持つようにコードを変更するにはどうすればよいですか? 不躾な質問を読んでいただき、誠にありがとうございます。
c++ - バックトラッキングを使用したコード ナイトのツアーで出力が表示されない
このコードは出力を提供していません。8X8 サイズのマトリックスを出力する必要があります。
この関数は行列を出力します:
この関数は、x と y の範囲と、騎士がその場所を既に訪れたかどうかをチェックします。
この関数はほとんどのことを行います:
これは単なるドライバー関数です。