我的讲师在其课程说明中就N-Queens问题提供了一些假装。 不幸的是,我有一点时间难以理解,在 Java执行。 The pseudocode in question is:
Queens (currentBoard , currentRow, n) :
if currentRow == n:
if currentBoard is legal:
return <currentBoard, 1>
else:
return <currentBoard, 0>
else:
for k = 1..n:
newBoard = currentBoard + <currentRow+1, k>
board [k], success[k] = Queens(newBoard, currentRow+1, n)
kmax = index of max(success[k])
return <board[kmax], success[kmax]>
我的理解是,但我不相信我所说的话与正文法中置于角圈的部分有关。