-6

给定一张 20x30 的“方格纸”标记任何偶数 n 个单元格,以便每个单元格都有奇数个标记的相邻单元格,并且所有单元格连接在一起形成一个“片”相邻单元格被定义为直接相邻的单元格。(所有周围的单元格,不包括对角单元格)。

我在提出一个干净的算法时遇到了问题。我目前有一个,它非常混乱和令人困惑,我只知道必须有更好的方法来做到这一点,我只是不确定如何。我正在寻找一种快速实现的算法,因为我没有太多时间来编写程序,而且我们必须用 Ada 对其进行编码,这不是我的强项。我目前正在使用我这样制作的 CanMark(cell); -- 检查是否可以标记单元格。有问题(单元格);-- 检查单元格周围是否有偶数个标记的单元格。HasFix(单元格);-- 检查是否有可以标记的单元格序列以消除当前存在的问题。

我现在没有代码,但我回家后会发布。

任何帮助将不胜感激。

很抱歉不清楚。我只是在问一个方向,而不是让你为我解决我的问题。我觉得这可以使用与图形相关的算法来完成,但知道的不够多,无法确定。我现在没有我的代码,但我一定会在有能力的时候发布它。

4

1 回答 1

0

我会从小处着手,然后逐步建立。最小的(n = 1)很简单: * 这显然不起作用,因为有 0 个邻居(和偶数)。所以对于 n=1 不存在解。接下来,尝试 n=2。只有一个选择:** 这有效。现在 n=3 呢?不起作用,n = 3 没有解决方案。现在,如何添加它以使 n=4?n=6?你能形成一个图案吗?

于 2012-10-29T18:14:57.293 回答