問題タブ [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++ - 再帰を使用した騎士のツアーアルゴリズム
ナイトのツアー問題を解決するコードを書いています。私はこのコードを書きましたが、今は少し混乱しています。何度か読み直して分析しましたが、問題の原因となるエラーを見つけることができませんでした。どんな助けにも感謝します。
たとえば、i_kinghtour(0,0,1) の場合:
0 0 0 0 0 0 0 0 0 0
0 0 0 0
0
0 0
0 0 0
そして、私は取得する必要があります:
1 20 17 12 3
16 11 2 7 18
21 24 19 4 13
10 15 6 23 8
25 22 9 14 5
java - Java Knight のツアーの宿題
私はこの宿題にいくつか問題があります。ナイト チェスの駒を使用し、ユーザーがボード上の開始位置を取り、ボード上のすべての位置に触れることができるかどうかを確認することになっています。ボードは私の教授によって既にプログラムされているので、問題ないはずです。takeStep() と runTour() をコーディングすることになっています。それを実行する方法がわかりません。どんな洞察も役に立ちますので、よろしくお願いします。
c++ - バックトラックを使用したナイトツアー
バックトラッキングを使用してC ++でナイトツアーのプログラムを開発しています これが私のコードです:
問題は、このアプリは最初の動きに対してのみ機能し、ゲームを終了する前にスタックが空になることです。どこが悪いのかわからない!?
問題は何ですか?
c - 騎士のツアーアルゴリズム
したがって、このアルゴリズムを作成する必要があり (このバージョンは、ナイトが開始したのと同じ場所で終了する必要はありません)、機能するようになりましたが、遅すぎます。サイズ= 8の開始位置x = 0およびy = 0で動作しますが、xとyをたとえば2と4に操作しようとすると、数分後に終了しません。誰でも助けることができますか?
c++ - バックトラッキングの代替とプログラムの高速化
私はナイツ ツアーの問題を解決しようとしていましたが、ちょうどそれを作ったところです。今、私はそれを改善したいと思います。開始値を取り、移動するためのステップバイステップの指示を出力します(コマンドライン出力で)。
今私が使用したテクニックは、最初にビデオで与えられた解決策に従ってボードを4つのブロックに分割し(ここではwww.youtube.com%2Fwatch%3Fv%3DdWM5pKYZCHw&b=28)、ボード全体を4つに分割しました。ボックスのシステム。
解決策では、速度を大幅に低下させる2つの異なる可能性を決定するために、多くのバックトラックを行う必要があります. また、技術を改善するためのその他の提案。ここにコードの一部があります(ボード全体で騎士を動かす関数)
このテクニックの詳細を確認するには、私の以前の質問 を確認してください。
また、可能であれば、n*n パズルの解決策を得るためにそれを変更する方法も教えてください。
java - ナイツ ツアー バックトラッキング Java
Javaでバックトラックと再帰を使用して4x4ボードでナイツツアーの問題を解決しようとしていますが、出力で次のステップシーケンスが得られます。
1 13 16 15
10 7 4 14
5 2 11 8
12 9 6 3
右上隅では、14、15、16 が互いに隣り合っていますが、これは不可能です。これは、騎士がチェス盤上を L 字型に移動するためです。誰かがこれを解決するのを手伝ってくれたらありがたいです。
コード:
java - 誰かこの騎士のツアー コードを教えてくれませんか?
コードは私には問題ないように思えますが、出力が短すぎて、はいのはずの答えがいいえです (a,0 から始めて、ナイトはボード全体をツアーできるはずです)。
ちなみに、私のpositionsVisted
配列が [9][9] になっているのは、出力と一致するように値を 1 ~ 8 にしたかったからです。
これはプログラムの出力です: