日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中八皇后如何运算的_python解决八皇后算法

發(fā)布時間:2025/3/11 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中八皇后如何运算的_python解决八皇后算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

展開全部

global col #定義一些全局變量

global row

global pos_diag

global nag_diag

global count

def output():

''' 輸出一種有效結(jié)果

'''

global count

print row

count += 1

def do_queen(i):

''' 生成所有正確解

@param i: 皇后的數(shù)目

'''

for j in range(0, 8): #依次62616964757a686964616fe59b9ee7ad9431333335323462嘗試0~7位置

if col[j] == 1 and pos_diag[i-j+7] == 1 and nag_diag[i+j] == 1: #若該行,正對角線,負對角線上都沒有皇后,則放入i皇后

row[i] = j

col[j] = 0 #調(diào)整各個列表狀態(tài)

pos_diag[i-j+7] = 0

nag_diag[i+j] = 0

if i < 7:

do_queen(i+1) #可遞增或遞減

else:

output() #產(chǎn)生一個結(jié)果,輸出

col[j] = 1 #恢復各個列表狀態(tài)為之前的

pos_diag[i-j+7] = 1

nag_diag[i+j] = 1

if __name__ == '__main__':

col = [] #矩陣列的列表,存儲皇后所在列,若該列沒有皇后,則相應置為1,反之則0

row = [] #矩陣行的列表,存放每行皇后所在的列位置,隨著程序的執(zhí)行,在不斷的變化中,之間輸出結(jié)果

pos_diag = [] #正對角線,i-j恒定,-7~0~7,并且b(i)+7統(tǒng)一到0~14

nag_diag = [] #負對角線,i+j恒定,0~14

count = 0

for index in range(0, 8): #一些初始化工作

col.append(1)

row.append(0)

for index in range(0, 15):

pos_diag.append(1)

nag_diag.append(1)

do_queen(0) #開始遞歸,先放一個,依次遞增,反過來,從7開始遞減也可

print 'Totally have %d solutions!' % count

輸出:

[0, 4, 7, 5, 2, 6, 1, 3]

[0, 5, 7, 2, 6, 3, 1, 4]

[0, 6, 3, 5, 7, 1, 4, 2]

[0, 6, 4, 7, 1, 3, 5, 2]

[1, 3, 5, 7, 2, 0, 6, 4]

[1, 4, 6, 0, 2, 7, 5, 3]

[1, 4, 6, 3, 0, 7, 5, 2]

[1, 5, 0, 6, 3, 7, 2, 4]

[1, 5, 7, 2, 0, 3, 6, 4]

[1, 6, 2, 5, 7, 4, 0, 3]

[1, 6, 4, 7, 0, 3, 5, 2]

[1, 7, 5, 0, 2, 4, 6, 3]

[2, 0, 6, 4, 7, 1, 3, 5]

[2, 4, 1, 7, 0, 6, 3, 5]

[2, 4, 1, 7, 5, 3, 6, 0]

[2, 4, 6, 0, 3, 1, 7, 5]

[2, 4, 7, 3, 0, 6, 1, 5]

[2, 5, 1, 4, 7, 0, 6, 3]

[2, 5, 1, 6, 0, 3, 7, 4]

[2, 5, 1, 6, 4, 0, 7, 3]

[2, 5, 3, 0, 7, 4, 6, 1]

[2, 5, 3, 1, 7, 4, 6, 0]

[2, 5, 7, 0, 3, 6, 4, 1]

[2, 5, 7, 0, 4, 6, 1, 3]

[2, 5, 7, 1, 3, 0, 6, 4]

[2, 6, 1, 7, 4, 0, 3, 5]

[2, 6, 1, 7, 5, 3, 0, 4]

[2, 7, 3, 6, 0, 5, 1, 4]

[3, 0, 4, 7, 1, 6, 2, 5]

[3, 0, 4, 7, 5, 2, 6, 1]

[3, 1, 4, 7, 5, 0, 2, 6]

[3, 1, 6, 2, 5, 7, 0, 4]

