欢迎光临散文网 会员登陆 & 注册

变型数独解析(1):回文摩天楼数独

2022-04-08 14:42 作者:SunnieShine  | 我要投稿

咱们今天来看一个变型数独的题目。

题目

回文摩天楼数独(Palindrome Skyscraper)

规则:满足标准数独基本规则(不过是 4 阶的——填1到9改成填1到4)。除此之外,整个题目的外侧也可以填入1到4,这些数字表示的是,从这个外侧填数的位置往盘面里的方向看去,将盘面的每一个数字当成一幢摩天楼,数字表示当前摩天楼的高度。数字越大,摩天楼越高。由于从某一个方向看过去的时候,较高摩天楼可能靠前,导致看过去会挡住后面的摩天楼。外侧填入的数字就表示的是,从这个方向看过去能够看到几幢摩天楼。另外,线条表示的是,经过的所有单元格的填数按照线条的经过次序排成一排,数字将构成一个回文数(Palindrome),即正着或反着读这个数字都是一样的,比如12421、7777、292等。

作者

邱少(%5Ctext%7BLi%7D_2%5Ctext%7BCO%7D_3

解析

本题因为比较小,所以做起来不是特别费力。首先我们使用字母代数的方式来填入一些情况:

首先,字母a、b和c分别表示三个不同的数字。我们假设的a和b是随意假设的,你也可以假设为x、y之类的。显然回文的这个规则要求我们头尾是一致的,因此回文线条经过的第一个格子和最后一个格子填数是一样的;第二个格子则和倒数第二个格子的填数是一样的。

接着,r4c3只能是c,因为它在a和b都看得到的地方,填入a或者b都会使得行或列出现重复数字。

接着我们可以得到c=2的结论。为什么c必须是2呢?当我们不知道怎么做的时候可以试试枚举法。

  • c=1,则r4c3和r4c3下面的填数都是1。按照摩天楼规则,1表示从当前方向看过去只能看到1幢摩天楼。但是由于r4c3是1,所以2、3、4必然出现在当前方向看过去的后面三个格子,而它们都比1要大,意味着这些摩天楼至少有一个会被看到,导致该列(这个方向看过去)至少能看到两幢摩天楼,于是违背摩天楼的基本规则;

  • c=3,则r4c3和r4c3下面的填数都是3。按照摩天楼规则,3表示从当前方向看过去能看到3幢摩天楼。显然这种数独只能填入1到4,导致比3大的只能是4,如果3已经出现在r4c3的话,当前方向看过去的楼层就只可能是3或4,而1或2不论在这一列的哪里,都必然会被遮挡。这样的话该方向只能看到两幢摩天楼,于是违背摩天楼的基本规则;

  • c=4,则r4c3和r4c3下面的填数都是4。4意味着该方向看过去所有摩天楼都可以被看到,所以只有可能是1、2、3、4的序列。但是这样的话,r4c3应为1,于是矛盾。

所以,c只能是2。

接着,我们可以得到,4只能填在r23c3里。如果r1c3=4,则3必然会插入在第3列的2和4的中间,这样的话,从外侧数字2的这个方向看过去的话,就会连续看到2、3、4三幢摩天楼,所以此时的外围提示数应为3才对,这是矛盾的。

如果r3c3=4,则会有如图所示的矛盾:

如果r3c3=4,则回文线条的规则会让r4c2下面的外围提示数填4,这必然导致当前方向看过去的组合是唯一的:1、2、3、4按次序填入。此时第3个宫就无法合理放置3和4了——4必然会在第3行重复出现。因此,4在第3列里唯一可以填入的位置只能是r2c3。

得到这个结果后,我们可以继续完善回文要求的填数。

然后做到这里。这里要注意,由于回文的规则,r3c3和r4c2下面的外围提示数应该是一致的数字:1。因此,这里可以完全确定剩下的数字。

至此,题目完成。回文序列是14122141,确实是回文数;而检查摩天楼规则,外围的4、1、2分别表示从第1、2、3列下面开始往上看过去的格子也都满足规则,最后检查行列宫是否包含重复数字(数独基本规则),发现并没有重复。至此,我们正确地完成了题目。

神特么14122……你搁这儿配平化学方程式呢……


变型数独解析(1):回文摩天楼数独的评论 (共 条)

分享到微博请遵守国家法律