数模论文.docx
《数模论文.docx》由会员分享,可在线阅读,更多相关《数模论文.docx(26页珍藏版)》请在冰豆网上搜索。
![数模论文.docx](https://file1.bdocx.com/fileroot1/2023-2/5/0b05741c-19ba-4ba9-94df-e80655fabea7/0b05741c-19ba-4ba9-94df-e80655fabea71.gif)
数模论文
五连珠问题
摘要
五连珠问题无论在一维二维三维里,要使得没有五个点在一条直线(横、竖、斜方向)上依次相连,并要求取出最少的点,关键问题是基础结构5×5平面模型与5×5×5空间模型的建立与延伸拓展。
针对问题1:
在6×7的二维棋盘上取出最少的棋子使得棋盘上剩下的棋子,没有五个在一条直线(横、竖、斜方向)上依次相连。
首先用逆推法考虑到6*7的棋盘是由5×7的棋盘再增一行。
因此分析,在5*7的二维棋盘上,为使竖直方向上满足不出现五连珠,必在每一列上取出一颗棋子,即至少需要7枚棋子才可以满足。
在6×7的二维棋盘中,对于新增的一行要使其在水平方向上不出现五连珠,至少需要再取一枚棋子,即至少需要8枚棋子才可以满足。
因此,找到一种取出8枚棋子的方法满足要求,即可证明8枚为取出棋子的最少解。
针对问题2:
沿用第一问逆推的方法,找到5×5的基础结构。
经过研究发现在5×5的棋盘模型中,至少需要取出5枚棋子才可以满足题目条件,并且其中只有10种取法所得到的棋盘拓展延伸后依然满足条件,将10种的5*5棋盘模型为一个单位在二维进行两个方向的延伸,得到5a×5b(a,b=1,2,3…)的棋盘。
通过后文证明得到对于任意m×n(m,n=1,2,3…)阶棋盘,在5a*5b的棋盘模型取出子棋盘m×n即为所求。
并得出取出最少棋子的公式:
[m/5]*[n/5]*5+[m/5]*(n%5)+[n/5]*(m%5)+edg[s0][t0](s0=m%5,t0=n%5
edg[s0][t0]={0,0,0,0,0,(s0=0,t0取0到4)
0,0,0,0,0,(s0=1,t0取0到4)
0,0,0,1,1,(s0=2,t0取0到4)
0,0,1,1,2,(s0=3,t0取0到4)
0,0,1,2,3}(s0=4,t0取0到4)
由此算出13*17的答案是44。
针对问题3:
从5×5×5的基础结构入手。
首先画出5种不同的满足条件可延伸5×5的平面,将这5种5×5的平面叠加成一个5×5×5的立方。
再考虑另外两个方向上的10个平面,要使其均满足不出现五连珠且能够延伸,则再需在某一方向上每个平面各增加4枚棋子,即至少取出总共45枚棋子满足立方可扩展性。
将此立方扩展,在扩展后的立体中找出一个m×n×p的空间长方体网格即为所求。
但对于小于10×10×10的空间长方体网格,因为没有出现立方体的整体扩展,所以不满足可扩展性,即不能用上述方法找出解。
对此,我们采用在5×5×5的立方模型上层层累加,累加的每个平面保证取出棋子最少并满足不出现五连珠。
通过编写的程序来验证并修改(增删取出的棋子)空间长方体网格结构,使得空间长方体网格在空间横竖斜各个方向上满足不出现五连珠。
最后得到对于6×7×6的空间长方体网格满足题目条件的取出的最少棋子为53枚。
关键词:
五连珠横竖斜三方向基本模型可扩展性
一、问题重述
问题1:
特殊问题
如图,在6×7的长方形棋盘的每个小方格的中心点各放一个棋子。
如果两个棋子所在的小方格共边或共顶点,那么称这两个棋子相连。
现从这42个棋子中取出一些,使得棋盘上剩下的棋子,没有五个在一条直线(横、竖、斜方向)上依次相连。
请用数学的方法解决最少取出多少个棋子才能满足要求?
并说明理由。
同时给出一种去掉棋子的方式。
提示:
如果证明至少需要取出k个棋子。
可采用的一种思路是:
理论上证明取k-1个棋子不能满足要求,而你确实找到一种取出k个棋子就可以满足要求的取法。
另一种思路是采用一种方法证明至少需要取k个棋子才能满足要求,而你确实找到一种取出k个棋子就可以满足要求的取法。
当然或许你还有别的思路。
在这个具体问题中,请你只用数学的方法解决该问题。
问题2:
二维一般问题
对问题1中使用数学证明的方法,只能解决规模很小的问题。
而且针对不同的规模,所使用的数学技巧会不同。
这样就不具有一般性。
如果现在需要你从一般性的问题考虑,你将如何解决这个问题呢?
一个很自然的想法是利用数学建模的方法建立一般模型,然后设计算法或利用软件求解。
基于此,请针对任意规模m*n的棋盘,要求满足的条件与问题1相同。
问至少去掉多少个棋子,可以使没有五个在一条直线(横、竖、斜方向)上依次相连。
并对13×17的长方形棋盘,给出具体的求解结果,并将最后结果给出直观的棋盘表格显示。
问题3:
三维问题
若将该二维平面网格扩展到三维空间,得到一个m×n×p的空间长方体网格。
每个格子是一个1×1×1的小正方体。
在这些格子中同样都填满了棋子,现要从中抽取一部分,使得在每种平面,包括横向所截的m个平面,纵向所截的n个平面,竖直方向所截的p个平面,在每个平面上在横向、纵向、斜方向上都不出现5子连珠。
并且要求在空间斜线上也不出现5子连珠。
问最少去掉多少个棋子可以满足要求。
请建立一般问题的数学模型。
并针对6×7×6的空间网格用计算机求解,并给出具体的解结果。
提示:
如果用(i,j,k)三维坐标来表示空间的每个格子,对6×7×6网格,i=1,2,…,6;j=1,2,…7;k=1,2,..,6。
判断某些格子是否共线,可以通过判断这些格子是否在一条空间直线上来判断。
如(1,1,1),(2,2,2),(3,3,3,),(4,4,4),(5,5,5),(6,6,6)这些格子在一条斜线上。
(1,7,1),(2,6,2),(3,5,3),(4,4,4),(5,3,5),(6,2,6)这些格子也在一条斜线上。
2、问题分析
第一问是五连珠问题在2维空间的特殊问题,第二问就在第一问的基础上进行一般化,要求建立二维空间模型并给出二维空间的一般解法,第三问是一二问的拓展延伸,将二维空间问题延伸到三维空间,要求模型从二维到三维。
(一)对问题1,6×7的二维棋盘,可以看成是5×7棋盘增加一行。
研究5×7的棋盘会比较容易的发现每一列至少需要取出一个棋子才能满足条件。
对于新增的一行再取出一枚棋子以保证这一行满足条件,因此,至少需要取出总共8枚棋子使得6×7的二维棋盘不出现五连珠。
找出一种取出8枚棋子的方法满足条件,第一问即得到解决。
(二)问题2是将问题1进行一般化的推广,由特殊的6×7推广到m×n二维平面。
因此,需要建立一个一般化的模型来进行求解。
由可以延伸拓展,取出的棋子最少这两个条件,我们得出要保证在横竖斜任意方向上取出的两颗棋子均间隔4颗棋子。
由此,我们想到对5×5的棋盘进行平移可以满足上述条件。
就以5×5棋盘为模型,找到十种在该棋盘上且平移拓展延伸后的棋盘上均满足不出现五连珠的5×5棋盘模型。
从拓展后的棋盘上找到m×n阶棋盘,经证明满足不出现五连珠,并且取出的棋子最少,找到取出棋子的公式并用计算机算出即可得到结果。
(三)问题三是将问题2由二维向三维的进一步延伸,从5×5×5的基础结构入手。
首先画出5种不同的满足条件可延伸5×5的平面,将这5种5×5的平面叠加成一个5×5×5的立方。
再考虑另外两个方向上的10个平面,要使其均满足不出现五连珠且能够延伸,则再需在某一方向上每个平面各增加4枚棋子,即至少取出总共45枚棋子满足立方可扩展性。
将此立方扩展,在扩展后的立体中找出一个m×n×p的空间长方体网格即为所求。
但对于小于10×10×10的空间长方体网格,因为没有出现立方体的整体扩展,所以不满足可扩展性,即不能用上述方法找出解。
对此,我们采用在5×5×5的立方模型上层层累加,累加的每个平面保证取出棋子最少并满足不出现五连珠。
通过编写的程序来验证并修改(增删取出的棋子)空间长方体网格结构,使得空间长方体网格在空间横竖斜各个方向上满足不出现五连珠。
6×7×6的空间长方体网格用上述方式即为所求。
3、模型假设
1、假设在5×5模型中除了下文给出的10种模型,其他的取法模型平移拓展后均不能满足不出现五连珠并取出棋子最少。
2、假设在5×5×5模型中除了下文所给的模型及其类似型,其他的取法模型在空间拓展后均不能满足不出现五连珠并取出棋子最少。
4、符号说明
m
行数
n
列数
p
层数
s
m/5的整数部分
t
n/5的整数部分
h
p/5的整数部分
s0
m/5的余数
t0
n/5的余数
h0
h/5的余数
u
每一斜线代表数字之和
w
每一斜线对应u的乘积
sum
去掉棋子的总数
五、模型的建立与求解
问题的求解与分析
1、问题一的求解与分析
如图a,在6×7的二维棋盘上取出最少的棋子使得棋盘上剩下的棋子,没有五个在一条直线(横、竖、斜方向)上依次相连。
首先考虑在前五行上(阴影部分),为使竖直方向上满足不出现五连珠,必在每一列上取出一颗棋子,即至少需要7枚棋子才可以满足。
图a
对于第六行要使其在水平方向上不出现五连珠,至少需要再取一枚棋子,即至少需要8枚棋子才可以满足。
并且有六种取出8枚棋子的情况满足条件如图所示:
(黑色格子代表取出的棋子,白色的格子代表未取出的棋子)
第一种:
第二种:
第三种:
第四种:
第五种:
第六种:
问题一答案:
最少取出8枚棋子才能满足要求
2、问题2的求解与分析
问题2是将问题1进行一般化的推广,由特殊的6×7推广到m×n的二维平面。
为此,我们建立5×5的棋盘模型并对其进行拓展延伸,并找到10种取法平移拓展后不出现五连珠且能满足取出的棋子数最少。
10种取法结果如下图所示:
第一种取法第二种取法
第三种取法第四种取法
第五种取法第六种取法
第七种取法第八种取法
第九种取法第十种取法
证明拓展之后不出现五连珠且取出的棋子最少:
1、设在5×5二维矩阵中,值为0的位置表示放置了一个棋子(同时代表这个棋子),值为1的位置表示去掉了一个棋子(同时代表这个棋子)。
2、要使二维数组中1的值最多(题设要求),可知在5×5数组中,总存在每一行去掉一个棋子,即可满足要求(竖直方向、水平方向、斜线方向同时满足)。
3、基准方法为:
:
从第一行开始,每向上一行,去掉棋子的位置相对前一行向右(正方向)移动1、2、3个(0个会使水平方向满足题意,竖直方向不满足,4个的情况和结果与1个的情况和结果相同)。
:
将所得的数组矩阵向上和向右(正方向)平移,即可得到两个平移数组矩阵(最证明题设条件的矩阵)大小为5×10和10×5,在这两个个矩阵中,应该满足:
*
Α
Β
Γ
Δ
*
*
*
*
*
*
*
Α
Β
Γ
Δ
*
*
*
*
*
*
*
Α
Β
Γ
Δ
*
*
*
*
*
*
*
Α
Β
Γ
Δ
*
*
*
*
*
*
*
Α
Β
Γ
Δ
*
*
*
*
*
*
Ε
Ζ
Η
Θ
*
*
*
*
*
Ε
Ζ
Η
Θ
*
*
*
*
*
Ε
Ζ
Η
Θ
*
*
*
*
*
Ε
Ζ
Η
Θ
*
*
*
*
*
Ε
Ζ
Η
Θ
*
*
*
*
*
在这个10×5数组矩阵中:
左半个5×5和右半个5×5矩阵满足题设要求,只需证明有公用斜线的五个位置中至少有一个棋子(即这五个位置对应的数字的和大于0)设实数u=0,w=1;相同的Α、Β、Γ、Δ、Ε、Ζ、Η、Θ符号代表每一斜线。
令u等于相同一行的所对应数值的求和在用w将u相乘,在进行下一行的计算时对u重新赋值(u=0)。
如此下去,共进行8次基础相加,相乘运算u进行8次赋值运算。
得到最后结果w。
※如果w的值为0,则说明在这8个斜线中有一个没有满足五个棋子不相连的情况,如果w不等于0(等于1时即为取出棋子数最少的情况)说明8个斜线行满足五个棋子不相连的情况,满足题设要求。
※
满足上述w不为0的情况后,根据平移情况:
所有10×5的五个相连位置情况全部考虑,且不相连。
得证。
、5×10的情况也可由上述结论的出。
3、对于m×n的一般情况,求出具体值的过程为:
(求解程序和验证程序见附录一和附录二)
对于m×n的一般性情况,则有:
m×n阶数组矩阵可以简化为
从原点开始,向右和向上不断平移5×5基本棋盘(10种基本情况的数组矩阵),平移到足够大至可以包含m×n的大小,再截取出从原点开始m×n的矩形。
B
B
A
A
B
B
A
A
C
C
C
C
C
C
B
B
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
B
B
↑(坐标为(1,1))
其中A区域称为顶角区域,B区域称为边界区域,C区域称为整化区域。
正方向:
以左下角为原点、向右x和向上y为正方向。
C区域表示从原点开始x、y方向上每包含五个位置的方块区域的集合,大小为s*t(t=[m/5],s=[n/5])。
B区域为某一边长度为5整数倍,另一边不是的区域集合。
A区域表示m×n截去B和C区域的剩余部分,其大小为:
s0*t0(s0=m%5t0=n%5)。
可得最少取出棋子总数为:
SUM=s*t*5+(s0*t+t0*s)*5+f[s0][t0];
其中f为取边界的棋子数的最少个数关于s0和t0的函数,这个函数与5×5数组矩阵(即5×5最少棋子的取法方式)10种从原点开始的长度为s0和t0构成的矩阵所包含的棋子最少有关。
有f[s0][t0]={0,0,0,0,0,(s0=0,t0取0到4)
0,0,0,0,0,(s0=1,t0取0到4)
0,0,0,1,1,(s0=2,t0取0到4)
0,0,1,1,2,(s0=3,t0取0到4)
0,0,1,2,3}(s0=4,t0取0到4)
对于13×17的一种解(一共取出44个棋子):
3、问题3的求解与分析
对于m×n×p的一般空间长方体网格,从5×5×5的基础结构入手。
首先画出5种不同的满足条件可延伸5×5的平面,将这5种5×5的平面叠加成一个5×5×5的立方。
再考虑另外两个方向上的10个平面,要使其均满足不出现五连珠且能够延伸,则再需在某一方向上每个平面各增加4枚棋子,即至少取出总共45枚棋子满足立方可扩展性。
其各个平面如下图:
第一层第二层
第三层第四层
第五层
将5个平面依次叠加为立方网格,并将此立方扩展,在扩展后的立体中找出一个m×n×p的空间长方体网格即为所求。
但对于小于10×10×10的空间长方体网格,因为没有出现立方体的整体扩展,所以不满足可扩展性,即不能用上述方法找出解。
对此,我们采用在5×5×5的立方模型上层层累加,累加的每个平面保证取出棋子最少并满足不出现五连珠。
通过编写的程序来验证并修改(增删取出的棋子)空间长方体网格结构,使得空间长方体网格在空间横竖斜各个方向上满足不出现五连珠。
此时5×5×5立方模型为取出29枚棋子,其各个平面如图:
第一层第二层
第三层第四层
第五层
对于6×7×6的长方体网格,由5×5×5模型依次增加的平面依次为:
5×5平面(上)6×5平面(右)
6×5平面(右)6×7平面(前)
最后得到对于6×7×6的空间长方体网格满足题目条件的取出的最少棋子为53枚。
6、模型的评价与推广
该模型由特殊问题逆推得到并进行了优化改进,真实性可靠性强。
而且在模型建立的过程中进行了大量的实例验证,使其实用性更强。
但在计算10×10×10以内的最少解过程中需要采用枚举法并结合程序来验证,耗费一定的时间与精力。
但从整体上看,模型对于二维问题及三维绝大部分问题,都可快速进行求解,具有一定的推广价值。
七、参考文献
【1】2007年全国高中数学联合竞赛加试试卷第二题答案
附录1:
求解m×n取最少棋子个数代码
//数学建模比赛成员;赵一东、唐招武、刘蕴哲
//A题第二问求m*n阶具体值程序
//测试结果正确
#include
intedge(intu,intv)
{
intedg[5][5]={0,0,0,0,0,
0,0,