0

我的讲师在他的 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]>

我理解其中的大部分内容,但我不确定我要对尖括号中的伪代码部分做什么。

4

1 回答 1

4

这里的尖括号只是说,返回了多个“对象”。

因此,例如,此代码

return <currentBoard, 1>

一方面返回currentBoard对象,另一方面返回简单的1.

在这段代码中

board [k], success[k] = Queens(newBoard, currentRow+1, n)

您可以看到两个对象都存储在不同的变量中,板进入board[k],数字进入success[k]

于 2012-05-10T09:48:09.717 回答