算发帖——俄罗斯方块覆盖问题一共有多少个解

问题的提出:如下图,用13块俄罗斯方块覆盖8*8的正方形。

254t

 

那么一共可以有多少个解呢?(若通过旋转、翻转一个解而得到的新解,则两个解视为同一个解)

 

首先,求解的问题,已经在上一篇帖子里完成

算法帖——用舞蹈链算法(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个解

 

还会继续计算么?还会的,看看最终能有多少个解

posted @ 2020-02-29 21:52  万仓一黍  阅读(1154)  评论(2编辑  收藏  举报