nonogram吧 关注:123贴子:602
  • 2回复贴,共1

nonogram解题技巧

只看楼主收藏回复

nonogram是一下数字游戏,其难度应该要比数独简单一点。我总结了一些解题经验,供大家参考。
我以15*15的方阵例子为解说。
第一,要理解的一个贯穿全局的知识点,就是必占点。以行为例,如果某一行中的数字大于连续空白格的一半,那中间至少必有一个是占有点。 15/2=7.5 。所以在15个空格中,只要大于7.5的数就能先占有一些必占点。例如15中的8,无论8格如何移动,中间那个点必定是固定的。
公式就是用 连续空白格数- 数字=等于必占点两边的空白格数。 15-9=6 。说明数字9在 15的空格中左右两边各空6格,所以中间占3格。我们把这个公式命名为 占中公式。
如下图,由于列的推算,第13格为非占点的时候,连续空白的就只有12格,所以12-9=3。就左3右3中间可以占6

所以在游戏一开始的时候,我们就先找大数入手。把必占点先点上。
由占中公式 延伸的就是 排位占中,当某一行的数没有大于7点有多个数的时候,有些也是可以找到必占点的。就是找次大数的运动范围。如

如果只看7,在15格中由占中公式是找不到必占点的。但是他最右边有一个1,那么就证明7无论怎样运动,是不可能占用到最后两格的。所以7的运动范围只能在前面13格运动,13-7=6,所以在前13格中,左6右6中间占1。但反过来,并不代表1就是最后两格中。(前面有个7,1必定在后7格运动,所以1无论在哪一格,第七格必定是7的必占点)

还有双占位,例如5,5 。左5如何运动也不会到右6格,所以左5必占第5格,所以同理,右5不可能占到前6格,所以右5必占倒数第5格。

多个数字也可以这样推理,如 1,2,3,4 。1+2+3+3个空格=9,所以4无论如何也只能在后6格运动。1,2占左5格,4占右5格,3必在中间5格运动,所以最中间一格必是3的其中一格。

第二,是查漏补缺。当我们通过第一步的占中法找到一些必占点之后,由这些点所关联的纵列的数字是否可以补上一些点。

如上图,由第15列的9可以推断出中间的3格。然后由这3格可以推算出第7,8,9行中数字的最后一个数字的点。
第14行的11可以推断出中间的6格,再由中间6格可以推断出第7,8,9列中数字的最后一些数字的必占点。?号代表数字中最后一个点的可能性。这就是查漏。
补缺就是把不可能的点给打上叉。

如上图,由第7列的10可以推断出中间的5格,那么第6到第10行的数字就被限定在中间的区域运动,所以把不可能的点给打上叉。这样子也便于观察和分隔空白区域。

如上图,第一列的4,4,由占中公式是找不到必占点的,但由第7列的9找到中间的必占格,然后再由3把不可能的格打上叉,这时就会发现第一列被分成上7下7两个空白区域,两个4不可能同时存在一个7里面,所以就是上下7格各有一个4,就可以由占中公式找到各一个必占点。如下图。

最后,就是有时候在推断到中间的时候,发现上面的方法进行不下去了,这时候就可以通过假设来推算。

如上图第一行的4,无法确定是在左边的空格还是在右边的空格,可以假设4在右边的话,会出现这种情况

很明显不符合第二行6的数字。所以4只能在左边的空格中。

以上的方法,基本上可以解决很多的题目了。


IP属地:北京1楼2023-12-09 16:21回复
    再以前面有人提到的一个问题为例子做一个实例。如图。
    由大数8占中1格,再由第8列的322中的3补上一格。
    由第6列的1,2,1,3,2中。121占前7格,最后2占后3格。所以3在8到12五格中移动,所以占中一格。再把第10行的2不可能的地方打上X。如下图。

    接着是第11列的2,5,1。很明显2,5必定在上9格,而1在下四格,用占中公式可以得到,下图,然后再连接第二行的8。

    查漏补缺,把不可能和可能的都补上,得到下图。

    然后重点观察一下第3行第10列的白色*号是3,2,4中的哪一个数,如果是3或者2,后面的格都不够放3,所以判定白色*号为4中的格,因为前面的3,2必占7格以上,所以后面的一个黑色*也必定是4的必占格。这时,重点放在第3行第8格的黑格到底是3,2,4中的2还是4,此时我们可以假设是4中的格,则8,9,10,11格都是4的,第7格打叉,第7格的上两行不够3,也打叉,则第二行的8左边被封,往右填格。会发现最后一列的4出现矛盾。所以假设不成立。如下图。

    所以只能是下面的解法。

    继续查漏补缺。根据推理的思路,按照数字从小到大的顺序打叉或者填黑。

    继续。

    最后补全。

    这个的难点就在开始的几步,只要局面打开来以后,后面就是正常的查漏补缺而已了。


    IP属地:北京2楼2023-12-09 18:14
    回复
      那么提高一下难度,既然上面的雨伞图的突破点在第6列的12132,如果改成12122,第10行改成1,能够推导出来吗?


      IP属地:北京3楼2023-12-09 19:29
      回复