九宫格填数字有什么技巧?!
3个回答
展开全部
1 预备知识
在了解正文技巧之前,你需要知道一些基础的东西。如果你已经知道以下两样东西的内容的话,可以直接从Part 2(第2节)开始看。
知道基础的数独规则;
知道如何使用RCBN体系描述行列宫标号的坐标(r1c2之类)。
1-1 基础部分
今天这一节,我们将会从零开始学习标准数独。不过首先,我们首先要明白数独的规则。
数独规则是:在空格之中填入数字1~9,使得每一行、每一列和每一个由正方形粗线围住的九宫格(后被全部简称为“宫”)内,填数不得重复,都包含数字1到9各一次。
如下图所示,这就是一个题目,黑色的数字是在刚开头就得给你的“提示信息”,你需要参照这样的提示信息,完成这样的题目。右边就是答案,而涂色的行、列、宫就是根据规则随便取出的任意一个行、列、宫。你看吧,随便选取的三个区域下,每一个区域内都没有重复数字。

示例
1-2 术语一览
然后,你需要了解一些基本的术语(Terminology,为了简化学术文章和学科特有的描述而产生的词语),以便理解我在后面介绍和解释的话。如果你觉得困难,可以等到使用这一些术语的时候,再反过来看这个内容,也是可以的。

术语“宫”的英文名还有一个是Nonet,但它旨在说明变型数独里面的不规则“宫”,如锯齿数独的不规则宫称为Nonet。
1-3 坐标描述规范
显然,理论是枯燥的,不过呢,对于描述技巧所属行列宫格的时候,我们有如下的规定和规范。学会了,表达起来和描述起来就会很轻松。以下给出本教程(甚至数独圈内)被广泛使用到的表达方式。
1-3-1 RCB坐标体系
现在我们来了解一种表述坐标的基本规范,这也是国际一种“约定俗成”的标准格式。
第一,我们将行列的数字标号均用1~9代替,按照从上到下、从左到右的形式,为每一个宫标号1到9。如图所示:

