作者:夏群林
本使用说明用作札笠数独的用户手册。
尽管札笠数独应用软件采用自我解释型使用界面,熟悉数独规则的用户,略加尝试,即可上手,但作者推荐用户事先浏览一遍此说明。习惯上若有偏移的,则以此使用说明为准。
札笠数独是一个跨平台的应用软件,从桌面、平板、到手机,皆有对应的版本,用户界面一致。
未接触过数独但有兴趣尝试的用户,可以在本说明尾部找到作者推荐的数独启蒙文章的参考链接。阅读这些优秀文章,是从生手变成行家的捷径。有札笠数独应用软件的辅助,您会发现您的学习曲线,优雅而简洁。
1)格位、玖宫与盘面。
将正方形按九横行、九纵列的方式划分出八十一个小正方形格子,称之为格位,简称格(Cell)。这81个格位作为整体,构成数独九宫格(Sudoku Grid),是操作数独的地方。为了方便,约定格位从左至右从上至下编号索引。所以,左上角为第 1 格,右上角为第 9 格,正中间为第41格,左下角为第 73 格,右下角为第 81 格。
数独九宫格水平方向的每一横行,称为行(Row),各有 9 格。行从上至下编号,R1,R2,…,R9。
数独九宫格垂直方向的每一纵列,称为列(Column),各有 9 格。列从左至右编号,C1,C2,…,C9。
将数独九宫格的9行依次按三行一组分为三个楼层(Floor)。9列依次按三列一组分为三个塔柱(Tower),楼层与塔柱两两相交,形成九个 3x3 九宫格的区块,简称为块(Block)。每块各有 9 格。块从左至右从上至下依次编号,B1,B2,…,B9。
所以,数独九宫格,既可以看作 9 个行组成,也可以看作 9 个列组成,还可以看作 3 x 3 = 9 个块组成。
每一个行、列、块所包含的九个格序列,在数独规则下,抽象地看,属性相同。故而统一称为玖宫(Nonet)。Nonet 是从音乐领域借用的名词,原意为九重奏,这里比喻 1,2,...,9 这九个数字的协同关系。在盘面上,每个玖宫的格序列,行玖宫从左到右为序,列玖宫从上到下为序,块玖宫先左右后上下为序。玖宫(Nonet)概念在数独解题推理中,很有用。此乃作者原创。
在大九宫格中按数独规则填入数字,即为盘面,如下图。依据上下文的不同,盘面指所展示的数独题目本身,或解题中间过程,或题目答案。即按数独规则衡量无冲突的81个数字序列。
2)同位格。
与某格同行、同列、同块的所有格位,共20格,是此格的同位格(Peers)。同位格,数独圈内有人称之为友邻(Neighborhood)。
札笠数独对于当前焦点格位用蓝色外框突出显示。对焦点格位及其同位格,以金色背景标注。焦点变化,焦点蓝色外框及金色背景区亦随之而变。
3)赋值,种子、谜题与答案。
向盘面空格填入数字的行为,称为赋值。
数独设计者预先在九宫格中填入的数字,称为种子(Givens)。这些数字序列构成谜题(Puzzle)。玩家按数独规则向其余空格赋值,直至填满,成为答案(Solution)。
4)数独规则。
从数字 1,2,...,9 中选择数字填入谜题空格中,使得这九个数字的每一个在每行、每列、每块的九个格的序列中各出现一次且只出现一次。并且答案唯一。
答案唯一主要是对数独谜题设计的要求,也用来作为解题的约束条件,虽然可用到的情形不多。
注意上面的要求,数字 1,2,...,9 在每行、每列、每块各要出现一次,既不能重复,亦不可缺失。有重复必然有缺失,有缺失一定有重复——看似咕噜话,底层是逻辑推理。
5)冲突。
向盘面空格填入数字后,导致即时违反数独规则的结果。也就是说,所填数字与盘面现有数字集合之间,或者在所填格相同行上,或者在所填格相同列上,或者在所填格相同块上,出现重复。
6)线索。
解题过程中,依据数独规则,以及依据数独规则派生出来的推理,如果向盘面某空格赋值不会发生冲突,则所赋值数字为此空格的备选数字,此空格的所有备选数字,称为其线索。如下图:
理论上,对于盘面上的每一个空格,1,2,...,9 皆可为备选数。但是,依据数独规则,导致冲突的备选数无须选取。所以,线索是精选过的备选数。
7)坐标体系。
对于格位,R 代表行,C 代表列,B 代表块。那么,盘面的81格可以如下表示:
R1C2 指第一行第二列那个格子
R1C23 指第一行的第二列和第三列 2 个格子
R23C1 指第一列的第二行和第三行 2 个格子
B1 代表第一块
对于线索,我们用大括弧圈起来。上图中,R5C5 格有两个线索,7 和 9,则表示为 R5C5{79}。再举一个例子,上图 R6C2{5689}。
8)命题、链,强链、弱链。
在向盘面赋值的时候,我们必须作出判断,这个格位能否填入某个数字。根据数独规则,填入的数字不得导致冲突,也就是说,让数独有解且有唯一解。这样,“某格位能否填入某数字“,就是要判断的命题。
命题更为精确表达,应该是:“如果空格位 x 填入数字 d , d ∈ S, S 是集合 {1,2,...,9} 的子集,将让数独有唯一解。”
命题为真等于格位 x 能填入数字 d。命题为假等于 x 格位不能填入数字 d。
作为特例,命题 ① ,S = {1,2,...,9} 本身,此时命题恒真,但无大用。相反,命题 ② ,S 是 {1,2,...,9} 中单个元素构成的子集,即具体的某个数字,命题的判断却是简单粗暴的结果导向:命题为真时,作为唯一的线索可以直接赋值,命题为假时,可以排除其作为线索。数独的解题过程,可以看作对于盘面上每个空格位,从命题 ① 向命题 ② 缩小线索范围的演进过程。其中间过程,则表现为某格位能填入的数字局限在某些数字之中。
某格位能否填入某数字,与该格位的20个同位格直接相关。同位格又与同位格各自的同位格相关。面对数独盘面空格,有无数个这样的相关命题需要判断。我们把两个命题之间的关系,称之为链。
链是数独高级技巧的基石,所有数独都可以通过各种简单或复杂的链来解出答案。
强链:两个命题不能同时为假,用 == 表示,或以红线画图。A 命题与 B 命题构成强链,表示为 A==B。
弱链:两个命题不能同时为真,用 -- 表示,或以绿线画图。C命题与 D 命题构成强链,表示为 C--D。
如能将链按强链和弱链交替链接,所形成的交替推理链(Alternative Inference Chain)有独特的性质:
对于强链进、强链出的交替推理链,其两端的命题亦构成强链,如:A==B--C==D--E==F--G==H,可以得到 A==H。
对于弱链进、弱链出的交替推理链,其两端的命题亦构弱链,如:A--B==C--D==E--F==G--H,可以得到 A--H。
注意,通常命题表达格式为“格位 x 能填入数字 d”,我们把格位 x 的 20 个同位格,定义为格位 x 的作用域。一旦命题为真,即格位 x 应该赋值 d,根据数独规则,其作用域的所有格位上不得再赋值 d,也就是线索中应删减掉备选数 d。
链的优势在于,即使我们暂时无法断定链所连接的单个命题是否为真或为假,但在特定情形下链的特性仍可为我们提供部分有用的推理结论。
假设 A 命题为“格位 x1 能填入数字 d”, B 命题为“格位 x2 能填入数字 d”,数字 d 相等,如果 A==B,则在格位 x1 的作用域与格位 x2 的作用域的交集即共同作用格上,可以删除链的数字 d。
有一种特殊的交替推理链,首尾相连,成为一个环,如 A--B==C--D==E--A,和 A==B--C==D--E==A,可以得出有趣的推论。如果 A 是强链出强链入,得到 A==A,因为 A 和 A 不能同假,那么 A 命题只能是真;如果 A 弱链出弱链入,得到 A--A,因为 A 和 A 不能同真,那么 A 命题只能是假。
札笠数独基于链的底层逻辑,彻底实现数独解题的类人化推理。
吴啸樾: 数独技巧 - 从入门到专家 - 知乎
1)数独解题;
2)精选数独题库;
3)黏取数独题目,自动数独题目验证;
4)广泛的数独技巧支持,类人化推理;
5)图形化提示;
6)解题回退与复原;
7)解题计时与中间结果保存。
硬设备:手机、平板、台式机。软件安装后可脱机运行。
操作系统:
Android 14.0 (API 级别 34)
iOS 11.0
Windows 10.0.19041.0
本软件在.NET MAUI 开放源代码应用上采用C#语言开发,受 .net 8.0 支持。
1)Android 手机、平板,请使用腾讯应用宝,下载安装程序;
2)iPhone 手机、平板,请使用 Apple App 商店,下载安装程序;
3)Windows 台式机,请使用 Microsoft store,下载安装程序;
手机、平板安装后第一次启动时,需要初始化自带题库。退出后再次启动,即可常规使用。
从解题主界面进入 Search 选题界面,选中自己心仪的数独题目即可。如果选中的题目曾经做过但未做完,札笠数独会讲题目恢复到上次中止时的状态。
对于做过的数独题目,无论完成与否,可一键复原,恢复到原始题目状态,做题时间置零。
用户可以将札笠数独题库之外的数独引入题库。目前仅针对 Windows 版本,采用剪贴板途径引入。
所要黏取的数独题目来源不限,但必须包含 81 个阿拉伯数字字符序列的数独盘面,其中,数独盘面空格位规定以数字 0 代表。这 81 个阿拉伯数字字符序列中,不得插入空格、连字符、断行、字母等任何其它可见或不可见字符。
将包含81 个阿拉伯数字字符序列的数独盘面的选定内容赋值到剪贴板,如果验证(可能时间较长,因数独题目复杂度而异)符合标准数独规范,札笠数独主页面 Paste 菜单项会由浅色变为深色,点击 Paste 命令,即进入数独盘面,同时,黏取的数独题目自动储存到用户的札笠数独库。
札笠数独解题页面,分成三种命令状态:
1)赋值状态。单击右侧的命令栏,相应的数字就填入蓝框标示的焦点空格。命令对种子格位无效。对于已赋值非种子格位,命令相当于改写。某个数字用尽(业已在盘面出现9次),对应的命令按钮会变成浅色并失效。“X" 按钮发出删除命令。
所赋值的数字,连同盘面的相同数字,会高亮显示。点击盘面上的任何数字(不是命令栏按钮),将切换高亮状态,即,点击的数字原来是高亮的,取消高亮;原来不是高亮的,激活这个数字的高亮,同时取消另外高亮数字(如有)的高亮状态。
如果赋值错误,即出现冲突。冲突数字会用红线圈起来,直至冲突解除。一旦出现冲突,就要解除冲突,不能往下解题,否则没有意义。
2)线索状态。单机命令栏按钮,会消减/增加焦点空格位的对应线索。如果焦点空格位只剩下一个线索,则禁止消减。这是在解题过程中,用得最频繁的状态。命令对已赋值格位无效。
3)标记状态。可以对若干线索在盘面同时标记,这在用高级技巧推理时,比较有用。
数独玩家在解题时,可以求助札笠数独给予提示。一旦发出求助命令,札笠数独会自动切换到线索状态,并给出类人化推理得出的图形提示。
实心线索连同链接它们的强链、弱链,构成推理链条。空心线索表示根据推理链条,确认可以消减的线索。
札笠数独独创性的设计了专用数独数据模型和计算方法,从而实现类人化的逻辑推理式解题,而非暴力求解。
札笠数独解题主页面,在手机上是这个样子:
札笠数独提供四个页面:
Solve 主页面用于解题;
Search 页面用于选题;
Setting 页面用于设定提示组合,等等;
About 页面,指向主要链接,包括为本说明。
主页面的命令栏中,各个按钮的功能如下(点击或长按):
1,2,...,9 数字按钮在不同命令状态下执行的命令如前所述。
”X" 按钮,单击,在赋值命令状态下,执行删除命令;其它命令状态下,执行取消标记命令。长按,恢复数独题目初始状态,即重做。
Undo / Redo 按钮,功能单一,回退/取消回退。
线索切换按钮。这是一个复合功能按钮,带计时秒表,仅在切换到解题主界面时,秒表才累计计时。点击,切换线索显示。在盘面成为规范的数独题目之前,长按,验证盘面的规范性,有唯一解后确认为数独并入库,开始解题计时。在开始解题之后,长按执行线索提示。
命令状态切换按钮,也是一个复合功能按钮。单击,在赋值状态和非赋值状态间切换。长按,在非赋值状态下,在线索状态和标记状态之间切换(在赋值状态下无效)。札笠数独从赋值状态切换到非赋值状态时,会记得切换回之前的状态,即:之前从线索状态切换到赋值状态的,切换回线索状态,之前从标记状态切换到赋值状态的,切换回标记状态。
札笠数独在编写时着力注重强壮性。
若出现异常,只需重新启动本应用,即可恢复。