二聚物问题与组合数学

曾经在一本书上看到过一个铺瓷砖问题,大意是: 
能否用1 2的瓷砖覆盖N M的地板? 
书上给出了解答: 
1.         如果N=1,M为偶数,显然1 2的瓷砖可以覆盖N M的地板。 
2.         如果N M为奇数,即N和M都为奇数,则肯定不能用1 2的瓷砖去覆盖。( N M不被1 2=2整除) 
3.         如果N和M中至少有一个偶数,不妨设M为偶数,那么既然可以用1 2的瓷砖覆盖1 M的地板,也就可以简单地重复N次覆盖1 M地板的做法,就可以覆盖N M的地板。 
结论:若N和M中有一个是偶数,则可以覆盖,反之不能。 

这道题目是十分简单的,只要有一些最基本的数论知识就能够答出来,但是我觉得,只解答这么一道简单的问题,是不够的,还要考虑一下它的推广。 

推广1:能否用1 p的瓷砖覆盖N M的地板? 
这个题目还是比较简单,答案几乎只要套用一下上面的格式就可以了: 
1.  如果N=1,M被p整除,显然1 p的瓷砖可以覆盖N M的地板。 
2.  如果N M不被p整除,即N和M都不被p整除,则肯定不能用1 p的瓷砖去覆盖。( N M不被1 p整除) 
3.  如果N和M中至少有一个被p整除,不妨设M被p整除,那么既然可以用1 p的瓷砖覆盖1 M的地板,也就可以简单地重复N次覆盖1 M地板的做法,就可以覆盖N M的地板。 
结论:当N和M中至少有1个被p整除时,可以覆盖,反之不能。 

这样推广还是很简单的,那么再看一下更加一般的情形。 

推广2:能否用p q的瓷砖覆盖N M的地板(我们假定N和M都大于p和q)? 
这样一推广,答案就不能照搬了,但是可以轻易看出的是:如果N M不被p q整除,那么是肯定不能覆盖的。那么,是否当NM被pq整除的时候,都可以覆盖呢? 
这时有两种情形: 
一、         N和M中有一个被p整除(不妨设为N),而另一个被q整除。 
1.         如果N=p,M被q整除,显然可以用p q的瓷砖覆盖N M的地板。 
2.         如果N=pk(k为整数),M被q整除,那么既然可以用p q的瓷砖覆盖p M的地板,也就可以重复k次这样的铺法,就可以用p q的瓷砖覆盖N M的地板。 
所以在这种情况时,可以用p q的瓷砖覆盖N M的地板。 
二、         N和M中有一个数被[p,q]整除(不妨设为N)且NM被pq整除。 
这时候,并不总是能完全覆盖。 
可以简单地举出几个反例来: 
P 
Q 
N 
M 
3 
3 
9 
8 
3 
5 
15 
7 
3 
7 
21 
11 
10 
14 
70 
26 
…… 
…… 
…… 
…… 
反例还有无数个,就不用再多举几个例子了。 
经过仔细观察之后,发现在这几组数据中,M都不能表示成ap+bq(a,b N)的形式。 
我们可以证明:如果N被[p,q]整除且M能够表示成ap+bq的形式,那么是可以覆盖的。 
1.     如果N=[p,q],且M=p或q,则易知可以覆盖。 
2.     如果N=k[p,q],且M=p或q,重复k次步骤1,也可以覆盖。 
3.     如果N=k[p,q],且M=ap+bq,重复a次步骤2,再重复b次步骤2,也可以覆盖。 
但是当N被[p,q]整除,但是M不能表示成ap+bq的形式时,是不是一定就不能覆盖呢?刚开始时,我为这个问题迷惑了很久,然而想了一下,就发现了证明: 
如果能覆盖,则长为M的一条边必被p1条长为p的边和q1条长为q的边覆盖,这样M=p1p+q1p,但是已知M不能表示为ap+bq的形式,所以不能覆盖。 
结论:当N和M中有一个是p的倍数,另一个是q的倍数时,或NM被pq整除,N和M中有一个是[p,q]的倍数,另一个能够表示为ap+bq时,可以覆盖;当NM不被pq整除时,或NM被pq整除,N和M中有一个是[p,q]的倍数,另一个不能表示为ap+bq时,不能覆盖。 

推广1和推广2都是从数据的范围来推广,我们还可以用另外一种方式来推广。 

推广3:求用1 2的瓷砖覆盖2 M的地板有几种方式? 
这样的问题还是比较简单的。我在搞信息竞赛的时候遇到过很多次这种题,对解答也是耳熟能详: 
设用1 2的瓷砖覆盖2 M的地板有F(M)种方式。通过简单分析,我们可以知道,第一块瓷砖的放法,必定是竖着放,或横着放。 
当第一块瓷砖竖着放时,问题转化成求用1 2的瓷砖覆盖剩下的2 (M-1)的方式种数,即F(M-1)。 
当第一块瓷砖横着放时,必有另一块瓷砖放在其下方,问题转化成求用1 2的瓷砖覆盖剩下的2 (M-2)的方式种数,即F(M-2)。 
总结起来,就是F(M)=F(M-1)+F(M-2)。 
再考虑一下边界值F(1)=1,F(2)=2,发现这就是一个斐波那契数列,我们可以直接用式子写出来。 
结论: 。 

接下来依然是增加数据范围来推广。 

推广4:求用1 p的瓷砖覆盖p M的地板有几种方式? 
这样的推广,还是难不倒人的。 
设用1 p的瓷砖覆盖p M的地板有F(M)种方式。通过简单分析,我们可以知道,第一块瓷砖的放法,必定是竖着放,或横着放。 
当第一块瓷砖竖着放时,问题转化成求用1 p的瓷砖覆盖剩下的p (M-1)的方式种数,即F(M-1)。 
当第一块瓷砖横着放(不论放在哪一行)时,必有(M-1)块瓷砖放在其下方,问题转化成求用1 p的瓷砖覆盖剩下的p (M-p)的方式种数,即F(M-p)。 
总结起来,就是F(M)=F(M-1)+F(M-p)。 
边界值:F(1)=1,F(2)=1,……,F(p-1)=1。 
这样就容易算了。 
结论:F(1)=1,F(2)=1……,F(p-1)=1,F(M)=F(M-1)+F(M-p)。 

上面的几个推广,我都尽力去解答它们,而下面的几个推广,我就是身不能至,心向往之了: 

推广5:用p q的瓷砖覆盖N M的地板有多少方式? 

推广可以考虑图形的形状。 

推广6:给定任意形状的瓷砖和地板,问能不能用瓷砖去覆盖地板? 
推广7:给定任意形状的瓷砖和地板,用瓷砖去覆盖地板有多少种方式? 

推广也可以增加维数。 

推广8:在k维空间中,p1 p2 …… pk的k维立方体瓷砖能否覆盖N1 N2 …… Nk的k维立方体地板? 
推广9:在k维空间中,用p1 p2 …… pk的k维立方体瓷砖覆盖N1 N2 …… Nk的k维立方体地板有多少种方式? 

如果图形是高维数且任意形状,那么题目的难度对于我们来说就不可想象了: 

推广10:在k维空间中,用一个k维任意形状的瓷砖覆盖一个k维任意形状的地板有多少种方式?
利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值