我们在数字前面加上字母前缀表示所在的区域。我们使用字母R或r表示行标号,使用字母C或c表示列标号,使用B或b表示宫标号。这些标签的大小写均可,没有区别。比如:
r1或R1都表示第1行;
c6或C6都表示第6列;
R4C7或r4c7都表示第4行的第7格(第4行、第7列)。
当然了,大小写均可,但不代表多个标签在同时使用的时候,大小写可以混用。如果写成r1C2是不是怪别扭的。
字母 B(b) 表示宫,不过用得非常少。这两点在后面的内容之中用得比较少。比如 r1b3 就是 r1 和 b3 的交集,也就是 r1c789。了解该用法即可。
第二,如果有多个坐标标签R(r)、C(c)、B(b)出现的,需要按照“R、C、B”的顺序依次写出,不能交换顺序(即只能写成类似于r1c2b1的顺序,这个坐标表示第1行第2格,位于第1个宫)。
第三,如果有多个坐标同时描述的时候,应使用大括号{}将内容框起来,把中文顿号、替换为英文逗号,,如“r5c1、r5c2、r5c3”的写法为“{r5c1, r5c2, r5c3}”。
如果不作特别说明,下面的坐标标签均采用小写形式书写(即类似于r1c2的写法),防止字母和数字写在一起,因为大写字母印刷出来和数值一样高,导致直接无法区分,甚至经常被看混。
第四,如果多个单元格都用到相同的区域了,比如r5c1、r5c2、r5c3。我们为了简写这样的形式,将相同项合并,然后不同项依次写出来。如果简写后不需要用逗号分隔(只有一项),则可省略大括号。比如
{r5c1, r5c2, r5c3}等价于r5c123
{r6c4, r5c4, r8c8}等价于{r56c4, r8c8}
第五,如果表达之中包含某一个(或一簇)候选数,比如“第7行第8格的候选数4”就可以表述为“r7c8(4)”或“4r7c8”。即把数字放到单元格坐标的末尾,用括号括起来;或者是直接把候选数数值放到单元格坐标的最开头。示例如下:
{r5c47, r8c8}的候选数4表示为{r5c47, r8c8}(4)
r12c5的候选数2和r9c4的候选数7表示为{r12c5(2), r9c4(7)}
r12c14的所有候选数2和4表示为r12c14(24)
因为标准数独涉及的数字只是1到9,都是一位数,所以不需要打逗号就可以区分开,所以最后一个示例里的 (24) 不需要打逗号或其他的分隔符就可以区分开。
第六,当需要描述结论(某单元格填什么数字,或某单元格的某种候选数不可能是正确的)的时候,我们使用=表示等于(填什么数),用!=或者<>表示不等于(填什么数是不可能的)。比如
“r3c4 = 5”表示结论为:第3行第4格填5;
“r5c8 != 7”表示结论为:第5行第8格填7是错的,应该排除掉这样的可能(或者说“这一格一定不填7”,或者叫“一定不是7”)。
当然,你用不等号“≠”也可以表示不等于,但一般我们习惯于使用!=和<>,原因很简单:打字懒得去找特殊符号;如果你学过 VB,你一定知道,实际上在这门编程语言里,不等号还可以写作 ><,不过……个人不怎么喜欢这么用,因为它看起来像一个表情包。太萌了不好…… ><
第七,推导的每一个步骤,连接起来的话可以使用推出符号=>表示,随后会介绍到如何书写。
第八,结论也是可以简写的,我们可以把结论拿到最开头,用! 数字表示不等于某数,用数字表示等于某数,比如
“r3c4 = 5”等价于“5r3c4”;“r5c8 != 7”等价于“!7r5c8”。
当然了,还有其他的表示方式,这里简单说一下就好(本教程不采用下面的表达,但是这些表达依然比较重要,它在一些特定范围内使用比较多)。
1-3-2 K9体系
K9体系和RCB体系有些许不同。它只用于表示单元格的坐标,但不能表示宫行、宫列等内容。
K9体系将行标号用大写字母A~I表示第1行到第9行,A对应第1行,B对应第2行,C对应第3行,以此类推;列标号仍然使用数字1~9表示。但K9体系省略了行列标签R(r)和C(c)。我们可以直接使用字母和数字的组合表示单元格的坐标。比如:
A6表示r1c6
C7表示r3c7
D9表示r4c9
I568表示r9c568
AD12表示r14c12({r1c12, r4c12})
但描述类似RCB体系的候选数的时候,只能使用“小括号加数字”的方式,比如
A6单元格的候选数7只能表示为A6(7)
C8单元格的候选数4表示为C8(4)
AD12单元格的所有候选数2和6表示为AD12(26)
1-3-3 123数字坐标体系
这种体系一般就用得不多了,只用在编程里面,他实质上就是把RCB体系的单元格坐标和数值里面的所有标签一并省略后的情况。比如“第5行第6格的候选数7”:
r5c6n7 -> 7r5c6 -> 756
最后的这个写法就是123数字坐标体系的写法了。不过它使用并不广泛,还不能简写。
Part 2 排除(Hidden Single/Pinned Digit)
上面的内容就介绍到这里,下面来陈列一些基本的数独技巧。
2-1 宫排除(Hidden Single in Block)

我们观察到,b4内有5个空单元格可以填数,但是根据数独的规则,“同一区域下的数字不得重复,包含1到9各一次”,所以r456c1就不能再填5了,因为填5的话,c1就会出现两个5(r1c1有一个5),这是违反数独规则的;而同理,我们发现,r5c9也有一个5,因此r5c123也不得填5。
随后我们发现,b4内填入5的位置仅剩下r4c3,所以r4c3 = 5。
2-2 行排除(Hidden Single in Row)

我们观察到,r1只有三处空格,而r1c6不能填6,因为c6已经出现了6(r4c6);而r1c8也不能填6,因为c8出现了6(r3c8)。所以r1c2 = 6。
2-3 列排除(Hidden Single in Column)

同理,我们观察到,c6唯一可以填入7的位置仅只有r6c6,r3c6不能填7的原因是r3已经出现有确定值7;r79c6不能填7的原因是b8已经出现了确定值7。
Part 3 唯一余数(Naked Single/Forced Digit)

