Hidden Rectangle(隐藏矩形)

在由候选数(AB)组成、可能形成UR结构的4格中,有2~3格存在额外的候选数,此时若以不存在额外候选数的一格为起点,检查其对角格所在的行和列,若该行和列其余位置均不存在候选数A,则应删去对角格中的候选数B。我们将这类结构称为HR。

 
图14 HR-1

图14中,R7C57和R9C57四格可能形成UR结构,其中有三格存在额外的候选数,R7C7不存在额外候选数,其对角格R9C5所在的R9和C5其余位置均不存在候选数5,显然R9C5的5和R7C5、R9C7中的两个5构成矛盾关系,此时,

1、若R9C5中的5成立,则该格中的9不成立;

2、若R9C5中的5不成立,则R7C5、R9C7中的两个5成立,那么R7C7中就只能填入9,R9C5中就只剩9和额外的候选数7可供选择。如果选择填入9,就会如图15在这4格形成一个互换结构(很明显,把5和9位置互换,题目可以得到另一个合乎规则的解),导致题目出现双解。综上,不管R9C5中的5是否成立,该格中的9都应被删去。

 
图15 HR-2

下图是对角两个格存在不同额外候选数的情况,这种情形应先检查是否满足UR6,若不满足UR6,可以分别检查不存在额外候选数的两格,看是否满足HR,本例中R2和C9其他格不存在候选数4,满足HR,可删去R2C9中的5。

 
图16 HR-3

Avoidable Rectangle(可避免矩形)

在HR部分提到了互换结构的概念,这种结构使得我们可以将UR的用法进一步扩充,即在可能形成UR的四格中存在已填入的确定数字,若此时未定格中选择某候选数会导致盘面出现互换结构,就应删除该候选数,这类方法称为Avoidable Rectangle。需要注意的是,只有在可能会形成UR的四格中不存在原题给定数字时,方可使用AR,如果大家是在app上做题,原题给定数字和自己填入的数字无法分辨时,就不要使用这类技巧。

Avoidable Rectangle Type 1

AR1类似于UR1,来看一个例子:图17中,绿框4格已有3格填入确定数字,此时若R2C9中填入9,就会出现互换结构,所以R2C9≠9。

 
图17 AR1-1

图18同样的道理,大家自己体会下。

 
图18 AR1-2

Avoidable Rectangle Type 2

AR1是一格存在额外候选数的情况,AR2则是同侧两格有相同的单个候选数,类似于UR2。

 
图19 AR2-1

上图中,若R78C3两格中的9都不成立,就会形成互换结构,亦即这两格中的9不能同假,必须要成立一个,故可删除这两格所在单元其他位置的9。下图同理。

 
图20 AR2-2

Binary Universal Grave + 1(全双值坟墓+1,BUG+1)

如果某个数独中盘已无摈除解所有未解格均为双值格且每个候选数在每个单元(行、列、宫)均出现且只出现两次,这样的情形会导致题目多解或者无解,我们将这种结构称为全双值坟墓(BUG)。而在BUG基础上,某一格的候选数多出来一个,即存在三个候选数时,可将其称为BUG+1,很明显,若删除多出来的那个候选数,将会导致盘势出现BUG结构,故应把非双值格中在其行列宫仅出现两次的数字删除(或可表述为,非双值格中应填入在所在单元出现三次的那个候选数)。

 
图21 BUG+1-1

图21中,除R1C8外所有未解格均为双值格,除该格中的6在所在单元出现3此外,其余候选数均出现且只出现2次,满足BUG+1的定义,故R1C8格应填入候选数6。

留个题目给大家,图22的盘势是否可以采用BUG+1的技巧,为什么?

 
图22 BUG+1-2

作者:零时四分_719b
链接:https://www.jianshu.com/p/6da2a49d89ab
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

