Algorithm 为此编写的最快算法?

Algorithm 为此编写的最快算法?,algorithm,graph,ada,Algorithm,Graph,Ada,给定一张20x30的“图表纸”,标记任意偶数个单元格,使每个单元格都有奇数个标记的相邻单元格,并使所有单元格连接成一个“块” 相邻单元定义为直接相邻单元。所有周围的单元格,不包括对角单元格 我在想出一个干净的算法时遇到了一个问题。我现在有一个,它非常混乱和混乱,我只知道必须有一个更好的方法来做,我只是不知道如何。我正在寻找一个快速实现的算法,因为我没有太多的时间来做这个程序,我们必须用Ada编码,这不是我的强项。 我现在正在利用我这样做的, CanMarkcell;-检查是否可以标记单元格。 H

给定一张20x30的“图表纸”,标记任意偶数个单元格,使每个单元格都有奇数个标记的相邻单元格,并使所有单元格连接成一个“块” 相邻单元定义为直接相邻单元。所有周围的单元格,不包括对角单元格

我在想出一个干净的算法时遇到了一个问题。我现在有一个,它非常混乱和混乱,我只知道必须有一个更好的方法来做,我只是不知道如何。我正在寻找一个快速实现的算法,因为我没有太多的时间来做这个程序,我们必须用Ada编码,这不是我的强项。 我现在正在利用我这样做的, CanMarkcell;-检查是否可以标记单元格。 HasProblemcell;-检查单元格周围是否有偶数个标记单元格。 HasFixcell;-检查是否存在可以标记的单元格序列,以消除当前存在的问题

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

任何帮助都将不胜感激


对不起,我不清楚。我只是想找个方向,而不是你帮我解决问题。我觉得这可以用一个与图形相关的算法来完成,但我还不太清楚。我现在没有带代码,但我一定会在有能力的时候发布它。

我会从小处开始,逐步积累。最小的n=1为: * 这显然不起作用,因为有0个邻居和偶数个邻居。因此,不存在n=1的解。接下来,尝试n=2。只有一个选择: ** 这很有效。 那么n=3呢?不起作用,n=3没有解决方案。
现在,你怎么加上它,使n=4?n=6?你能形成一个模式吗?

嗨,Shelby115,StackOverflow是来帮助你解决编程问题的,但它绝对不是一个你可以要求用户为你遇到的问题提交完全有效的解决方案的网站。您需要提供一个代码示例,并关注您遇到问题的特定领域。如前所述,你的问题非常广泛,不太可能得到你所寻求的支持。你至少应该展示你目前所拥有的。而且,你的问题陈述毫无意义。根据定义,除边缘外,每个单元有4个相邻单元;你是说每个单元格都有奇数个标记的相邻单元格吗?另外,如果在Ada中工作会显著降低您的速度:获得一个使用C、Java或您知道的其他过程语言的解决方案,然后将其移植到Ada。您能更具体一些吗?你的意思是“每个被标记的单元格都有奇数个被标记的邻居”还是这个概念的其他变体。对不起,我不清楚,我正在尽力解释这个问题。我编辑了原稿以反映你们的担忧@HighPerformanceMark让我们假设坐标为1,1的坐标平面上的某个单元格被标记。那么它必须有奇数个邻居1,2,1,0和0,1。因此,必须标记周围的1或3个单元格。这基本上就是我开始的方式,也是我当前算法的工作方式。虽然我刚刚意识到我是个白痴,并且是基于n,而不是基于图纸尺寸,所以这可能会改进我的算法。所以谢谢你。