色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Python的n皇后

錢衛國1年前8瀏覽0評論

Python是一種高級編程語言,可用于解決各種計算問題,包括數學問題。其中一個經典的數學問題是n皇后問題。這個問題涉及到如何在n×n的棋盤上放置n個皇后,使得它們不互相攻擊,即不能在同一行、同一列或同一對角線上出現兩個皇后。以下是一個Python實現的n皇后問題的例子。

def is_attacked(i, j, board):
for k in range(len(board)):
if board[i][k] == 1 or board[k][j] == 1:
return True
for k in range(len(board)):
for l in range(len(board)):
if (k + l) == (i + j) or (k - l) == (i - j):
if board[k][l] == 1:
return True
return False
def n_queens(n, board=[], row=0):
if row == n:
return board
for i in range(n):
if not is_attacked(row, i, board):
board.append([0] * n)
board[row][i] = 1
if n_queens(n, board, row+1):
return board
board.pop()
return False
n = int(input("請輸入想要放置的皇后數量:"))
board = n_queens(n)
if board == False:
print("無法放置皇后。")
else:
for row in board:
print(row)

首先定義了一個函數is_attacked,它檢查給定的坐標是否被攻擊,如果被攻擊則返回True,否則返回False。接下來定義了主函數n_queens,它開始時創建一個空棋盤,并嘗試放置皇后。如果可以放置,就遞歸地調用自己,直到完成。最后調用n_queens函數,并打印出棋盤。