多米诺牌的完美覆盖

完美覆盖问题回溯法求解 问题描述用2×1或1×2的骨牌把m×n的棋盘完全覆盖是一个很容易解决的问题。那么,能不能把完全覆盖的种数求出来会不会很复杂呢?请给出所有各不相同覆盖方案。要求给定任意m行n列的棋盘,编写程序求出使用2×1或1×2的骨牌对棋盘进行完全覆盖有多少种不同的方法。解题思路采用回溯法从左上角至右下角依次扫描未放置骨牌的方格,根据方格的右方和下方是否已经放置了骨牌来判断放置骨牌的位置以达到求解的目的。以3x4棋盘为例 此时填满棋盘,计数+1并进行回溯 代码如下 代码运行结果其中————— 阅读详情

 http://www.charlesgao.com/?p=60

从古至今,“不可能”似乎都是被人们批判的。因为随着时代的发展,很多我们认为不可能的事情都最终被证实是可能的。但作为一门严密的科学,数学能够证明许多事情是不可能的。而且,一旦这些严格的证明给出后,它将使所有人信服。如果有人否认 可以证明一些事情是不可能的,那他本身不就是矛盾的么?假设没有事情可以证明是不可能的,而你又证明了前面这句话,那么你不就证明了“证明事情是不可能的”是不可能的了么?显然自相矛盾。呵呵,刚才我就用了一种“证明不可能性”常用的方法--反证法。这种方法在证明不可能性中被广泛的应用。在这篇日志里,我将给大家一个例子。以后的相关日志会更精彩!
假如你有一个西洋跳棋盘,并开始把多米诺骨牌放到这个棋盘上,每个多米诺骨牌正好覆盖两个方格,显然你有很多种放法:

现在你把棋盘对角的两个格子拿掉。你还能用多米诺骨牌填满这个棋盘么?
显然不能。下面我就来证明一下:注意到每个多米诺骨牌都占据一个红色格子和一个白色格子。如果你把对角的两个格子拿掉(如下图),就只剩下32个白色格子和30个红色格子。按照红白一一配对的原则,我们剩下了两个白色的格子。而刚才已经知道,每个多米诺骨牌只能占据一个白色的格子和一个红色的格子。所以我们便证明了这件事情是不可能的。

也许有人会问:如果拿掉那两个格子以后,我把其中一个格子涂成红色,那么不就是31红31白了么?这样也是不行的,因为棋盘上的格子都是交错的,一旦你把其中一个白色涂成红色,那么必有一个多米诺骨牌同时占据了两个红色的格子。这样就剩下29红31白,又回到了上面的情况。
这里我要提到的是,在拿掉对角的两个格子以后,不管你怎么安排格子的颜色,想要用多米诺骨牌填满棋盘都是不可能的。传统的西洋跳棋盘的涂色方法使我们证明起来更容易。实际上,许多不可能性的证明都是通过一系列的转化把问题转化为容易证明的情况,一旦证明了这种情况是不可能的,问题便解决了。

 

北大Coursera课程《算法基础》课后习题: 完美覆盖 编程题#1: 完美覆盖 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋 阅读详情

相关推荐

组合数学之第一章之完美覆盖,断层线,幻方,拉丁方,Nim取子游戏

第一章 一、完美覆盖 1. 2-牌(多米诺牌)的完美覆盖 一个m*n的棋盘存在完美覆盖    m和n中至少有一个是偶数。 2. 证明2-牌的完美覆盖 一个棋盘上写着白、黑、白……(写的规则:每上下两个相邻的方格必须有白有黑;没左右两个方格也必须有白有黑)。 白的个数必须=黑的个数,才有完美覆盖 3. 1*b牌的的每晚覆盖 一个m*n的棋盘可以被b-牌完美覆盖  ó b是m的因子或b

u013696062的专栏 2892

多米诺骨牌

多米诺骨牌 题目 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2。每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置。 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小。 对于图中的例子,只要将最...

欢迎您的光顾awa 1475

POJ2663 完美覆盖

一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为棋盘被多米诺牌完美覆盖。这是一个简单的排列问题

xzy57369的博客 2015

骨牌覆盖问题

骨牌覆盖问题,就是用 1x2 大小的骨牌,铺设一个给定大小的一个矩形区域,要求必须铺满,且不可以超出边界。问总的铺设方案数位多少? 这一类问题就是骨牌覆盖问题。 不同规模的数据有不同的方法。 下面来看看最简单的 2×N 区域里面的铺设方法数。 N=0,一种; N=1 为一种 ; N=2,两种;N=3,5种; 较为容易看出是斐波拉契数列;所以快速幂矩阵...