我们观察到,r1c4填数可能本应该是1到9的,但是,不能填2、3、4、5的原因是,c4已经出现了确定值2、3、4、5,而不能出现6、7、9的原因是r1已经出现了确定值6、7、9,而不能填8的原因是,b2已经出现了确定值8。所以综上,我们发现2到9全部都不能填,故只剩下填1的可能。所以,r1c4 = 1。
Part 4 “缺一”类技巧
上面的技巧就是最最基础的数独技巧了。而这里陈列的,则是上面的技巧的特殊情况。这一类特殊情况在编程里使用较多,而实际操作层面并不是特别重要。并且,这类技巧还没有正式的中文名。而这类技巧其实本身看起来不太像是技巧,但是因为软件把技巧划分得比较细,所以它单独被分出来并取了个名字。你体会一下就好。
4-1 最后的空缺(Last Digit)

我们观察到,全盘已经填了8个数字6了。由于每一区域都得填入一个6,所以剩下最后一个6,恰好位于r7、c8、b9的交集上。所以r7c8 = 6。
这个技巧其实就是一种排除,但是和排除不同的是,某一个数字在全盘就只剩下一个没有填的了,所以我叫它“同数八缺一”。
4-2 满汉全席(Full House)

这个技巧一样没有中文名(名字也是我才想到的),除了上面的名字呢,我还喜欢叫它“同区域八缺一”,或者直接就叫“同区八缺一”。它和“同数八缺一”有类似的理解角度和思维。
我们观察到,r8只剩下唯一一个位置没有填。我们对其使用唯余操作,确定缺少的数字最终是什么。最后发现,只有5没填了,所以,r8c2 = 5。
在了解正文技巧之前,你需要知道一些基础的东西。如果你已经知道以下两样东西的内容的话,可以直接从Part 2(第2节)开始看。
知道基础的数独规则;
知道如何使用RCBN体系描述行列宫标号的坐标(r1c2之类)。
1-1 基础部分
今天这一节,我们将会从零开始学习标准数独。不过首先,我们首先要明白数独的规则。
数独规则是:在空格之中填入数字1~9,使得每一行、每一列和每一个由正方形粗线围住的九宫格(后被全部简称为“宫”)内,填数不得重复,都包含数字1到9各一次。
如下图所示,这就是一个题目,黑色的数字是在刚开头就得给你的“提示信息”,你需要参照这样的提示信息,完成这样的题目。右边就是答案,而涂色的行、列、宫就是根据规则随便取出的任意一个行、列、宫。你看吧,随便选取的三个区域下,每一个区域内都没有重复数字。

示例
1-2 术语一览
然后,你需要了解一些基本的术语(Terminology,为了简化学术文章和学科特有的描述而产生的词语),以便理解我在后面介绍和解释的话。如果你觉得困难,可以等到使用这一些术语的时候,再反过来看这个内容,也是可以的。

术语“宫”的英文名还有一个是Nonet,但它旨在说明变型数独里面的不规则“宫”,如锯齿数独的不规则宫称为Nonet。
1-3 坐标描述规范
显然,理论是枯燥的,不过呢,对于描述技巧所属行列宫格的时候,我们有如下的规定和规范。学会了,表达起来和描述起来就会很轻松。以下给出本教程(甚至数独圈内)被广泛使用到的表达方式。
1-3-1 RCB坐标体系
现在我们来了解一种表述坐标的基本规范,这也是国际一种“约定俗成”的标准格式。
第一,我们将行列的数字标号均用1~9代替,按照从上到下、从左到右的形式,为每一个宫标号1到9。如图所示:

