算发帖——俄罗斯方块覆盖问题一共有多少个解
问题的提出:如下图,用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个解
还会继续计算么?还会的,看看最终能有多少个解
算发帖——俄罗斯方块覆盖问题一共有多少个解的更多相关文章
- 算法帖——用舞蹈链算法(Dancing Links)求解俄罗斯方块覆盖问题
问题的提出:如下图,用13块俄罗斯方块覆盖8*8的正方形.如何用计算机求解? 解决这类问题的方法不一而足,然而核心思想都是穷举法,不同的方法仅仅是对穷举法进行了优化 用13块不同形状的俄罗斯方块(每个 ...
- 算法基础_递归_给定m个A,n个B,一共有多少种排列
问题描述: 给定m个A,n个B,一共有多少种排列 解题源代码: /** * 给定m个A,n个B,问一共有多少种排列 * @author Administrator * */ public class ...
- “全栈2019”Java第一百零一章:局部内部类覆盖作用域内成员详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 20190129-‘abcdefgh’里面挑出3个字母进行组合,一共有多少组合
一. 百度面试题‘abcdefgh’里面挑出3个字母进行组合,一共有多少组合,要求3个字母中不能有重复的组合,三个字母同时出现的次数只能出现一次,如出现了abc就不能出现cab,bca等 思路: 1. ...
- hdu2049 不容易系列之(4)——考新郎 错排+组合 一共有N对新婚夫妇,N个新娘随机坐成一排,每个新郎只能选一个, 其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- hive 之 查看某库一共有多少张表
思路一: show出所有表,然后wc -l hive -e" use database_name; show tables; "|wc -l 思路二: 1.show出当前库所有的表 ...
- 渗透测试流程——渗透测试的9个步骤(转)
目录 明确目标 分析风险,获得授权 信息收集 漏洞探测(手动&自动) 漏洞验证 信息分析 利用漏洞,获取数据 信息整理 形成报告 1.明确目标 1)确定范围:测试的范围,如:IP.域名.内外网 ...
- Maven——软件开发中一个神奇的项目管理工具
由于本人是从c++转入从事JAVA工作的 所以很多东西要从头学起,相信有很多跟我一样的人吧,那么我们一起来学习. 今天我们一起来认识下Maven这个工具,很多人可能会问题了,为什么说是工具呢?不是写代 ...
- python假设一段楼梯共 n(n>1)个台阶,小朋友一步最多能上 3 个台阶,那么小朋友上这段楼 梯一共有多少种方法
我们先把前四节种数算出来(自己想是哪几类,如果你不会算,那就放弃写代码吧,干一些在街上卖肉夹馍的小生意,也挣得不少) 标号 1 2 3 4 种类 1 2 4 7 ...
随机推荐
- IOC&AOP
- OpenSSL EVP_Digest系列函数的一个样例
#include <stdio.h> #include <openssl/evp.h> main(int argc, char *argv[]) ...
- iOS 部分API理解
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- K3CLOUD日志目录
业务站点安装目录\K3Cloud\WebSite\App_Data\Log下面找
- MySQL修改表的默认字符集和修改表字段的默认字符集
修改表的默认字符集: ALTER TABLE table_name DEFAULT CHARACTER SET character_name; 修改表字段的默认字符集: ALTER TABLE tab ...
- C++ sizeof 运算符
sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小. sizeof 运算符可用于获取类.结构.共用体和其他用户自定义数据类型的大小. 使用 sizeof 的语法如下: ...
- mysql truncate 的问题
问题是微信群里一伙计提的 `mysql truncate 空表都需要3 4秒,要优化解决` 一开始觉得这莫名其妙,因为作这种操作的都是后台运维,不是实时的对外服务,运维又不差这3秒 其反应trunca ...
- listening-conversation|信息简写|Generally|回答|矛盾
听力可以刷分,但是要求高.听力流程是听.笔记.读题和确定答案,不能回看.Conversation快速且不完整.素材内容主要是生命科学,社科(人类学:考古学),艺术,自然科学(地质). 难点分析: 词汇 ...
- jquery JavaScript如何监听button事件
下面的html页面中有两个按钮 <div class="layui-tab-item layui-show"> <form class="layui-f ...
- Windows下 webstorm安装tomcat配置svn并使用
先附上所需要的软件的下载地址:https://pan.baidu.com/s/1c2ripd2 1.下载并安装jdk以及配置jdk的环境变量 1)下载jdk,选择安装目录安装,我选择的是默认路径,安装 ...