带组合节点的封闭型一般链
Loading demo...
“带组合节点的封闭型一般链”是允许出现组合节点的封闭型一般链。链中可以混合使用共轭对、双值格和带组合节点的强关系。组合节点可以出现在链中间,但链两端必须是简单节点。链两端的节点对应不同候选数,但它们的单元格可以互相看到。
如果链两端为[Ca:x]和[Cb:y],则可以从Ca中删除候选数y,从Cb中删除候选数x(若存在)。与封闭型一般链一样,删数只发生在链两端节点所在的单元格中。
如何识别
- 观察盘面上的强关系,包括共轭对、双值格和带组合节点的强关系。
- 用弱关系连接这些强关系,形成交替推理链。链两端应是对应不同候选数的简单节点,但它们的单元格必须能互相看到。组合节点只能出现在链中间。
- 检查链两端的单元格中是否存在另一端节点对应的候选数,若存在则删除。可能只在一端删数,也可能在两端都能删数。有时链中某个组合节点中的一个候选数也可能落在链端节点所在的单元格,也可以将其删除,参见自伤链。
原理
带组合节点的封闭型一般链中允许出现组合节点,但链两端必须是简单节点,数字不同但单元格可以互相看到。根据交替推理链的原理,链两端的[Ca:x]和[Cb:y]构成逻辑上的强关系。
如果Ca中存在候选数y,则它可以看到位于同一单元格的[Ca:x],同时因为Ca和Cb能彼此看到,它还能看到[Cb:y];即[Ca:y]能同时看到链两端的节点,因此可以从Ca中删掉候选数y。
同理,如果Cb中存在候选数x,它也能同时看到链两端的节点,因此可以从Cb中删掉候选数x。
即,当链两端的节点为[Ca:x]和[Cb:y]时,可以删掉Ca中的y和Cb中的x(若存在)。
实例
上面的盘面中存在一条交替推理链[R9C2:2]━[R5C2:2]┉[R4C3:2]━[R4C3:1]┉[R4C1:1, R6C1:1]━[R8C1:1],链两端的候选数分别是2和1,但它们的单元格可以互相看到。
根据交替推理链的原理,R9C2中填2和R8C1中填1这两种情况至少有一个是真的。
如果R9C2中填2,其中就不能填1了;如果它不填2,则R8C1中必填1,导致R9C2中也不能填1。所以R9C2中的1应该删掉。
同理,R8C1中如果有候选数2也可以删除,但这里并没有出现2。
上面的盘面中存在一条交替推理链[R2C2:6]━[R2C5:6]┉[R8C5:6]━[R8C5:8]┉[R8C1:8, R8C2:8]━[R9C2:8],链两端的候选数分别是6和8,但它们的单元格可以互相看到。
根据交替推理链的原理,R2C2中填6和R9C2中填8这两种情况至少有一个是真的。无论哪种情况,都会导致R2C2中不能填8、R9C2中不能填6。恰好这两个候选数都出现了,可以将它们同时删掉。
自伤链
有时,链中组合节点的一部分可能恰好落在链端节点所在的单元格中,且恰好带有待删候选数。这个时候是可以安全地从组合节点中删掉待删候选数的。这种从链的一部分中删除候选数的情况,叫做“自伤链”。
例如,上面的盘面中存在一条交替推理链[R2C6:9]━[R4C6:9, R5C6:9]┉[R5C4:9, R6C4:9]━[R8C4:9]┉[R8C4:2]━[R7C5:2, R8C5:2]┉[R4C5:2]━[R4C6:2]。注意其中的组合节点[R4C6:9, R5C6:9]恰好经过了链的另一端R4C6,且其中有可删候选数9。
在这种情况下依然可以删掉R4C6中的9。假设R2C6中不填9,根据强关系,组合节点[R4C6:9, R5C6:9]必须为真,沿链推理可得R4C6必填2,所以不能填9。此时[R5C6:9]为真即可使组合节点为真,不会与删掉R4C6:9冲突。另一方面,如果R2C6中填9,根据数独规则,同列的R4C6中也不能填9。所以无论哪种情况,R4C6中的候选数9都可以删除。