网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月09日漏签0天
数独吧 关注:80,722贴子:401,021
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2 3
  • 72回复贴,共3页
  • ,跳到 页  
<<返回数独吧
>0< 加载中...

回复:细数那些出现在数独中1+1=2一样简单的公式

  • 只看楼主
  • 收藏

  • 回复
  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接下来的内容就是区块了,之所以迟迟没有动手写,就要原因就是现在的《数独帮助》关于区块的内容虽然经过多次改动,自己还是没有满意,一是我对数独懂的并不多,二是Excel2003多有不便我现在已经改为2007了,所以要想讲出来,首先得把区块内容全换成新的。而且关于怎么制作出来的表格也越来越复杂,这和本人的水平有限有关,讲解起来太费力,所以这块内容只讲原理,不讲制作表格了。
看了这个内容,有些人可能说,乱七八槽的,不懂,但这个内容包含着对区块的基本理解,对初学者有帮助,所以大家可以挑对自己的用的那部分看。
定义:什么是区块?事先我百度了不少资料,想借个定义过来,但不怎么合我意,,所以解答什么是区块摒除法分以下几步:
①区块它是什么样子的,下面举例说明:每个数字为候选数(只写出1的,也可以把1换成1-9,123456789数字标出观察这类区块编码的顺序)


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
②区块有多少种:9*4*12=432种
③同宫且横(竖)相连的3个格中有2或3个某数字的候选数,除了这3个格外宫或行(列)没有这个数字的候选数,它就是区块了。
④区块有什么用,可以删候选数,因为这2-3个候选数即属于宫又属于行(列),如果宫内除了这个区块没有该候选数,就可以删除行(列)的其它候选数,反之,如果行(列)除了这个区块没有候选数就可以删除同宫的其它候选数。


2025-08-09 15:09:54
广告
不感兴趣
开通SVIP免广告
  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
