博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
骨牌(/棋子?)覆盖问题
阅读量:7068 次
发布时间:2019-06-28

本文共 961 字,大约阅读时间需要 3 分钟。

来自《组合数学》第一章内容。

棋子覆盖问题

完美覆盖:无重复无遗漏地覆盖。

1.引入问题:求一个多米诺骨牌对一个8*8方格图完美覆盖的方案数。拓展成n*m呢。

这题是不是可以编程解决啊,是不是有点眼熟啊,是不是感觉在哪见过呀。

互讲的时候豆哥的题跟这有点像啊。

详情请见未填完坑的mon...(状压dp/搜索)

2.求一个多米诺骨牌(二格牌)对一个n*m的图形完美覆盖的充要条件。

多米诺骨牌是二格牌,即由两个格子构成的牌牌。

如果能将这张方格图覆盖,我们不妨假设用了k张骨牌来拼凑,那么易得出式子:n*m = 2*k。

n和m中必有一个是偶数(有二这个因子)。

以上口头简要证明了:若能完美覆盖则n,m必有一个是偶数;下面证明若n或m中有一个是偶数,则n*m的方格图一定能被完美覆盖。

其实非常地显然,我们可以轻易构造出一种满足完美覆盖的图,不妨假设n为偶,n = 2*k,则在n这一行横着平铺k个多米诺骨牌,高度为一。

我们只需继续这样平铺下去即可。无论m为奇数或偶数,都能满足完美覆盖。

从数学的角度讲以上证明是灰常不严谨的,但是OI不需要证明,我们感性理解就好。(OI真是个好东西。。。

3.我们继续扩展问题,求一个b格牌对n*m的方格图完美覆盖的充分必要条件。

b格牌就是由b个格子构成的牌牌。(长b宽1)

众所粥资,组合数学的证明离不开数学归纳法,而数学归纳法离不开猜想。(个人认为数学归纳法真的是挺奇妙的,明明是猜出来的,然后就能骗过去了(猜的是错的有时也能证明对))然后我们猜一下这题的结论吧,猜不出来举几个栗子在纸上画画图什么的,找找规律。

猜想:b格牌对n*m方格图完美覆盖的充分必要条件是b|n*m.

我觉得证明有点容易有点显然有点套路,我能不能不证啊。

4.我们定义一个n*m方格图能被一个b格图同一方向(就是都横着或者都竖着)完美覆盖成为平凡完美覆盖。而每一个b格图能满足n*m方格完美覆盖的,都具有完美平凡覆盖。这个性质非常的显然,详情请看第三。

抱歉我有点懒。

大噶动动笔哈。

然后我就在思考另一个问题了(一下才是真正的问题):如何编程求出对于一个n*m方格图,能用b格牌完美覆盖的方案数。

 

转载于:https://www.cnblogs.com/ve-2021/p/9769330.html

你可能感兴趣的文章
用oracle查询当前数据库中的所有表
查看>>
决心书
查看>>
git 从版本控制中删除文件及.gitignore的用法
查看>>
cacti安装
查看>>
Spark核心概念
查看>>
Kali***(二)之被动信息收集——搜索引擎
查看>>
组策略参考文档1-共享打印机
查看>>
Linux的包管理工具介绍
查看>>
程序员如何成为架构师
查看>>
fiddler抓包之关于connect连接
查看>>
MySQL,binlog2sql回滚操作测试
查看>>
CentOS7下yum安装Jenkins
查看>>
简练软考知识点整理-确认范围管理
查看>>
不懂这几点就落后了:Android、Python工程师必读!
查看>>
Werkzeug 教程
查看>>
内核参数优化
查看>>
用户,组和权限零碎知识
查看>>
计算机
查看>>
文件修改较优方式
查看>>
oracle导入导出exp,imp
查看>>