八皇后问题实现

虽然用的python写的,但是还是用的c语言的思想。

# -*- coding: utf-8 -*-
"""
Created on Tue Feb 02 16:17:50 2016

@author: kyle
"""
import matplotlib.patches as mpatches
import matplotlib.patheffects as PathEffects
import matplotlib.pyplot as plt


def outputResult(result,length):
        global solve_count;
        solve_count=solve_count+1;
        #drawChessOneShot(result,length,str(solve_count))
        print result
           # print str(result(i))+','
        print solve_count
def Constraint(data,length):
    
    #print data,length
    for i in range(0,length):#判断同一列是否冲突
        if data[i]==data[length] or abs(data[i]-data[length])==abs(i-length) :
            return False
 
    #print 'true'
    return True
def eightQuenuenIter(solveData, depth):
 
    if depth_max==depth:
       print 's'
       outputResult(solveData,depth)
       return
    for col in range(0,len_max):
        solveData[depth]=col
       
        if Constraint(solveData,depth)==True:
           eightQuenuenIter(solveData,depth+1)
def main():
    
    eightQuenuenIter(solveData,0)
   # drawChessOneShot(1,1)

if __name__  =='__main__' :
    solve_count=0
    depth_max=8
    len_max=8
    main();
    print solve_count


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值