欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 非遞歸解決n皇后問(wèn)題的方法

 更新時(shí)間:2021年03月16日 14:06:31   作者:skrrrr__  
這篇文章主要介紹了python 非遞歸解決n皇后問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

復(fù)雜度可能高了點(diǎn)- - 也沒(méi)太注意

我想了好久 也找了好久 沒(méi)看到什么能夠用python解決n皇后問(wèn)題而且不調(diào)用遞歸的 因?yàn)槲也惶芾斫膺f歸(尤其是到n層時(shí)) 智商受限- -

import copy

def check(A,x,y):
  B=[]
  flag=True
  for i in range(len(A)):
    for j in range(len(A)):
      if A[i][j]==1:
        B.append([i,j])
  for m in range(len(B)):
    p = B[m][0]
    q = B[m][1]
    if y == q or (x-p)==abs(y-q):
      flag=False
  return flag

def queen(n):
  A=[[0 for __ in range(n)] for _ in range(n)]
  answer=[]
  for _ in range(n):
    stack=[[0,_,A]]
    while stack:
      judge = 0
      obj=stack.pop(-1)
      x=obj[0]
      y=obj[1]
      array=obj[2]
      flag=check(array,x,y)
      if not flag:
        while 1:
          if check(array, x, y):
            break
          else:
            if stack:
              b=stack.pop(-1)
              x=b[0]
              y=b[1]
              array=b[2]
            else:
              judge=1
              break
      if judge==1:
        break
      array=copy.deepcopy(array)
      array[x][y]=1
      for m in range(n):
        if m!=y and m!=y-1 and m!=y+1 and x+1<n :
          stack.append([x+1,m,array])
      # print(array)
      for j in range(len(array[n-1])):
        if array[n-1][j]==1:
          answer.append(array)
  print(len(answer))
queen(8)

answer中存放的就是最后所有的可行組合
當(dāng)前解決的是8皇后問(wèn)題
我的想法是用dfs 在每次搜索時(shí) 帶上該次搜索需要擺放的位置 x,y,以及待擺放的棋盤(pán) 即[x,y,A]
這樣不會(huì)導(dǎo)致所有的操作都在一個(gè)矩陣上進(jìn)行

到此這篇關(guān)于python 非遞歸解決n皇后問(wèn)題的方法的文章就介紹到這了,更多相關(guān)python 非遞歸n皇后內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • scrapy爬蟲(chóng)部署服務(wù)器的方法步驟

    scrapy爬蟲(chóng)部署服務(wù)器的方法步驟

    本文主要介紹了scrapy爬蟲(chóng)部署服務(wù)器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • pandas 缺失值與空值處理的實(shí)現(xiàn)方法

    pandas 缺失值與空值處理的實(shí)現(xiàn)方法

    這篇文章主要介紹了pandas 缺失值與空值處理的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例

    python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例

    本文主要介紹了python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python try except 捕獲所有異常的實(shí)例

    python try except 捕獲所有異常的實(shí)例

    今天小編就為大家分享一篇python try except 捕獲所有異常的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python數(shù)據(jù)分析之Numpy庫(kù)的使用詳解

    Python數(shù)據(jù)分析之Numpy庫(kù)的使用詳解

    NumPy(Numerical Python)是Python的一種開(kāi)源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來(lái)存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效的多(該結(jié)構(gòu)也可以用來(lái)表示矩陣(matrix)),支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)
    2021-11-11
  • python+openCV利用攝像頭實(shí)現(xiàn)人員活動(dòng)檢測(cè)

    python+openCV利用攝像頭實(shí)現(xiàn)人員活動(dòng)檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了python+openCV利用攝像頭實(shí)現(xiàn)人員活動(dòng)檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 解決pycharm安裝第三方庫(kù)失敗的問(wèn)題

    解決pycharm安裝第三方庫(kù)失敗的問(wèn)題

    這篇文章主要介紹了pycharm安裝第三方庫(kù)失敗的解決方法,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python回溯法實(shí)現(xiàn)數(shù)組全排列輸出實(shí)例分析

    python回溯法實(shí)現(xiàn)數(shù)組全排列輸出實(shí)例分析

    這篇文章主要介紹了python回溯法實(shí)現(xiàn)數(shù)組全排列輸出,以實(shí)例形式較為詳細(xì)的分析了全排列的定義及回溯法的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-03-03
  • Eclipse + Python 的安裝與配置流程

    Eclipse + Python 的安裝與配置流程

    Eclipse的安裝是很容易的。Eclipse是基于java的一個(gè)應(yīng)用程序,因此需要一個(gè)java的運(yùn)行環(huán)境(JRE)才行。(我這里主要介紹windows下的安裝)
    2013-03-03
  • python中if及if-else如何使用

    python中if及if-else如何使用

    在本篇文章里小編給大家整理的是關(guān)于python中if及if-else使用方法,需要的朋友們可以參考下。
    2020-06-06

最新評(píng)論