计算N皇后函数产生的解的个数。

2024-10-02 00:40:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个函数,它可以产生N皇后问题的所有可能的解。它接受来自用户的整数输入,即表的维度。一、 如果4个可能的解决方案,用户将输入4xe表4。当n=4为输入时,输出如下所示:

[1, 3, 0, 2]
[2, 0, 3, 1]

这是我使用的函数:

^{pr2}$

在这个函数的某个地方,我需要实现一个count变量,该变量将在最后输出解决方案的数量。例如,如果输入4,它将输出2,因为有两个解决方案:

[1, 3, 0, 2]
[2, 0, 3, 1]
2

我尝试了以下方法,但没用:

count = 0
for i in partialSolution:
    count+=1
print(count)

因为它不在函数本身内,所以我得到一个错误消息,说partialSolution没有定义。我不知道如何在函数本身中实现这样的东西。在


Tags: 方法函数用户infor数量count地方
1条回答
网友
1楼 · 发布于 2024-10-02 00:40:01

假设您的代码是正确的,您可以尝试返回函数的计数,基本情况是当它实际打印解决方案时,像这样(小心,未经测试的代码):

def nQueens(partialSolution, n):
    allPositions = getPositions(partialSolution, n)
    if len(partialSolution) == n:
        print(partialSolution)
        return 1
    else:
        ctr = 0
        for item in allPositions: 
            partialSolution.append(item)
            ctr += nQueens(partialSolution, n)
            partialSolution.pop()

        return ctr

基本情况返回一个,因为它打印了一个有效的解决方案,然后,在执行递归调用之后,在转到递归的下一个分支之前,将迄今为止找到的解决方案的数量相加。在

相关问题 更多 >

    热门问题