私は騎士のツアーを解決するのに役立つ方法を持っています。私は解決策を見つけたら直ちに私の再帰を止めたいと思っています。スカラーの再帰はありません
最終的には、ほぼ20種類のソリューションが返されます。私は下に私のコードを追加しました、誰かがここで何が間違っていることを指摘してくださいできますか?おそらくあなたの問題ザッツ
def myRecursion(dimension: Int, solution: Solution) : Option[Solution] = {
if (dimension * dimension == solution.size) {
println("Stop it now")
Some(solution)
} else {
val movesAvailable = possibleMoves(dimension, solution, solution.head)
val bestm = bestMoves(movesAvailable)
if (bestm.isDefined) {
myRecursion(dimension, bestm.get ::: solution)
} else {
movesAvailable.foreach{ x =>
if(myRecursion(dimension, x:: solution).isDefined){
x::solution;
}
}
None
}
}
}
@RameshMaharjan残念ながら、それは私の問題を解決しませんでした。ソリューションが含まれているときに停止しようとしています(次元*次元)要素数 – Siyavash
私の分析ミス、次元は決して増加することはありませんが、ソリューションサイズは決してありません。だからその反対の方向。ディメンションの変更* dimension == solution.size to dimension * dimension <= solution.size –
@RameshMaharjan残念ながら、 "=="と同じ出力を表示します。 – Siyavash