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,...