趣题系列:棋盘覆盖问题
来源:互联网 发布:中国好声音第三季网络 编辑:程序博客网 时间:2024/04/30 15:13
数学中往往有很多这样的例子:一个很复杂的数学难题,确是用一种极为精巧简洁的方式所证明。这些证明往往体现着数学的精妙,十分令人折服。
我们看一个经典的例子: 如下图有一个8*8的棋盘,去掉了2个格子。请问能否用31块1*2的骨牌覆盖整个棋盘。
这个问题相信很多人都知道结果了:肯定是不行的。原因非常清楚:我们已经用红色和白色给整个棋盘染色了。我们只要在棋盘上放一个1*2的骨牌。就必然会是覆盖一红一白两格,偏偏此图红色格子32个,白色格子30个,所以我们无论怎样都不可能覆盖这整个棋盘了。
那么,有人要问了:如果去掉的是1红1白的格子各一个,结果是怎样的呢?你可以自己画几个图试一试。你能证明可以覆盖?还是可以给出反例呢?
据说,这个问题刚出来的时候,通过复杂的理论,终于得到了证明。也就是只要在这个图中去掉一红一白两格,肯定可以被覆盖。
这里,我们将看到一个复杂的问题怎么通过一个简单的方法来证明。我们接下来不但要证明可以覆盖,而且要给出覆盖的方法。看到这里你可能会想到了:构造——对了,只要构造了一组解,原问题便解决了。
我们把原来的棋盘按照下图所示的方法剪开:(沿着黄线和绿线)
我们就把这个棋盘变成了一个环。注意到整个环都是黑白相间的。假设我们从图中去掉一个红色格子,再去掉一个白色格子。我们就得到两条链:每一条链都是红色->白色->红色...->白色。这样我们只要沿着链每次的两个格子放即可(注意到相连的两个格子不存在和骨牌形状不同的情况:1*2,你能找出第二种形状吗?)。把两条链放完,这个棋盘就被覆盖满了,我们的问题也就解决了。
- 趣题系列:棋盘覆盖问题
- Sgu棋盘覆盖系列
- 【题】【分治】NKOJ2307 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- ChessBoard棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 《ChessboardCoverage_棋盘覆盖问题》
- Vista IIS7 下安装 PHP
- 被遗忘的世界
- 在主域控脱机后如何将辅助域控变成主域控
- 解决VIsta iis7中asp无法使用中文参数的问题
- 生命
- 趣题系列:棋盘覆盖问题
- 对一个可进行带括号、加减乘除运算类的分析
- SQL语句导入导出大全(转帖)
- 我为什么学习了编程
- C#正则表达式整理备忘
- 给JAVA打开文件对话框指定后缀
- 关于java多线程的几个例子
- SQLSERVER表数据生成INSERT语句(通用存储过程)
- 动态提取sql 字段 和提取 注释