例题:


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
从哪步开始区块摒除法?从哪步都可以
针对7的候选数表


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那3个7是怎么被删掉的,为什么划了那么多的道道?


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
观察上图的四个区块摒除法删除候选数的例子
宫或行(列)没有其它候选数确定了在宫内的唯一性,即可删除另一种相关的候选数(红色字区块)。删除后,就可以确定7在五宫内的位置了。
上述是人工区块摒除法,看上去是如此的简单,相信读者都学会了这个方法,那么怎么指挥Excel表格去实现这个方法呢?
前面讲到制作出1-9的候选数表,这个候选数表要增添内容了,如果有区块摒除,则该位置的候选数为空。
还是拿上题(考查数字7)为例:


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我将候选数(1-9)改编一下,使得原来显示1-9,现在全部显示1,而空值处变成0。把这个换个新位置,在候选数的前面,因为原来候选数的位置还应该是候选数,这就不影响以前编制的那些内容有变化。
如上图,再在候选数码之前,加一区域放置区块摒除法。
候选数编码的公式变为:
=IF(IF(B3="",COUNTIF(B3:B11,B2)+COUNTIF(B3:J3,B2)+COUNTIF(B3:D5,B2),4)=0,1,0)这个不是一公式复制到底的,如果看过前面所讲的,同候选数内容这里不详述。
候选数系列的公式变为:
=IF(AND(AQ14=0,BA14=1),$BJ14,""),此公式可复制到底。
注意:这里的列BJ在候选数系列的前面一列,代表着本矩形的候选数是什么,从第1行到第9行共9个格都写,所以才会有上面的那个公式,如果区块摒除法的判定码为0且候选数编码为1才有候选数显示。


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
现在重点在区块摒除法的判定码如何产生。(说明这个问题要用好多字)
我们回到如何定义区块的那张图,这12种情形如何区分,先看第1列,我们把3*3宫内的数字连起来,从左向右,从上向下(123456789顺序),空格按0,这样连起来的字符串共9位,各不相同,列举:000000011、000000101、000000110、000000111、000011000、000101000、000110000、000111000、011000000、101000000、110000000、111000000,再把后面的那三种按123456789顺序串起来还是这几个字串,相了无数次面后,为了让自己列清晰的发现什么,所以发现:除了0就是1,这组字串可以看作二进制数了!分别是3、5、6、7、24、40、48、56、192、320、384、448。如果把二进制数变成10进制就好区分了,(其实把字串视作二进制并转化成十进制就是为了方便看)我在Excel2007找到了这个函数,BIN2DEC(),二转十进制函数。结合文本类型转化数字类型的函数(BIN2DEC(value(字串))我们就可以使用了。
区块摒除法有9*9*9=729个编码
其实弄懂了81个格是怎么个公式就可以了,如何找到它的规律并且用数学的方法找出来。我反反复得制作了几回,每次再制作都比前一个多了些条件,所以被删除的候选数一次比一次多,这回好像找全了。虽然以前的少了些,但也起了不少的作用,看前面的例题,只要有一半,就算找到了90%以上,因为只属于一种的区块摒除法并不多。以前的《数独帮助》就相当于对区块摒除法一知半解,或相当于眼神不太好没有找全。
但这81个格怎么来的,讲起来还是太费力,我随便点个格,这个格等于什么,我来说说,就是相当于把原理说出来,以后,就得靠大家发挥了。
就D8这个格吧:
如果有下列32情况之一,就可以填1


2025-08-09 15:03:54
广告
不感兴趣
开通SVIP免广告
  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下图是各码在Excel表格中的地址(还是上面的例题)


  • 依然史特西
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
D8格里的公式:
=IF(OR(BIN2DEC(VALUE(BA17&BB17&BC17&BA18&BB18&BC18&BA19&BB19&BC19))=192,BIN2DEC(VALUE(BA17&BB17&BC17&BA18&BB18&BC18&BA19&BB19&BC19))=320,BIN2DEC(VALUE(BA17&BB17&BC17&BA18&BB18&BC18&BA19&BB19&BC19))=384,BIN2DEC(VALUE(BA17&BB17&BC17&BA18&BB18&BC18&BA19&BB19&BC19))=448,BIN2DEC(VALUE(BD17&BE17&BF17&BD18&BE18&BF18&BD19&BE19&BF19))=192,BIN2DEC(VALUE(BD17&BE17&BF17&BD18&BE18&BF18&BD19&BE19&BF19))=320,BIN2DEC(VALUE(BD17&BE17&BF17&BD18&BE18&BF18&BD19&BE19&BF19))=384,BIN2DEC(VALUE(BD17&BE17&BF17&BD18&BE18&BF18&BD19&BE19&BF19))=448,BIN2DEC(VALUE(BG20&BG21&BG22&BH20&BH21&BH22&BI20&BI21&BI22))=24,BIN2DEC(VALUE(BG20&BG21&BG22&BH20&BH21&BH22&BI20&BI21&BI22))=40,BIN2DEC(VALUE(BG20&BG21&BG22&BH20&BH21&BH22&BI20&BI21&BI22))=48,BIN2DEC(VALUE(BG20&BG21&BG22&BH20&BH21&BH22&BI20&BI21&BI22))=56,BIN2DEC(VALUE(BG14&BG15&BG16&BH14&BH15&BH16&BI14&BI15&BI16))=24,BIN2DEC(VALUE(BG14&BG15&BG16&BH14&BH15&BH16&BI14&BI15&BI16))=40,BIN2DEC(VALUE(BG14&BG15&BG16&BH14&BH15&BH16&BI14&BI15&BI16))=48,BIN2DEC(VALUE(BG14&BG15&BG16&BH14&BH15&BH16&BI14&BI15&BI16))=56,BIN2DEC(VALUE(BA18&BB18&BC18&BD18&BE18&BF18&BG18&BH18&BI18))=3,BIN2DEC(VALUE(BA18&BB18&BC18&BD18&BE18&BF18&BG18&BH18&BI18))=5,BIN2DEC(VALUE(BA18&BB18&BC18&BD18&BE18&BF18&BG18&BH18&BI18))=6,BIN2DEC(VALUE(BA18&BB18&BC18&BD18&BE18&BF18&BG18&BH18&BI18))=7,BIN2DEC(VALUE(BA19&BB19&BC19&BD19&BE19&BF19&BG19&BH19&BI19))=3,BIN2DEC(VALUE(BA19&BB19&BC19&BD19&BE19&BF19&BG19&BH19&BI19))=5,BIN2DEC(VALUE(BA19&BB19&BC19&BD19&BE19&BF19&BG19&BH19&BI19))=6,BIN2DEC(VALUE(BA19&BB19&BC19&BD19&BE19&BF19&BG19&BH19&BI19))=7,BIN2DEC(VALUE(BI14&BI15&BI16&BI17&BI18&BI19&BI20&BI21&BI22))=24,BIN2DEC(VALUE(BI14&BI15&BI16&BI17&BI18&BI19&BI20&BI21&BI22))=40,BIN2DEC(VALUE(BI14&BI15&BI16&BI17&BI18&BI19&BI20&BI21&BI22))=48,BIN2DEC(VALUE(BI14&BI15&BI16&BI17&BI18&BI19&BI20&BI21&BI22))=56,BIN2DEC(VALUE(BG14&BG15&BG16&BG17&BG18&BG19&BG20&BG21&BG22))=24,BIN2DEC(VALUE(BG14&BG15&BG16&BG17&BG18&BG19&BG20&BG21&BG22))=40,BIN2DEC(VALUE(BG14&BG15&BG16&BG17&BG18&BG19&BG20&BG21&BG22))=48,BIN2DEC(VALUE(BG14&BG15&BG16&BG17&BG18&BG19&BG20&BG21&BG22))=56),1,0)
类似的公式在每个格里都有,都进行32个判定,可见电脑能够在分秒钟就解决了。上面的公式不会是一个字一个字往里输入的,即使是能一个字一个字往里输,也不可靠,难免出错。但也不是一个公式复制到底,经过复杂的过程,这里不提。
区块能够删除的候选数数量相当多,如果掌握这个方法,可以多做出不少题。
一级区块摒除有可能出现二级的区块,先忽略
发现要弄出些什么东西,必须有完整的时间和安静的心情,才能弄出来,而零零散散的时间是做不成事的,经过头脑不清醒的元旦,我终于弄出了新的区块摒除法,并且看以前写的那些东西有些不顺眼了……


  • windy艾艾
  • SDC
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
晚安晚安晚安晚安晚安晚安晚安晚安晚安晚安


  • 丶李薇薇吧
  • X-wing
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小学文化,我还是回家看喜羊羊好了!


  • 布鲁法尔
  • 毛边
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我也是用excel涂色+求和辅助判断的,还写了个宏,可以直接算出结果,就是效率比较低


  • 剑指天涯Sword
  • ALS链
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
留个印子先。。。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2 3
  • 72回复贴,共3页
  • ,跳到 页  
<<返回数独吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示