关于开关控制的算法问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于开关控制的算法问题相关的知识,希望对你有一定的参考价值。

你能帮我解决下面的问题吗?

有一个N * M表,每个单元都有一个开关,它有两个状态--- ON / OFF。当我们改变一个开关的状态时,不仅自身而且上,下,左和右都被改变。问题是编写一个程序来查找并打印关闭所有开关的最少步骤。如果没有,请打印-1。

例如,下面是一个3 * 4表。 (※●关闭,O开启。)

pic.1

●   ●   ●   ●
●   O   ●   ●
●   ●   ●   ●

现在我们将(1,1)单元格从ON更改为OFF,然后将表格更改为以下内容。

pic.2

●   O   ●   ●
O   ●   O   ●
●   O   ●   ●

当我们将(0,2)单元格从OFF更改为ON时,它将变为:

pic.3

●   ●   O   O
O   ●   ●   ●
●   O   ●   ●

等等...

顺便说一下,这个例子(pic.1)的结果是4.这意味着至少需要4个步骤才能将所有开关改为OFF。

我已经使用javascript实现了这个问题并将其提交给了github。

enter link description here

答案

提供First-Stab解决方案

发布示例代码的链接是很好的,但您应该引用它,然后提供第一个解决方案。解释你遇到麻烦的原因,或者你遇到的问题。

算法和董事会状态

您的目标是找到切换单元格导致获胜状态的路径。我看到你编写了一个可玩的版本,但没有自动搜索逻辑。

看看A* search的一些提示。除了尝试例程之外,您还需要一种比较电路板状态的方法。你知道你是否达到了胜利的条件,但搜索算法往往也需要一个启发式算法。您可以使用启发式“开销更少”。

以上是关于关于开关控制的算法问题的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager开关没有显示片段之间

智力题:关于进入房间一次,判断哪个开关控制哪盏灯的问题

智力题:关于进入房间一次,判断哪个开关控制哪盏灯的问题

基于单片机PID控制算法开关电源设计实现(完善)

Android:BottomNavigationView第一个片段开关超级延迟

关于Unity实现AR功能摄像头转换与闪光灯开关控制