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. URLDownloadToFileW

    [ilink32 Error] Error: Unresolved external 'URLDownloadToFileW' referenced from D:\USERS\PUBLIC\DOCU ...

  2. arcserver 跨域问题

    http://resources.arcgis.com/en/help/rest/apiref/config.html#jcrossOriginAccesshttp://enable-cors.org ...

  3. 详解C++右值引用

    C++0x标准出来很长时间了,引入了很多牛逼的特性[1].其中一个便是右值引用,Thomas Becker的文章[2]很全面的介绍了这个特性,读后有如醍醐灌顶,翻译在此以便深入理解. 目录 概述 mo ...

  4. 【2018沈阳赛区网络预选赛J题】Fantastic Graph 【有上下界的网络流】

    要补的题太多了导致最近没写博客(好吧是我懒) 题目链接https://nanti.jisuanke.com/t/31447 题意 给出一个二分图,问能否挑选出一些边,使得每个点的度数都在[L,R]这个 ...

  5. 从顶端插入,滚动展示(Demo):

    新闻滚动,从顶端插入: <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11 ...

  6. Spring boot 开发组件

    一.Jboot 描述:Jboot是一个基于jfinal 和 undertow开发的微服务框架.提供了AOP.RPC.分布式缓存.限流.降级.熔断.统一配置中心.swagger api自动生成.Open ...

  7. linux环境下搭建osm_web服务器四(对万国语的地名进行翻译和检索):

    对万国语的地名进行翻译和检索 经过 前三篇的调试,已经有了一个完整的Map可以浏览,我们痛苦的世界范围数据下载.导入过程也结束了.要提醒一下的是,鉴于网速,不要下载 planetosm.lastest ...

  8. [BAT] 通过批处理删除7天前的报告,并删除当前目录下的空文件夹

    set reportPath=D:\AutomationReport cd /d %reportPath% forfiles /p %reportPath% /s /m *.xml /d -7 /c ...

  9. Smarty的条件判断语句

    (1)基本句式{if $name eq "Fred"}Welcome Sir.{elseif $name eq "Wilma"}Welcome Ma'am.{e ...

  10. Ubuntu14.04-LTS 从系统安装到配置可用

    1.安装Ubuntu14.04LTS-64bit 使用U盘安装很方便快捷,可以使用老毛桃使用iso模式制作一个U盘启动盘,然后分区安装. 如果使用硬盘安装的话需要注意的问题是: 如果电脑上以前有Lin ...