algorithm - 如何在不反复试验的情况下逻辑地解决这个难题

标签 algorithm graph logic puzzle

我在 Ubuntu 中遇到了难题 slant我想从逻辑上解决这个难题,而不是通过反复试验等。

规则很简单:

  1. 我们必须用右倾斜或左倾斜填充所有框。
  2. 接触一个数的倾斜数必须等于该数。
  3. 电路板中不允许出现循环。即倾斜不能形成环。

谜题:

Question

自动解决的答案:

enter image description here

我从哪里开始?

最佳答案

我将使用斜杠 (/) 和反斜杠 (\) 而不是左右倾斜。

让我们取一个角为 (x1)(11) 的正方形,其中 x 不等于 1。左上角有一个这样的正方形。假设那个正方形上的斜线是连接两个 1 的斜线。那些 1 被“用完”,所有接触它们的方 block 必须有不接触数字的线。但这会导致不可能的情况,因为我们的正方形左侧和下方都会有一条斜线,这意味着剩下的 1 会触及两个斜线。结论:如果您有一个包含三个 1 的正方形,那么该正方形中的线必须触及不为 1 的角。此规则可能不适用于边角,但如果角上有 1,则必须绘制与该角相接的线。

数字 1 和 3 是对称的,使用类似的逻辑我们得到另一个规则:如果您有一个包含三个 3 的正方形,那么该正方形中的线必须与这三个 3 中的两个相接触

还有更多通用规则,但不适用于弯道。所讨论的正方形周围必须有正方形。让我们取两个相反的 1 (x1)(1y) 的正方形,其中 x 和 y 是任何值,包括无数。离左下角有一个这样的两个方格。假设那个正方形上的斜线是连接两个 1 的斜线。那些 1 被“用完”,所有接触它们的方 block 必须有不接触数字的线。但这会导致围绕 1 循环。结论:如果您有一个正方形,其中有两个相反的 1,那么该正方形中的线一定不能碰到这两个 1。此规则可能不适用于棋盘边缘。

数字1和数字3是对称的,但之前的规则采用“无环”规则,没有对称的“侧线无环”规则,因此不存在两个相反的3的规则。

现在您知道哪条线与 1 相接,您可以得出结论,没有其他线可以与它相接。我们可以将此推理归纳为以下填充规则:如果数字 x 与 x 条线相接,则所有其他相邻方 block 的线均不与该数字相接。并且对称地:如果数字 x 是 (4-x) 个正方形的角,其直线不与该数字接触,则所有其他相邻正方形必须具有与该数字接触的直线

谷歌搜索术语“Gokigen Naname”,我发现了更多规则。一个是关于两个相邻的 1 (11),但 Mweerden 已经介绍过了。

这些规则不足以解决棋盘问题。可能还有其他规则。但最终算法可能不得不做出猜测。

关于algorithm - 如何在不反复试验的情况下逻辑地解决这个难题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520747/

相关文章:

algorithm - 确定点相对于给定 3D 表面的位置

python - 在 matplotlib 中跨子图绘制分界线

algorithm - 图中的索林算法

delphi - Delphi中的三值逻辑

java - 学习Java——制作一个简单的猜谜游戏

algorithm - 使用次优解决方案采访调度算法

algorithm - 这些循环可以执行多少次?

python - 从一组边有效地创建和存储所有大小的所有 "valid"边组合

javascript - 在鼠标悬停上使用 d3.js 时,工具提示未显示在元素顶部

logic - 如果我不导入经典逻辑,你能证明 Excluded Middle 在 Coq 中是错误的吗