我们在数字前面加上字母前缀表示所在的区域。我们使用字母R或r表示行标号,使用字母C或c表示列标号,使用B或b表示宫标号。这些标签的大小写均可,没有区别。比如:
r1或R1都表示第1行;
c6或C6都表示第6列;
R4C7或r4c7都表示第4行的第7格(第4行、第7列)。
当然了,大小写均可,但不代表多个标签在同时使用的时候,大小写可以混用。如果写成r1C2是不是怪别扭的。
字母 B(b) 表示宫,不过用得非常少。这两点在后面的内容之中用得比较少。比如 r1b3 就是 r1 和 b3 的交集,也就是 r1c789。了解该用法即可。
第二,如果有多个坐标标签R(r)、C(c)、B(b)出现的,需要按照“R、C、B”的顺序依次写出,不能交换顺序(即只能写成类似于r1c2b1的顺序,这个坐标表示第1行第2格,位于第1个宫)。
第三,如果有多个坐标同时描述的时候,应使用大括号{}将内容框起来,把中文顿号、替换为英文逗号,,如“r5c1、r5c2、r5c3”的写法为“{r5c1, r5c2, r5c3}”。
如果不作特别说明,下面的坐标标签均采用小写形式书写(即类似于r1c2的写法),防止字母和数字写在一起,因为大写字母印刷出来和数值一样高,导致直接无法区分,甚至经常被看混。
第四,如果多个单元格都用到相同的区域了,比如r5c1、r5c2、r5c3。我们为了简写这样的形式,将相同项合并,然后不同项依次写出来。如果简写后不需要用逗号分隔(只有一项),则可省略大括号。比如
{r5c1, r5c2, r5c3}等价于r5c123
{r6c4, r5c4, r8c8}等价于{r56c4, r8c8}
第五,如果表达之中包含某一个(或一簇)候选数,比如“第7行第8格的候选数4”就可以表述为“r7c8(4)”或“4r7c8”。即把数字放到单元格坐标的末尾,用括号括起来;或者是直接把候选数数值放到单元格坐标的最开头。示例如下:
{r5c47, r8c8}的候选数4表示为{r5c47, r8c8}(4)
r12c5的候选数2和r9c4的候选数7表示为{r12c5(2), r9c4(7)}
r12c14的所有候选数2和4表示为r12c14(24)
因为标准数独涉及的数字只是1到9,都是一位数,所以不需要打逗号就可以区分开,所以最后一个示例里的 (24) 不需要打逗号或其他的分隔符就可以区分开。
第六,当需要描述结论(某单元格填什么数字,或某单元格的某种候选数不可能是正确的)的时候,我们使用=表示等于(填什么数),用!=或者<>表示不等于(填什么数是不可能的)。比如
“r3c4 = 5”表示结论为:第3行第4格填5;
“r5c8 != 7”表示结论为:第5行第8格填7是错的,应该排除掉这样的可能(或者说“这一格一定不填7”,或者叫“一定不是7”)。
当然,你用不等号“≠”也可以表示不等于,但一般我们习惯于使用!=和<>,原因很简单:打字懒得去找特殊符号;如果你学过 VB,你一定知道,实际上在这门编程语言里,不等号还可以写作 ><,不过……个人不怎么喜欢这么用,因为它看起来像一个表情包。太萌了不好…… ><
第七,推导的每一个步骤,连接起来的话可以使用推出符号=>表示,随后会介绍到如何书写。
第八,结论也是可以简写的,我们可以把结论拿到最开头,用! 数字表示不等于某数,用数字表示等于某数,比如
“r3c4 = 5”等价于“5r3c4”;“r5c8 != 7”等价于“!7r5c8”。
当然了,还有其他的表示方式,这里简单说一下就好(本教程不采用下面的表达,但是这些表达依然比较重要,它在一些特定范围内使用比较多)。
1-3-2 K9体系
K9体系和RCB体系有些许不同。它只用于表示单元格的坐标,但不能表示宫行、宫列等内容。
K9体系将行标号用大写字母A~I表示第1行到第9行,A对应第1行,B对应第2行,C对应第3行,以此类推;列标号仍然使用数字1~9表示。但K9体系省略了行列标签R(r)和C(c)。我们可以直接使用字母和数字的组合表示单元格的坐标。比如:
A6表示r1c6
C7表示r3c7
D9表示r4c9
I568表示r9c568
AD12表示r14c12({r1c12, r4c12})
但描述类似RCB体系的候选数的时候,只能使用“小括号加数字”的方式,比如
A6单元格的候选数7只能表示为A6(7)
C8单元格的候选数4表示为C8(4)
AD12单元格的所有候选数2和6表示为AD12(26)
1-3-3 123数字坐标体系
这种体系一般就用得不多了,只用在编程里面,他实质上就是把RCB体系的单元格坐标和数值里面的所有标签一并省略后的情况。比如“第5行第6格的候选数7”:
r5c6n7 -> 7r5c6 -> 756
最后的这个写法就是123数字坐标体系的写法了。不过它使用并不广泛,还不能简写。
Part 2 排除(Hidden Single/Pinned Digit)
上面的内容就介绍到这里,下面来陈列一些基本的数独技巧。
2-1 宫排除(Hidden Single in Block)