数独·唯一性技巧(Uniqueness)-2的更多相关文章

  1. 数独·唯一性技巧(Uniqueness)-1

    唯一性技巧基于这样一个事实——各类出版物上发布的数独题目都只有唯一解.事实上,绝大多数数独玩家有这样的共识:即合格的数独题目解应该是唯一的.因此,为了保证题目合格.有效,出题者在制作题目时,会将一些虽 ...

  2. 数独高阶技巧入门之三——Fish

    术语Fish代表了一组工作原理相同的关于特定候选数的解题技巧(Fish技巧直接产生自数独规则——每个单元内的数字都不能重复),Fish家族成员包括“体型”从小到大的X-Wing.Swordfish. ...

  3. leetcode 36 有效的数独 哈希表 unordered_set unordersd_map 保存状态 leetcode 37 解数独

    leetcode 36 感觉就是遍历. 保存好状态,就是各行各列还有各分区divide的情况 用数组做. 空间小时间大 class Solution { public: bool isValidSud ...

  4. Java Bloom filter几种实现比较

    英文原始出处: Bloom filter for Scala, the fastest for JVM 本文介绍的是用Scala实现的Bloom filter. 源代码在github上.依照性能测试结 ...

  5. 《SQL Server 2012 T-SQL基础》读书笔记 - 8.数据修改

    Chapter 8 Data Modification SQL Server 2008开始,支持一个语句中插入多行: INSERT INTO dbo.Orders (orderid, orderdat ...

  6. atitit.html5 拼图游戏的解决之道.

    atitit.html5 拼图游戏的解决之道. 1. 拼图游戏的操作(点击法and 拖动法) 1 1. 支持键盘上.下.左.右键移动: 1 2. 支持点击空白模块中的上下左右箭头移动: 1 3. 支持 ...

  7. Hyperledger Fabric、Corda和以太坊对比

     Hyperledger Fabric . Corda 和以太坊的对比 三种不同的框架 我们从 Hyperledger Fabric.R3 Corda和以太坊的白皮书中可以看到,三种框架在可能的应用领 ...

  8. 以太坊、Hyperledger Fabric和Corda,哪个更好?

    原创: Philipp Sandner 区块链前哨 昨天 编译|盖磊编辑|前哨小兵甲区块链前哨导语: 我们分析了 Hyperledger Fabric,R3 Corda 和以太坊这三种分布式账本技术间 ...

  9. Category Theory: 01 One Structured Family of Structures

    Category Theory: 01 One Structured Family of Structures 这次看来要放弃了.看了大概三分之一.似乎不能够让注意力集中了.先更新吧. 群的定义 \( ...

随机推荐

  1. CSS——创建css

    CreateInlineStyle: function () { //创建一个内联样式表 var style = document.createElement('style'); //创建一个styl ...

  2. A Bug's Life(加权并查集)

    Description Background Professor Hopper is researching the sexual behavior of a rare species of bugs ...

  3. Spring 学习记录7 初识XmlWebApplicationContext

    主题 之前Spring相关的一些类,比如Enviromnent,BenFactory都接触了一些.有一些收获.但是直接看代码很多方法都不知为什么这样写.哪里会用到.因为太底层了.不好理解..现在从高层 ...

  4. 【LUA table 移除操作非常慢】

    LUA的表有插入和删除两种操作.插入操作非常快,100000次操作都在0.01S左右,而删除操作在表元素大于10000时却急速变慢,测试如下: t = {} local t1= os.clock() ...

  5. 从零开始搭建k8s-20180301

    yum install -y yum-utils git etcd yum-config-manager --add-repo https://download.docker.com/linux/ce ...

  6. Transform & Physics

    [Transform & Physics] 1.Space.Unity定义了Space枚举值,此值如下: 通常通过Space.World.Space.Self来区别一个Vector是按世界坐标 ...

  7. 依赖VUE组件通讯机制实现场景游戏切换

  8. Hadoop2.2.0安装配置手册

    第一部分 Hadoop 2.2 下载 Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独 ...

  9. 解剖Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/name

    回顾变量 CC 最初是在auto/options脚本中初始化的: CC=${CC:-gcc} 1 C Compiler 的 feature Windows 平台的编译器叫做MSVC,其他平台的都统称为 ...

  10. UIImage分类,设置边框

    #import "UIImage+image.h" @implementation UIImage (image) + (UIImage *)imageWithBorder:(CG ...