[3, 1, 6, 2, 5, 7, 4, 0]

[3, 1, 6, 4, 0, 7, 5, 2]

[3, 1, 7, 4, 6, 0, 2, 5]

[3, 1, 7, 5, 0, 2, 4, 6]

[3, 5, 0, 4, 1, 7, 2, 6]

[3, 5, 7, 1, 6, 0, 2, 4]

[3, 5, 7, 2, 0, 6, 4, 1]

[3, 6, 0, 7, 4, 1, 5, 2]

[3, 6, 2, 7, 1, 4, 0, 5]

[3, 6, 4, 1, 5, 0, 2, 7]

[3, 6, 4, 2, 0, 5, 7, 1]

[3, 7, 0, 2, 5, 1, 6, 4]

[3, 7, 0, 4, 6, 1, 5, 2]

[3, 7, 4, 2, 0, 6, 1, 5]

[4, 0, 3, 5, 7, 1, 6, 2]

[4, 0, 7, 3, 1, 6, 2, 5]

[4, 0, 7, 5, 2, 6, 1, 3]

[4, 1, 3, 5, 7, 2, 0, 6]

[4, 1, 3, 6, 2, 7, 5, 0]

[4, 1, 5, 0, 6, 3, 7, 2]

[4, 1, 7, 0, 3, 6, 2, 5]

[4, 2, 0, 5, 7, 1, 3, 6]

[4, 2, 0, 6, 1, 7, 5, 3]

[4, 2, 7, 3, 6, 0, 5, 1]

[4, 6, 0, 2, 7, 5, 3, 1]

[4, 6, 0, 3, 1, 7, 5, 2]

[4, 6, 1, 3, 7, 0, 2, 5]

[4, 6, 1, 5, 2, 0, 3, 7]

[4, 6, 1, 5, 2, 0, 7, 3]

[4, 6, 3, 0, 2, 7, 5, 1]

[4, 7, 3, 0, 2, 5, 1, 6]

[4, 7, 3, 0, 6, 1, 5, 2]

[5, 0, 4, 1, 7, 2, 6, 3]

[5, 1, 6, 0, 2, 4, 7, 3]

[5, 1, 6, 0, 3, 7, 4, 2]

[5, 2, 0, 6, 4, 7, 1, 3]

[5, 2, 0, 7, 3, 1, 6, 4]

[5, 2, 0, 7, 4, 1, 3, 6]

[5, 2, 4, 6, 0, 3, 1, 7]

[5, 2, 4, 7, 0, 3, 1, 6]

[5, 2, 6, 1, 3, 7, 0, 4]

[5, 2, 6, 1, 7, 4, 0, 3]

[5, 2, 6, 3, 0, 7, 1, 4]

[5, 3, 0, 4, 7, 1, 6, 2]

[5, 3, 1, 7, 4, 6, 0, 2]

[5, 3, 6, 0, 2, 4, 1, 7]

[5, 3, 6, 0, 7, 1, 4, 2]

[5, 7, 1, 3, 0, 6, 4, 2]

[6, 0, 2, 7, 5, 3, 1, 4]

[6, 1, 3, 0, 7, 4, 2, 5]

[6, 1, 5, 2, 0, 3, 7, 4]

[6, 2, 0, 5, 7, 4, 1, 3]

[6, 2, 7, 1, 4, 0, 5, 3]

[6, 3, 1, 4, 7, 0, 2, 5]

[6, 3, 1, 7, 5, 0, 2, 4]

[6, 4, 2, 0, 5, 7, 1, 3]

[7, 1, 3, 0, 6, 4, 2, 5]

[7, 1, 4, 2, 0, 6, 3, 5]

[7, 2, 0, 5, 1, 4, 6, 3]

[7, 3, 0, 2, 5, 1, 6, 4]

Totally have 92 solutions!

本回答由提問者推薦

已贊過

已踩過<

你對這個回答的評價是?

評論

收起

總結(jié)

以上是生活随笔為你收集整理的python中八皇后如何运算的_python解决八皇后算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。