我们观察到,b4内有5个空单元格可以填数,但是根据数独的规则,“同一区域下的数字不得重复,包含1到9各一次”,所以r456c1就不能再填5了,因为填5的话,c1就会出现两个5(r1c1有一个5),这是违反数独规则的;而同理,我们发现,r5c9也有一个5,因此r5c123也不得填5。
随后我们发现,b4内填入5的位置仅剩下r4c3,所以r4c3 = 5。
2-2 行排除(Hidden Single in Row)

我们观察到,r1只有三处空格,而r1c6不能填6,因为c6已经出现了6(r4c6);而r1c8也不能填6,因为c8出现了6(r3c8)。所以r1c2 = 6。
2-3 列排除(Hidden Single in Column)

同理,我们观察到,c6唯一可以填入7的位置仅只有r6c6,r3c6不能填7的原因是r3已经出现有确定值7;r79c6不能填7的原因是b8已经出现了确定值7。
Part 3 唯一余数(Naked Single/Forced Digit)

我们观察到,r1c4填数可能本应该是1到9的,但是,不能填2、3、4、5的原因是,c4已经出现了确定值2、3、4、5,而不能出现6、7、9的原因是r1已经出现了确定值6、7、9,而不能填8的原因是,b2已经出现了确定值8。所以综上,我们发现2到9全部都不能填,故只剩下填1的可能。所以,r1c4 = 1。
Part 4 “缺一”类技巧
上面的技巧就是最最基础的数独技巧了。而这里陈列的,则是上面的技巧的特殊情况。这一类特殊情况在编程里使用较多,而实际操作层面并不是特别重要。并且,这类技巧还没有正式的中文名。而这类技巧其实本身看起来不太像是技巧,但是因为软件把技巧划分得比较细,所以它单独被分出来并取了个名字。你体会一下就好。
4-1 最后的空缺(Last Digit)

我们观察到,全盘已经填了8个数字6了。由于每一区域都得填入一个6,所以剩下最后一个6,恰好位于r7、c8、b9的交集上。所以r7c8 = 6。
这个技巧其实就是一种排除,但是和排除不同的是,某一个数字在全盘就只剩下一个没有填的了,所以我叫它“同数八缺一”。
4-2 满汉全席(Full House)

这个技巧一样没有中文名(名字也是我才想到的),除了上面的名字呢,我还喜欢叫它“同区域八缺一”,或者直接就叫“同区八缺一”。它和“同数八缺一”有类似的理解角度和思维。
我们观察到,r8只剩下唯一一个位置没有填。我们对其使用唯余操作,确定缺少的数字最终是什么。最后发现,只有5没填了,所以,r8c2 = 5。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
九宫格填数字的技巧的确有很多,只是本人表达不明白,拿来题倒是可以做,此题答案如下:
3、7、9、5、1、6、2、4、8
2、1、5、8、7、4、3、6、9
8、4、6、3、2、9、1、5、7
4、8、2、7、5、1、6、9、3
6、9、3、4、8、2、5、7、1
7、5、1、6、9、3、4、8、2
5、3、7、2、4、8、9、1、6
1、2、8、9、6、5、7、3、4
9、6、4、1、3、7、8、2、5。
3、7、9、5、1、6、2、4、8
2、1、5、8、7、4、3、6、9
8、4、6、3、2、9、1、5、7
4、8、2、7、5、1、6、9、3
6、9、3、4、8、2、5、7、1
7、5、1、6、9、3、4、8、2
5、3、7、2、4、8、9、1、6
1、2、8、9、6、5、7、3、4
9、6、4、1、3、7、8、2、5。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询