JavaScript 8皇后问题
2015-06-29 19:54
507 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lonelym_IT/article/details/46685975
分享JavaScript回溯法解决8皇后问题。
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。
var queens = [0, 0, 0, 0, 0, 0, 0, 0]; var counter = 0; function noSameRow(queens, col, pos) { for(var i=0; i<col; ++i) { if(queens[i] === pos) { return false; } } return true; } function noSameDia(queens, col, pos) { for(var i=0; i<col; ++i) { if(Math.abs(pos-queens[i]) === col-i) { return false; } } return true; } function isSafe(queens, col, pos) { return (noSameRow(queens, col, pos) && noSameDia(queens, col, pos)); } function place(queens, col) { if(col === queens.length-1) { for(var i=0; i<queens.length; ++i) { if(isSafe(queens, col, i)) { queens[col] = i; ++counter; print("0,1,2,3,4,5,6,7"); print(queens); } } } else { for(var pos=0; pos<queens.length; ++pos) { if(isSafe(queens, col, pos)) { queens[col] = pos; place(queens, col+1); } } } } place(queens, 0); print("counter: " + counter);
参考自微博@阅千人而惜知己
相关文章推荐
- javascript求解N皇后问题封装
- JavaScript实现N皇后问题算法谜题解答
- JavaScript实现N皇后问题算法谜题解答
- N皇后问题算法
- N皇后问题
- 关于Javascript 的 prototype问题。
- 关于JavaScript中this的指向问题
- Javascript解决浏览器兼容性问题
- javascript---遇到关于this的相关问题(解决this)(持续更新中...)
- JavaScript中一个字符串变量突然变成了false的问题解析
- 写程序输出8皇后问题的所有排列,要求使用非递归的深度优先遍历。
- Javascript跨域问题
- javascript弹出窗口问题总结
- javascript中作用域,优先级等等问题, 求助中。。。。。。。。
- JAVASCRIPT字符串与数字相连的问题
- N皇后问题
- 八皇后变形之四皇后问题
- CODEVS 1295 N皇后问题 (DFS)
- hdu1116回溯N皇后问题
- 详解Javascript中的Url编码/解码,表单提交中网址编码问题