问题的提出:如下图,用13块俄罗斯方块覆盖8*8的正方形。
那么一共可以有多少个解呢?(若通过旋转、翻转一个解而得到的新解,则两个解视为同一个解)
首先,求解的问题,已经在上一篇帖子里完成
算法帖——用舞蹈链算法(Dancing Links)求解俄罗斯方块覆盖问题
帖子里用随机的方法求解,故每次求出的解都可能不一样
那么到底有多少个解呢?
理论上,因为是随机求解,当求解次数足够多的时候,所有的解都有可能被解出,到时候统计解出的个数就可以了
于是,整个2月,每天计算200000次,然后统计每天得出的新解的个数
列表如下:
2月01日,10373个新解
2月02日,1355个新解
2月03日,646个新解
2月04日,381个新解
2月05日,256个新解
2月06日,229个新解
2月07日,169个新解
2月08日,124个新解
2月09日,104个新解
2月10日,77个新解
2月11日,73个新解
2月12日,73个新解
2月13日,53个新解
2月14日,61个新解
2月15日,41个新解
2月16日,38个新解
2月17日,44个新解
2月18日,27个新解
2月19日,24个新解
2月20日,18个新解
2月21日,24个新解
2月22日,28个新解
2月23日,24个新解
2月24日,14个新解
2月25日,16个新解
2月26日,10个新解
2月27日,11个新解
2月28日,11个新解
2月29日,6个新解
一共累计29天,计算了580W次,累计获得14130个解
结束了么?很显然没有,因为每天还能再计算出新解,不过,新解的个数越来越少,离最终的答案不远了
根据数据的分布,估计大约还有20-30个新解,那就预估这个问题的最终答案是14160个解
还会继续计算么?还会的,看看最终能有多少个解