weixin_30727835的博客 923

如何使用Qt的PIMPL习惯用法(PIMPL Idiom

PIMPL是指“Pointer to IMPLementation”(指向实现的指针),意味着将实现细节隐藏起来,用户类无需关注这些实现细节。在Qt中常用PIMPL习惯用法来清晰地区分接口与实现,尽管Qt官方文档并未详细说明该机制。本文将演示如何在Qt中使用PIMPL习惯用法,并以一个简单的坐标输入对话框作为实例。

电脑管家 1033

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9874

多米诺骨牌最长牌阵java_棋盘的完美覆盖(多米诺骨牌完美覆盖)&&幻方(魔方阵)...

棋盘的完美覆盖:一张8行8列的棋盘一共有64个方格,用一些形状相同的多米诺骨牌覆盖,每一张覆盖相邻的两个方格,没有相互重叠,能用32张这样的多米诺骨牌完全覆盖整张棋盘称为多米诺骨牌完美覆盖或者盖瓦。这样的完美覆盖是存在的,而且不止一种方式,一共有12988816=2^4*17^2*53^2种。那么对于一般的m行n列的棋盘是否存在着多米诺骨牌完美覆盖呢?充要条件是m*n是偶数,这等价于分子物理学中的...

weixin_42130786的博客 808

【文献阅读笔记】之基于注意力机制的深度学习路面裂缝检测

中文,计算机辅助设计与图形学学报,第 32 卷 第 8 期,2020 年 8 月。 DOI: 10.3724/SP.J.1089.2020.18059 摘要: 为实现自动准确地检测路面裂缝, 提升路面裂缝检测效果, 提出了一种基于注意力机制的裂缝检测网络 (attention-based crack networks, ACNet). 该网络采用编码器-解码器网络构架, 编码器采用 ResNet34 为骨干网, 提取路面裂缝特征; 在编码器和解码器间加入基于注意力机制的特征模块(attention-b

qq_44785998的博客 7592

(小规模)b牌棋盘完美覆盖数

(小规模)b牌棋盘完美覆盖数      考虑一个普通的国际象棋棋盘,它被分成8*8(8行8列)的64个正方形。设有形状一样的多米诺骨牌,每张牌恰好覆盖棋盘上相邻的两个方格(即1*2的骨牌)。那么能否把32个这样的1*2骨牌放到棋盘上,使得任何两张牌均不重叠,每张多米诺骨牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为被多米诺骨牌的完美覆盖。这是一个简单的排列问题,人们能够很...

Wind_bow的博客 991

从Unitree B2W到四足机器人:用Isaac Lab构建强化学习奖励函数的5个实战技巧

本文分享了在Isaac Lab仿真环境中,为Unitree B2W等四足机器人设计强化学习奖励函数的5个核心实战技巧。内容涵盖奖励函数的结构化组合、轮腿混合机器人的适配策略、课程学习的动态调整、域随机化增强鲁棒性以及高效的调试可视化方法,旨在帮助开发者构建更稳定、高效的机器人运动策略。

lg888的博客 1065

Brim与ZUI协同安装指南:从下载到流量分析实战

本文提供Brim与ZUI协同安装与实战指南,详细讲解从下载、环境变量配置到流量分析的全流程。通过将PCAP文件转换为ZNG格式,结合直观的Zed查询语言,这套组合能极大提升大型网络数据包的分析效率,是网络安全与运维人员进行高效流量分析的利器。

metal的博客 458

NOI 4.5 动态规划 1665:完美覆盖

题目来源:http://noi.openjudge.cn/ch0405/1665/1665:完美覆盖总时间限制: 1000ms    内存限制: 65536kB描述一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米...

da_kao_la的博客 734

局放起始电压(PDIV)与击穿电压(BDV):绝缘系统设计的核心参数 [特殊字符]

在电力设备绝缘系统设计中,**局放起始电压(Partial Discharge Inception Voltage, PDIV)和击穿电压(Breakdown Voltage, BDV)**是两个至关重要的参数。它们直接反映了绝缘材料的性能和绝缘系统的可靠性,对变压器的设计、制造和运行具有重要指导意义。本文将深入探讨这两项参数的定义、测试方法及其与绝缘设计制造的关系,帮助读者全面理解其在电力设备中的核心作用。

mubiao05的博客 2629

[动态规划] 完美覆盖

我们先计算一个n=2的时候,这是最小的单元(n=1的时候很明显,不可能被完全覆盖,或者从n必须为偶数理解)。比如n=4的时候,如果我们只是计算3*dp[2],那实际上我们在n=2,3这两列可以横着放多米诺牌。所以我们还需要考虑dp[i-4],即我们空出四列出来,然后计算dp[i-4]*2,然后保持这两列横着放,继续i-=2,因为我们刚刚使用了dp[i-4],这是没有考虑i-4和i-5列横着放并且i-3和i-2列横着放的情况。针对每一行的 n 值,输出 3 乘 n 棋盘的不同的完美覆盖的总数。

StudyingPanda的博客 924

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2638

车载以太网网络测试-27【SOME/IP-SD简述】

SOME/IP-SD协议是基于IP的可扩展面向服务中间件中的服务发现协议,是汽车电子和嵌入式系统中实现动态服务发现与通信的核心组件。该协议规范详细说明了协议SOME/IP服务发现(SOME/IP-SD)的格式、消息序列和语义。本文将对SOME/IP-SD协议进行详细介绍。

车载网络测试工程师的博客 1953

1665:完美覆盖(4.5算法之动态规划)

1665:完美覆盖总时间限制: 1000ms 内存限制: 65536kB 描述 一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋盘

扣扣biubiubiu~ 1304

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

POJ 算法基础 编程题#1: 完美覆盖

编程题#1: 完美覆盖 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1...

weixin_30612769的博客 508

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

组合数学—什么是组合数学(1)

组合数学所关心的问题就是把某个集合中的对象排列成某种模式,使其满足一些指定的规则,以下是反复出现的通用问题: 1.排列的存在性(存在性,即能否排列问题) 2.排列的列举或分类(计数,能用多种方法)          1.研究已知的排列          2.构造最优排列 组合数学是研究离散构造的存在、计数、分析和优化等问题的一门学科。   1.棋盘完美覆盖 1)一张普通的棋盘,被分...

kankandage的博客 7045

1837 3行n列棋盘不同完美覆盖的计数

描述 下学期同学们将学习组合数学课,组合数学也是计算机数学的重要组成部分。在下学期组合数学课的第一讲中,我们将会遇到一个有趣的计数问题:棋盘的完美覆盖。 考虑一张普通的国际象棋棋盘,它被分成 8 乘 8(8 行 8 列 ) 的 64 个方格。设有形状一样的多米诺牌,每

无知的我 4299

完美覆盖

一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为棋盘被多米诺牌完美覆盖。这是一个简单

wyi06的博客 647

2663 Tri Tiling 完美覆盖,样例分析+详细题解-只需10行代码

描述 一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为棋盘被多米诺牌完美覆盖。这是一...

csyifanZhang的博客 1003

完美匹配例子

一块多米诺骨牌可以覆盖棋盘的两个方格。请用31块多米诺骨牌盖满一个除去左上和右下方格(在同一对角线上)的棋盘。(一个棋盘由8×8 = 64个方格组成)n=8; from=zeros(4*n*n,1,'int32'); to=from; ind=0; node=zeros(n,n); node(:)=0:n*n-1; for i=1:n for j=1:n if i==1 ...

数学算子的天地 1559

第1章习题

1. 证明$m \times n$棋盘被多米诺骨牌完美覆盖当且仅当$m$和$n$中至少有一个是偶数。 证明:$m \times n$棋盘被$t$个多米诺骨牌完全覆盖,于是$mn = 2t$,则$2 | mn$,考虑到$2$是素数,因此$2 | m$或$2 | n$,即$m$和$n$中至少有一个是偶数,证毕。 2. 考虑$m$和$n$都是奇数的$m \times n$棋盘。为了固定表记方式,假设...

weixin_34129696的博客 928

棋盘的完美覆盖(多米诺骨牌完美覆盖)&&幻方(魔方阵)

棋盘的完美覆盖: 一张8行8列的棋盘一共有64个方格,用一些形状相同的多米诺骨牌覆盖,每一张覆盖相邻的两个方格,没有相互重叠,能用32张这样的多米诺骨牌完全覆盖整张棋盘称为多米诺骨牌完美覆盖或者盖瓦。这样的完美覆盖是存在的,而且不止一种方式,一共有12988816=2^4*17^2*53^2种。那么对于一般的m行n列的棋盘是否存在着多米诺骨牌完美覆盖呢?充要条件是m*n是偶数,这等价于分子物理学

theArcticOcean 7535
上一篇: De Morgan's laws
下一篇: Proofs without words
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值