20190915學習PYTHON 八皇后問題

2021-09-27 03:28:31 字數 1101 閱讀 8461

20190915學習python-八皇后問題

剛剛開始學習python。先試完成乙個經典的深度優先演算法,就是八皇后問題。

一邊學一邊查,完成了**。

# python八皇后問題求解 2019-9-15

n=8 #數量

nsolve=0 #解的個數

a=[0]*n #用於儲存各行上皇后的位置,使用列表

#檢查乙個位置第p行,第i列是否可放(檢查上面的各行位置)

def canput(p,i):

for j in range(p): #檢查上面的p-1行

if a[j]==i or a[j]-i==p-j or i-a[j]==p-j: return false

return true #可放

#尋找第p行的下乙個可行位置,如果沒有,則返回-1

def findpos(p):

for i in range(a[p]+1,n): #在下乙個位置到最後進行探索

if canput(p,i): return i

return -1 #未找到位置,返回-1

#求解def solve():

global nsolve

a[0]=-1 #確定第乙個皇后的位置,為保證演算法能正確執行,設定了-1

irow=0 #改變第幾行的位置

while true:

#找到第n行的下乙個可能位置

i = findpos(irow)

if i<0 : #未找到

irow-=1

if irow<0: return #已完成搜尋

else:

a[irow]=i

if (irow==n-1): #找到解

nsolve+=1

print (nsolve ,a)

else:

irow+=1 #試驗下一行

a[irow]=-1 #初始值

#主程式

solve()

print (nsolve,"個解")

說說感受。比之前的vb,c#等語言簡潔,由於沒有了語句塊的結束標記,常常感覺不很習慣。

不過還是很不錯的,簡潔地實現了演算法。

pytho學習旅途

轉換當前格式日期 dt datetime.datetime.strptime dtstr,y m d print dt 切片獲取年份 輸入一行字元,分別統計其中英文本母,空格,數,和其他字元數 import string s ww m 23 4j 初始化個數 列印楊輝三角的前十行 triange 1...

pytho指令碼學習

http狀態碼獲取 2.1響應狀態碼 2.2測試 https 2.3http協議 2.3.1埠80 http1.1 多次可以乙個連線 2.3.2明文傳輸 2.4https 443埠加密傳輸 2.5請求方法 2.5.2http1.1 put delete trace conmect patch增加了檔...

元組 datawhale組隊學習python基礎

元組 定義語法為 元素1,元素2,元素n 與列表不同,元組是 列表是。t1 1 10.31 python t2 1,10.31 python print t1,type t1 1,10.31,python print t2,type t2 1,10.31,python tuple1 1 2,3 4,...