版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、遥控器同时开关多部空调问题的数学研究高二(9)班 陈浩 张子卓 廖居敬 赖哲 李皓杰指导教师 邓献宝问题提出 某办公室里有6部空调并排安装在一面墙上。当用遥控器对其中一部空调操作时,则会影响到相邻的空调。而在不同的位置操作,所影响的空调的数目也会不同。如果需要使其中的空调状态依照我们的意愿改变,那么这个问题可否运用数学的方法来解决呢?研究目的研究并找出空调改变状态的规律,将其转化成数学语言,结合编程软件Pascal实现这一转化(编写程序),计算出在任何初始情况下,到达任意最终情况的最佳操作方案。研究过程1、问题假设假设在某一距离,用遥控器对其中一部空调进行操作,则相邻两部空调的状态会同时改变(
2、遥控器上的“开/关”按钮是属切换按钮)。即假设从左到右第2台的状态为开,第3、4台的状态为关,那么当用遥控器对第3台操作的时候,第3、4台被开启,而第2台则被关闭。若其中任意空调的状态为开,在这个距离,能否通过有限次的操作,使这些空调的另外任意台的状态变为开呢?若是能够,会有最优方案吗?2、初步探索首先,我们设定空调状态“开”时为“1”,“关”时为“0”。例如“开关开开关关”表示为“101100”。先将机器从左到右编号为m1、m2、m3、m4、m5、m6设m1=1,m2=0,m3=0,m4=1,m5=0,m6=0。根据实际情况确定运算的规则为:定义赋值函数g (mn)=, 即若mn=0则将mn
3、=1,反之则赋值mn=0。从上面的公式我们发现函数的数值只取得到0和1,那么这个过程可否引入布尔运算呢?经过讨论,用布尔值运算结合程序的话,在最终转化上会出现比较复杂的过程,而且只用1、0两个数值来进行运算也是十分方便的,所以我们放弃了使用布尔值进行运算。定义判断的规则之后,我们便开始讨论该用何种方法找到最优方案。其中我们要解决的问题主要有:1、最优方案有什么规律?2、如何筛选最优值?一开始,我们只是注意到每一步的操作结果,试图找出每一步的操作与上一步的结果有什么联系,但是我们渐渐发现,每一步之间并无联系。于是我们放弃了这种想法,把注意力转向其他想法。接着我们开始猜想,当一部空调被重复操作时,
4、这两次重复的操作之间是否有什么关系呢?于是我们进行了第一次尝试来证明我们的疑问:初始状态100100情况一情况二第一次操作m1010100m2111000第二次操作m2001000第三次操作m1111000在情况一中,对m1的两次操作,使得它们相互抵消,结果就和只操作m2的情况四是一样的。若对同一部空调操作偶数次,操作则可以相互抵消,那么在最优的操作方案中,每部机最多被操作一次。因此,可以进一步得出一个结论,当有n部空调时,从任意的初始状态到任意的最终状态,所操作的步数不超过n步。即最优解的步数应该在n步之内,并且最优解中无重复操作。既然最优解是n步以内不重复的话,那么接下来我们就想到对空调操
5、作的先后顺序会不会影响达到最优情况?会不会影响到达最优解的步数多少呢?于是我们作出了第二次尝试。我们尝试先后操作两部空调m1和m3,记录最后状态。之后再颠倒操作顺序,也记录最后状态。然后对两种情况作对比。初始状态100100情况三情况四第一次操作m1010100m3111000第二次操作m3001000m1001000对比两种状态,不难发现,无论操作的先后顺序如何,最终到达的状态都是一样的。接着我们又提出了如果是三部或更多部空调的操作顺序任意,最终结果是否也一样呢?经过尝试,我们发现,无论是三部空调还是四部空调,甚至是n部,操作的先后顺序怎样颠倒,结果都是一样的。所以我们得出一个结论,最优解的
6、步数在n步之内,最优解中无重复操作,并且最优解中各部机器被操作的的顺序是可任意的。根据以上研究得出的结论,剩下的问题就是如何确定最优解操作。 1)根据上面的结论,最优的操作次数不会超过6次,并且对每一次操作会同时对2部或3部空调赋值,即2或3台空调的状态会被改变。因此,第一与第六部空调最多被赋值2次,而第二到第五部空调对多被赋值3次。所以我们可以得出以下的不等式:0m1m2m616事实上,若fmn3(2n5),说明对fmn赋值了3次,根据操作规则,一定使左右两部空调至少被赋值2次。那fmn-12,fmn+12。若fmn0(2n5),则fmn-11,fmn+11,那就是说,若fm20或fm50,
7、则一定有fm10或fm60。 于是我们得出了第一种确定最优解的方法: 因为目标状态于初始状态对比,就同一部空调而言前后两个状态就只存在相同或者相反两种情况。在最优解情况下,假如空调mn初始状态与它所对应的目标状态相同的话,那么它被赋值的次数就必然是偶次,换言之就是fmn=0或fmn=2;反之,则fmn=1或fmn=3(n=1或n=n时fmn只等于1)。那么要判断是否达到最优解,就只要先确定每部空调被赋值的次数应为奇次或偶次,最后只要每部空调都达到了所要求的赋值次数,那么就证明达到目标状态了。这时就运用上面的理论再进行推理就可以找出最优解方案了。 2)然后又根据上面的结论,最优解应是n步以内的不
8、重复的操作。重复的步骤是可以抵消的,那么抵消的条件就是对该机器的操作次数为2、2×2、2×3,即偶数次时就可以抵消;反之则奇数次的就可以保留。 所以这就产生了第二种决定最优解的方法: 通过无限次的操作达到目标状态之后,判断在这过程中每台机器被直接操作过的次数,如果被操作的次数为偶数次的话,则会被抵消,也就是说这一步可以忽略;反之为奇数的话则证明这步操作不能被抵消,也就是这一步是一定要操作的。于是剔除所有被操作了偶数次的机器,剩下的被操作了奇数次的机器则为最优解中的操作了。最后基于我们的研究是要结合程序语言来解决数学问题,我们经过讨论,对于上面1)的判断筛选最优解过程,无论从
9、人为判断还是要翻译成程序语言,都十分的复杂,所以我们就采用了2)的筛选判断最优解方法了。3、提出方案与讨论在得到以上规律后,提出了三种方案。方案一:我们第一想到的是按m1、m2、m3、m4、m5、m6这样的顺序一台一台操作下去,然后通过多重循环来算出最佳方案,但是这又遇到了问题:假如解决方案并不是一个顺序操作,那么程序会不会进入死循环呢?于是我们设想先从16进行一次顺序的赋值操作,如果得不到结果的话,那么就回到对4赋值,跳过对5的赋值,执行对6的赋值,如果仍没有结果,则退到对3的赋值,接下来再对5、6赋值,如果还没有结果的话,则只对5赋值,或只对6赋值。如果退到对1赋值仍没有结果则从2开始赋值
10、,重复以上的方法,直到最后找出最佳方案为止。方案一若编为程序,会出现运算量较大,使运行时间过长的问题。编写的程序也相对复杂,容易出错。基于上述原因,我们决定放弃这种方案。 方案二:由于每步操作的顺序是不受限制的,于是利用电脑的高速运算的能力,对于任意的初始状态,通过程序,每次随机对一部空调进行操作,并同时记录下每一部空调被直接操作的次数。当判断到达所给出的最终状态后,对每部空调操作的次数进行判断,若被操作次数是偶数次的空调则舍去;若被操作次数是奇数次的空调直接打印空调的编号。这样就可以得到最优的方案。就方案二而言,可以算出答案,而它不具有针对性,可以推广到N台空调。但是这种方案在程序的运行时是
11、没有一定的规律,因为它是随机的对任意一台空调操作。因此,此方案可能会出现运算时间长的情况。 方案三:这个方案是针对所提出的问题所设计的。通过电脑编程,对1到6所有不重复的操作组合都枚举出来(例如12、13、123),再利用电脑程序将这些操作的组合套到所给出的最初情况中,当其中一个组合使得最初情况达到所要求的最终情况时,就停止程序并把这个组合打印出来。对于方案三,不仅可以得到答案,而且它具有一定的针对性,在程序运行时会按照一定的规律,所以在运算的时间不会太长。但是,这种方案在推广方面就会比较困难,每增加一部空调,所得到的组合的方案数就会增加,当所输入的空调的数目达到某个程度,所需要的运行时间可能
12、会较长。 最后,我们决定采用方案二为基础进行编程。4、方案程序化当确定了按方案二来解决该问题后,我们就开始着手于将方案的思路用程序语言来实现。第一 要确定机器的情况:1)先手动输入空调的数目n;2)再手动输入这n台机器的初始状态(用数组m1.n来储存,同时m1.n也用于储存过程状态)和目标状态(用e1.n来储存);第二 通过电脑程序算出最优值3)先随机产生一个1n之间的整数j;4)对mj、mj+1、mj-1进行判断,若“状态”为1的就赋值为0,否则就赋值为1,同时再将第j部机被改变状态的次数加上1(用数组f1.n来分别记录每部机器被操作的次数);5)每次对第j、j+1、j-1三台机的状态进行改
13、变之后,都要将当时的过程状态与目标状态进行对比并计算其相似度(用p来记录m数组和e数组状态吻合的个数作为相似度)。若pn就说明未到达目标状态,则返回第3步继续运算;若p=n则说明已达到目标状态,则继续进行下面的步骤分析并打印出最优解; 第三 分析数据并列出最优解 6)对数组f1.n中记录到的每台机器被操作的次数进行求余操作,若fi mod 2=1(即fi除以2的余数为0,即奇数),则操作第i部机器为最优解中的一步,记录下来,若fi mod 2=0(即fi为偶数),则这部机器的操作可省略; 7)输出第6步中记录的最优解; 8)程序结束。 一维程序主体见“附1”。5、问题推广以上问题是针对改变单行
14、机器状态的,即一维问题。那么,如果变成是针对a×b这么一个矩阵式的机器排列的状态转换问题,即二维问题,是否也能解决呢?首先我们建立一个二维数组,并以机器的坐标表示作为它的编号,即ma,b。例如,一个3×3的机器矩阵中各机器的编号如下:m1,1 m1,2 m1,3m2,1 m2,2 m2,3m3,1 m3,2 m3,3假设对其中任一台ma,b进行操作,则ma,b-1 ma,b+1 ma-1,b ma+1,b的状态也会受影响,即对一部空调操作,除该空调外,它左右上下四台空调的状态也会改变。而对于某些特殊点上的空调,例如m2,1,由于其左方并没有其他空调,所以对它的操作就只能影响
15、它本身和其右方、上方、下方三台空调的状态。其他的特殊点也依此类推。经过讨论研究发现,对于矩阵排列空调的控制,从任一初始状态到达另任意目标状态,其运算及判断的方法基本上是一样的,只是状态被改变的影响范围增加了并且把一维数组升级为二维数组就能够解决问题了。 由于是a×b的一个矩阵,那么a、b就是任意的非零的数,那么当a=1,b3时,这就又回到了上面的一维问题。所以解决二维的程序同时也能够解决一维的问题。 由于解决两个问题的理论依据基本相似,所以在对一维问题的程序进行适当的修改之后,我们得出了二维问题的程序。但是由于技术上的原因,目前程序只能够实现对“3×3”“2×3”
16、“3×2”三种矩阵的最优方案的计算,而当a,b>3的情况并未能实现。我们将会在今后的实践中对程序进行修改和对方法进行优化,以解决此不足。二维程序主体见“附2”。研究体会以下是我们对这次研究性学习的三点总结:【科学性】从一般生活问题,发现并总结其规律,得到的研究成果具有针对性,可以推广,以及可以在实际生活中应用。【创新性】此研究性课题是从真实生活中发现的原始问题,并将其进行了数学建模,最后进一步建立程序模型来解决数学问题。这弥补了某些研究找出解决方案但通过人为很难实现的缺点。【意 义】我们的研究从一开始的探索规律到解决一个一维问题并将其推广到二维问题来解决,然后又从二维问题重新回
17、归到一维问题的身上,这不但体现了数学问题的多变与联系,同时也体现了事物是普遍联系的哲学道理。在接到这个课题的时候,我们脑海里是一片空白的。原因是这个课题比较新颖,并没有人研究过,致使我们不知道应该从何入手。尽管在整个研究过程中也经历过好几次的失败,但我们并没有气馁,而是通过不断的尝试,不懈的努力,加上老师的指导帮助,最终很好的完成了此课题的研究,得到了一个不错的研究成果。经过对此课题的研究,我们的思维得到了锻炼,而且增强了解决问题的能力以及培养了严谨的治学态度。在以数学思维去解决问题的同时,我们的逻辑思维能力也有所提升,并且学会了组员之间应该如何相处、如何互助,培养了可贵的团队精神。这些都将成
18、为我们成长过程中的宝贵经验,使我们终生受益。指导教师评析 本课题对生活问题进行数学建模,并且课题新颖,研究到位,具有较强的的科学性,创新性和应用性。其中将生活问题进行数学建模,运用计算机编程实现最优解;并且实现由一维问题到二维问题的推广;都是其优势所在。附1:一维问题程序:Program Research;Var n,i,k,j,l,t :integer; m,e,f,s :array1.100 of integer;Begin l:=1; write('Input The Number Of Machines:');readln(n); for i:=1 to n do fi
19、:=0; writeln('Input The Beginning Situation.'); for i:=1 to n do begin write('Machine',i,':'); readln(mi); end; writeln('Input The Ending Situation.'); for i:=1 to n do begin write('Machine',i,':'); readln(ei); end; repeat k:=0; j:=random(n)+1; fj:=fj+
20、1; if mj=1 then mj:=0 else mj:=1; if mj+1=1 then mj+1:=0 else mj+1:=1; if mj-1=1 then mj-1:=0 else mj-1:=1; for i:=1 to n do if mi=ei then k:=k+1; until k=n; for i:=1 to n do begin t:=fi mod 2; if t=1 then begin sl:=i;l:=l+1; end; end; write('The Best Solution Is:'); for i:=1 to l-1 do write
21、(si:3); readln;End.附2:二维问题程序Program ReSearch2;Var m,e,f,s :array1.50,1.50 of integer; a,b,i,j,k,l,r,p,t1,t2,z :integer;Begin l:=1;r:=0; writeln(' Length'); writeln(' -'); writeln(' W | |'); writeln(' i | |'); writeln(' d | |'); writeln(' t | |'); write
22、ln(' h | |'); writeln(' -'); write('Input The Length:');readln(b); write('Input The Width :');readln(a); for j:=1 to a do begin writeln('Input The Beginning Situation Of Row',r+1,':'); r:=r+1; for k:=1 to b do begin write('(',j,',',k,'):'); read(mj,k);fj,k:=0;sj,k:=0; end; end; r:=0; for j:=1 to a do begin writeln('Input The Ending Situation Of Row
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北女子职业技术学院单招综合素质考试参考题库带答案解析
- 2026年黑龙江农业工程职业学院单招职业技能笔试参考题库带答案解析
- 投资协议合同协议(2025年风险投资)
- 投资合作协议2025年项目
- 2026年德阳科贸职业学院单招职业技能笔试备考试题带答案解析
- 2026年福州外语外贸学院单招综合素质考试参考题库带答案解析
- 2026年湖南工业职业技术学院高职单招职业适应性测试参考题库有答案解析
- 2026年安徽工贸职业技术学院单招综合素质笔试参考题库带答案解析
- 2026年崇左幼儿师范高等专科学校单招综合素质笔试参考题库带答案解析
- 2026年安阳职业技术学院单招综合素质笔试参考题库带答案解析
- 控脑技术发展及军事应用预测研究
- 切尔诺贝利事故课件
- DG-TJ08-2482-2025 建设工程数智化检测技术标准
- 公路养护作业标准化操作手册
- ECRS精益管理工具应用解析
- 公路防暑安全教育培训课件
- 水轮发电机维护课件
- 2025行政执法人员执法资格证考试题库及答案
- AutoCAD项目教程 教案3-2 绘制叉架类零件图
- 数据规范存储管理办法
- 重庆公房出售管理办法
评论
0/150
提交评论