八皇后问题的python代码
来源:互联网 发布:中国经济现状数据 编辑:程序博客网 时间:2024/05/16 06:38
回溯法求八皇后问题
#判断是否冲突def is_conflict(a,n): flag=0 for i in range(0,n): if a[i]==a[n] or abs(a[i]-a[n])==n-i: flag=1 break return flagdef print_board(a,n): for i in range(n): for j in range(n)[0:a[i]]: print "X", print "Q", for j in range(n)[(a[i]+1):]: print "X", print '\n' print "-----------------"#输出结果def queen(n): count=0 a=[0]*n i=0 while True: if a[i]<n: # 如果皇后的位置尚未超出棋盘范围,需要检查第i行的皇后是否与前i-1行的皇后冲突 if is_conflict(a,i): a[i]+=1 #如果冲突,尝试下一列 continue if i>=n-1: #如果已经到最后一行,则可输出一个结果 count+=1 #print_board(a,n) a[n-1]+=1 #并尝试前一行的后一个情况 continue i+=1 continue else: #皇后的位置已经超出棋盘范围 ,那么退回上一行,皇后退回前一行 a[i]=0 i-=1 if i<0: #没有行可退,结束 return count a[i]+=1 continue
0 0
- 八皇后问题的python代码
- python-八皇后问题
- Python八皇后问题
- python 八皇后问题
- python-八皇后问题
- Python版的八皇后问题
- “八皇后问题”的 Python 语言解法
- 八皇后的问题
- 八皇后的问题
- 八皇后的问题
- 八皇后问题精炼代码
- 八皇后问题代码详解
- 八皇后问题c++ 代码
- 八皇后问题递归代码
- 八皇后问题java代码
- 八皇后问题 java代码
- 八皇后问题Python解法
- Python版八皇后问题
- UVA247- Calling Circles
- Java abstract修饰符
- Reading and modify OS X plist file by command line
- 捕鱼修改游戏进出记录
- Cadence Orcad 无法启动出现Capture.exe找不到cdn_sfl401as.dll问题
- 八皇后问题的python代码
- hdoj1162 Eddy's picture
- 直接插入排序的三种实现
- HDU4407 Sum【容斥原理】
- MFC 带标题栏 不带标题栏全屏显示
- 块级元素的margin合并\共存实验
- android的recovery模式
- android源码编译apk集成第三方so库
- iOS 获取本地设备相关信息,如:IP地址