![]() |
1
2
首先,让我描述一下我是如何理解这个程序的工作原理的。因为如果我们对它应该如何工作有不同的想法,那么理解它的实现就很难了。 假设我们已经有了1-列和2-列问题的第一个解决方案:
对于3-Column问题,我们从2-Column问题的第一个解决方案开始,然后为皇后可以放置在第三列中的8个可能行生成8个可能的板位置:
通过扩展2列解决方案,将邻接位置调用8次以创建要测试的位置。(一个可能的混淆原因是,邻接位置的前两个参数是row然后col,但传统上位置会col然后row)。
然后对这些进行过滤,给出扩展第一个2柱解决方案的3柱问题的四个解决方案。
正如你所看到的,我的邻接位置与你的完全不同,它需要一个列表列表,并返回一个更长的列表列表(板上皇后的坐标)。 我发现很难理解我自己的解决方案,目前我很难理解你的解决方案是如何运作的。如果我的描述中的图像/算法部分与你的解决方案相匹配,并且只是位置的表示/实现不同,那么如果你能描述一下你是如何表示这些位置的,这可能会很有用。例如,您希望看到什么,而不是:
|
![]() |
2
0
问题是找到bug,问题几乎成功了。在问题中,我们得到了:
解释这一点,以及所讨论的错误,并不难。所确定的问题是:
要了解出了什么问题,我们需要看看
|
![]() |
David J. · 这个基本的scheme函数有什么问题 2 年前 |
![]() |
Asher · 如何使用DrRacket遵循简单方案手册 6 年前 |
![]() |
Flux · 如何从MIT方案访问环境变量? 6 年前 |
![]() |
Adam Morad · 方案反转值 6 年前 |
![]() |
Adam Morad · 方案更改树值 6 年前 |
![]() |
lightning_missile · 词法范围和共享对象 6 年前 |