我的讲师在他关于n-Queens问题的课程笔记中提供了一些伪代码。不幸的是,我很难理解它在Java中的实现。有问题的伪代码是:
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]>
我理解的大部分内容,但我不确定我对尖括号中的伪代码部分有什么意义。
答案 0 :(得分:4)
这里的尖括号只是说,返回了多个“对象”。
所以,例如,这段代码
return <currentBoard, 1>
一方面返回currentBoard
个对象,另一方面返回一个简单的1
。
在此代码中
board [k], success[k] = Queens(newBoard, currentRow+1, n)
你可以看到两个对象都存储在不同的变量中,登录到board[k]
,数字进入success[k]
。