众所周知各种使用技巧解数独题并给出步骤的软件在没有技巧可以使用的时候就会硬猜一个数并给出最高难度,HoDoKu的硬猜就叫Brute Force,一个10000分。于是我好奇翻了以下HoDoKu 2.2.0版的源代码,发现它的猜法是:
1、清点局面上未填数格子的序号(从左至右、从上至下依次标为0~80,共81个序号),放进列表unsolved;
2、取列表长度的一半(向下取整)作为index;
3、取出unsolved中的第index个(列表标号从第0个开始)作为填入数字的格子的序号;
4、在此处填入数字,数字来自HoDoKu用暴力方法得到的正解。
简单来说就是把空格子排成一排,然后取中间那个填掉。
于是可以发现这种做法的结果是十分不确定的,它既有可能猜到用处不大的格子继而再用一次Brute Force,也有可能猜到魔术格直接秒解。所以从出现BF开始HoDoKu给出的难度评价就不准了,在已经有BF时用BF的次数来衡量题目的难度也是不准确的。
1、清点局面上未填数格子的序号(从左至右、从上至下依次标为0~80,共81个序号),放进列表unsolved;
2、取列表长度的一半(向下取整)作为index;
3、取出unsolved中的第index个(列表标号从第0个开始)作为填入数字的格子的序号;
4、在此处填入数字,数字来自HoDoKu用暴力方法得到的正解。
简单来说就是把空格子排成一排,然后取中间那个填掉。
于是可以发现这种做法的结果是十分不确定的,它既有可能猜到用处不大的格子继而再用一次Brute Force,也有可能猜到魔术格直接秒解。所以从出现BF开始HoDoKu给出的难度评价就不准了,在已经有BF时用BF的次数来衡量题目的难度也是不准确的。