收藏 分享(赏)

数学模型的建立、比较和应用.doc

上传人:qcjlxh 文档编号:5310480 上传时间:2019-02-20 格式:DOC 页数:20 大小:202.50KB
下载 相关 举报
数学模型的建立、比较和应用.doc_第1页
第1页 / 共20页
数学模型的建立、比较和应用.doc_第2页
第2页 / 共20页
数学模型的建立、比较和应用.doc_第3页
第3页 / 共20页
数学模型的建立、比较和应用.doc_第4页
第4页 / 共20页
数学模型的建立、比较和应用.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、IOI99 中国集训队优秀论文选 - 1 -数学模型的建立、比较和应用苏州中学 邵铮关键字: 数学模型 算法 母函数【摘要】数学模型是解决实际问题的一种基本工具。将实际问题抽象成一个数学模型,运用数学工具进行求解,并将结果应用于具有相同特征的一类问题中,是解决问题的一种基本的途径。本文首先介绍了数学模型的一些性质,然后建立了三种不同的数学模型来求解一个问题,将三种数学模型相互比较,得出数学模型抽象性与高效性之间的关系,再将数学模型推广应用于另两个问题的求解,得出数学模型抽象性与可推广性之间的关系,最后总结全文,揭示出有关数学模型的一些普遍规律。一、引论实际问题往往是纷繁而复杂的,而其中的规律也

2、是隐藏着的,要想直接用计算机来求解实际问题往往有一定的困难。计算机擅长的是解决数学问题。因此,我们有必要将实际问题抽象成数学模型,然后再用计算机来对数学模型进行求解。与实际问题相比,数学模型有以下几个性质:1.抽象性:数学模型是实际问题的一种抽象,它去除了实际问题中与问题的求解无关的部分,简明地体现了问题的本质。这一点是下面两个性质的基础。2.高效性:数学模型中各个量之间的关系更为清晰,容易从中找到规律,从而提高求解的效率。由于这一点是由数学模型的抽象性决定的,因此数学模型的抽象化程度对数学模型效率的高低有重要的影响,这一点将在第二部分中详细阐述。3.可推广性:数学模型可以推广到具有相同性质的

3、一类问题中。换句话说,解决了一个数学模型就解决了一类实际问题。这里的“相同性质”是指相同的本质,表面看似毫不相干的问题可能有着相同的本质。由于这一点也是由数学模型的抽象性决定的,因此数学模型的抽象化程度对数学模型的推广范围也有重要的影响,这一点将在第三部分中详细阐述。二、数学模型的建立和比较由于考虑问题的角度不同,面对同一个实际问题,可能建立起各种各样的数学模型。在各种数学模型中,我们要寻找的是效率高的模型。模型的效率同模型的抽象化程度有关,下面从一个实例中来分析它们之间的具体关系。数学模型的建立、比较和应用- 2 - IOI99 中国集训队优秀论文选【多边形分割问题】将一个凸 n 边形用 n

4、-3 条互不相交的对角线分割为 n-2个三角形,求分割方案的总数.如:n=5 时,有以下几种分割方案:这道题可用以下几种方法来求解:.搜索法:这种方法的思路是将各种分割方案全都列举出来。显然,一组 n-3 条互不相交的对角线对应于一种分割方案,因此可把问题看作是求不同的对角线组的数目。将 n 边形的 n 个顶点按顺时针方向编号为 1、2、3n,则一条对角线可表示为一个数对(a1,a2),a1、a2 分别表示对角线两端顶点的序号,a1=3 时,若顶点 i-1 为始端的对角线一条都未连,则对角线(i-2,i)必须是已经连的。3.对角线的末端顶点序号必须大于 i。否则,顶点 i 将成为对角线的末端,

5、另一个顶点 j(j.递推法:上一种方法的数学模型中有很多与问题的要求无关的内容(如对角线的表示、对角线组的表示、每种具体方案)。在递推法建立的数学模型中,我们只考虑凸n 边形的分割方案总数。设 k 边形的分割方案总数为 Ak,于是得到 A 数列:A3,A4,A5.考虑 n 边形的分割方案总数 An。任取 n 边形的一条边,不妨取边(n-1,n), 若在某一种分割方案中,边(n-1,n)属于三角形(i,n-1,n),那么就将分割方案归Comment Shao1: 页码: 4数学模型的建立、比较和应用- 4 - IOI99中国集训队优秀论文选入第 i类,如图二所示。图二设第 i类方案总数为 Bi,

6、则Ani12计算 Bi可用如下方法:对于第 i类的方案,原 n边形已被分割为一个 i+1边形与一个(n-i)边形,下面的工作分为两步,第一步是将 i+1边形分割为三角形,有 Ai+1种方案,第二步是将(n-i)边形分割为三角形,有 An-i种方案。为了表达的方便,令A2=1,于是有ini1*将代入得:Aniiinin()(*)12121于是,问题的数学模型即为:已知:n 的值及数列 A2,A3,A4,该数列满足:A2=1, j2(*)jij1ii1求:An利用这个模型,我们即可很方便地依次求出 A3,A4.An。递推法的数学模型比搜索法的简明,抽象化程度更高,效率也高得多。用递推法编制的程序已

7、能应付中等数据,在 n.母函数法:上一种方法的数学模型中已去除了很多与问题的要求无关的内容,但同时,问题只要求 An,而上述方法却将 A3An 都求出了。能否不求 A3An-1 而直接由n求出 An呢?下面用母函数这种数学模型来解决这个问题。将 A2,A3,A4作为幂级数的系数,令Yxxi()*.23如果能解出 Y(x),那么也就求出了 An.为了求 Y(x),我们来看一下 Y(x)2的值:xxjijiji224()()数学模型的建立、比较和应用IOI99 中国集训队优秀论文选 - 5 -而 ,因此有:(*)Ajijji i21Yxx345).-*x 得:2230(*()将 代入,解出 :A1

8、Y()Yxxx()*3414各项系数均为负数,而 Ai0,故:223. , ()*1其中 ,44120xkxk*()121212k*()*.()!于是,Ykk()20xxkkxkkk*()().().()().().144221111212132所以,Akk()411222231().()!*(kk351*.()k12.!*k354641*.().()(!k!()24k124Ck*于是得出了由 n 直接求出 An 的数学模型:已知:n 的值,数学模型的建立、比较和应用- 6 - IOI99 中国集训队优秀论文选ACn124求:An求解时用公式可直接计算 An。在三个数学模型中,这一个表达最为简

9、洁,抽象化程度最高。用它来求解的效率也最高。n=1000 时不超过 1 秒,n=5000 时也仅需 14.7 秒(486DX2/80),测试结果见附表一与附表二。搜索法作为一种最基本的方法,建立在一个较为复杂的数学模型之上,它的特点是可以求出每一种分割方法,但用这种方法来求方案总数显然针对性不强,因此效率很低。递推法是建立在数列这个数学模型之上的,由于去除了很多不必要的因素,效率大为提高,对于 n300 时充分显示出其优势。从以上的分析中可以得出这样的结论:数学模型的抽象化程度越高,它的效率越高。这个结论很容易理解,因为抽象化程度越高,数学模型中与问题无关的成分就越少,于是效率也就越高。相反的

10、,若抽象化程度不够高,则数学模型中含有较多的与问题无关的成分,那么,效率也就要低一些。三、数学模型的推广和应用数学模型具有可推广性。数学模型是建立在问题本质的基础上的,而不是建立在问题的表面现象上的。因此,虽然两个问题表面毫无关系,只要它们有相同的本质,就可以用相同的数学模型求解。然而,要看到两个问题有相同的本质并不是一件容易的事。这需要我们抛开问题的表面现象,仔细地比较分析,在问题之间建立对应关系。数学模型的可推广性与数学模型的抽象化程度有着密切的关系。为解决同一个问题而建立起的不同的数学模型可能具有不同的可推广性。下面将由母函数建立起的数学模型应用于另一些问题的求解。【树的计数问题】求具有

11、 n 个结点的二叉树的数目。设具有 k 个结点的的二叉树的数目为 Dk,则当 k=0 时,是一棵空树,只有一种。当 k0 时,二叉树可分为根结点、具有 i 个结点的左子树与具有 k-1-i 个结点的右子树。于是具有 k 个结点的二叉树的数目等于具有 i 个结点的二叉树的数目与具有 k-1-i 个结点的二叉树的数目的乘积。将以上的分析写成公式,就是:数学模型的建立、比较和应用IOI99 中国集训队优秀论文选 - 7 -Dokikii110(*)比较上文中 A 数列与这里的 D 数列可知 ,于是将上文中的数学模An2型(式 )稍加变换,即得:DCn21至此,我们已将这个问题用上面的数学模型解决了。

12、这个问题与多边形分割问题 具有相同的本质,即它们计数的规律是一致的,因此,它们可用相同的数学模型求解。为了将这种数学模型进一步推广,我们再将上一个问题分析一下:将每棵二叉树的 n 个结点一一编号,使每棵二叉树的前序序列都是 1,2,3,n。由于前序序列与中序序列可唯一确定一棵二叉树,所以每棵二叉树的中序序列与其它的二叉树都是不同的。(一旦相同,那么这两棵二叉树就是同一棵二叉树了。)另外,对于一棵前序序列确定的二叉树,它的中序序列可以由前序序列进栈与出栈生成。于是该数学模型又可直接用于下面问题的求解。【火车进出栈问题】一列火车 n 节车厢,依次编号为 1,2,3,n。每节车厢有两种运动方式,进栈

13、与出栈,问 n 节车厢出栈的可能排列方式有多少种。将这个问题与上一个问题比较一下:列车原始的排列状态(1,2,3,n)正是二叉树的前序序列;列车车厢的进栈与出栈对应于二叉树结点的进栈与出栈;列车出栈后的排列状态正是二叉树的中序序列。将两道题对应起来看,不难发现,列车出栈后的可能排列方式的数目就是二叉树的中序序列的数目,也就是二叉树的数目。设 n 节车厢的排列方式有 En 种,则EC21于是,我们又用相同的数学模型解决了这个问题。将数学模型推广到树的计数问题时,我们只是比较了相似的递推公式,可以说是一种简单的推广。而推广到火车进出栈问题时,则是从树的计数问题出发,将两个问题对应起来看,进行了很多

14、逻辑分析,相比之下要复杂一些。事实上,很多数学模型的推广应用都需要进行仔细的分析。从一个问题多边形分割问题出发建立起的数学模型 ,公式中已XCn21完全略去了分割的具体内容,只留下了问题的本质:计数。由于公式表达了计数学模型的建立、比较和应用- 8 - IOI99 中国集训队优秀论文选数方法的实质内涵( ; ),于是就给了它进一步广泛应X0Xkikii(*)101用于一类问题求解(外延)的可能。再考虑一下多边形分割问题中搜索法的数学模型。在这两个问题中,搜索法的数学模型显然是不适用的。它包含着多边形的每一种具体的分割方案,没有很好的体现问题计数的本质,因此影响了这种数学模型的可推广性。在这两个

15、问题中,没有相应的概念对应于多边形的分割方案,于是,搜索法的数学模型便对这两个问题无能为力了。而数列与母函数两种方法的数学模型仍能应用于这两个问题。这正是由于后两种方法的数学模型更加抽象,所以更有利于它们的推广。四、总结以上三个实例充分说明了数学模型的高效性、可推广性以及它们与抽象性之间的关系。数学模型具有高效性。从实际问题中建立起来的数学模型可以去除无关的内容,关系清晰,有利于效率的提高。数学模型具有可推广性。从实际问题中建立求解的数学模型,一个数学模型建立后,往往能将其应用于一类实际问题中。乍一看分割多边形与火车进出栈没有什么联系,但通过对模型的理解可以发现两个问题有着密切的内在联系:它们

16、是可以用相同的数学模型来求解的。数学模型的高效性与其抽象性是紧密联系的。数学模型越是抽象,它的效率也就越高。数学模型的可推广性与其抽象性也是紧密联系的。数学模型越是抽象,它也就越容易被广泛应用。【附件】附表一:按以上三种数学模型设计的程序的运行时间的比较n 运行时间(秒)(486/80) 结果搜索法 递推法 母函数法5 0.0 0.0 0.0 58 0.1 0.0 0.0 13210 0.6 0.0 0.0 143011 3.2 0.0 0.0 486212 16.8 0.0 0.0 1679620 0.0 0.0 47763870030 0.1 0.0 26374795175036040 0

17、.1 0.0 17673386278700670140050 0.1 0.0 13132789824216936547799190070 0.3 0.0 86218923998960285726185640663701108500100 0.8 0.0 57743358069601357782187700608042856334020731624756611000150 3.1 0.0 39593131470570019928884900188787576804513637926117934749025519709205419589642069387800200 8.3 0.1 3249701

18、7144692472040610304198911001293287035403710045969725655314584740305629299507691330189130411971857871567302000数学模型的建立、比较和应用IOI99 中国集训队优秀论文选 - 9 -250 18.7 0.1 29421094651142749009320132912247185432038644991268111203317168783696949400211003928295831546272022257999617419625465614367577576739594354716172

19、000300 37.1 0.1 28336159511286454919521412986993508946492467649011644182088598624691519032559650708037365499927532029654393447069621322187712454333678323104526897225807029224162563399190436400附表二:母函数法在大数据下的运行时间与结果n 运行时间(秒,486/80)结果500 0.2 3392161481258547533436328676042834151806671371051948224646322

20、28902203894849616660163940876589355617108285073043230725842194011652136941251118086767433831117255251093952216676752181549754039254079009518747834466367785846259695362213410252020098617615066063878074585195278634236178627104867906800001000 0.6 12826591231203293899924189078645638820890320523189718506

21、100713336586596917650636508971392269636384330131169530183206423519818758891241594708333432801586456589355098785210836810170931259022829593800943324162052624719214099956116275115808631507401802669967546028248855981978874762839261386373344807651604630045903721337776816153681064661207184425277845724281

22、85999328099100855162000191915961265732157462162582417171059495969450867257526779399630744193300422624617858972825189717428936822555053619495392164363039745449299044574026427298505696059662600019407610860955183614906034111141142038679557600005000 14.7 1990533983292846325166673506454278003389272904305

23、553280180872823100271211876734085661320525800982391106168982281996605880011739654359813542758695597927784296140146907866061711715283200830450446714899249720475015233342468138724573840895739739033811420784581508456866514843728085684023096771538155357865596755677654398271755290553728036099183628752965

24、320662495987063081218956333397309697251612668756490770219470026315305011566054014660857597536352915369221824992631352492185831978570219673534486780746350434887270380668276557335753276871786347768612211133866915304199873699266973452113841368846239215902251088131078338594137550754919249542962423635965

25、944666671446673358771831246640688142040703856338776629977766659654255268159378975104451911736990086945769021035259522823770948943057400745943601902801641100388276960355859153873511990973753013315562935808904939180986223807552333892680521693312997068069144010511282780445912971074861274051992834639631

26、056121645180516533443241763461820322685891901250005766673255334183011114708195338121209880104450610031605570181725548173371083940591081739155535821737987646875652182998581745666283678405193386287633644237910478216042546366880337839398239555205412965010863073403341689820527195143227554240769318197214

27、550404929767921019476713935147688604715074128914593275201180172696786877749972031468886291116599954859230193707272332890105705243614350673513288561103329172243184327475890245902422379591116933541402407304673289273956454592243290522479908546449720240299728273313773131071960862210627650188202833681955

28、696454854968868373243539755357093842908311125187443209114068668300881662599791538502970558610311959605119059285721310792265335734974618605961113788698323446988560897984443165154909954174602938557585213780659674972152322112734313586718289148701156895171132685679870431003809667418695642469238836695141

29、084658775900119665937226717903862379727919631656239883098441287324447074205284653760604178405308840988804551418639124664176032592842849445923263161630959760172685607996743155249441458740184540341637246704062232001851089226650716732821068117296304334142247077033558814482032810656613007364273147899358

30、789829435814444102740310008484918033748262914234177331202318998592244539101401954666570026383034960883253619564875198162402993935315752578275978527638007420272235699836321668787827569604597992145402860459286867814341553850087680862132619806785611873322337760485664946553533366401151012142801380925362

31、116746164301057451528028965946453997211806286217707956621562985038678355768449118075262217561378974164882591433135421096327093683365937426849146897242720850054696490138864962273508257492244688170498625618918459291917844876832932013180312437483376087705819619480311149682354318637525937296089982305588

32、05063189032206000172896014818245773092045746539907057236677380540322691698615959422148103261747037158149571993059785169566955518997933288数学模型的建立、比较和应用- 10 - IOI99 中国集训队优秀论文选2416754183716357001209090944294741473972997610488038219507132437063465054808258284329237819893018092810058281353800000【程序】1.多边形

33、分割问题 搜索法 (sousuo.pas)$A+,B-,D-,E-,F-,G+,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V+,X+,Y-$M 16384,0,655360Program SouSuo;ConstMax=30;TypeTPara=record l,r:integer;end; 区间类型Varmethod:Longint; 方案总数Para:array1Maxof TPara; 区间组n:integer;time:Longint;Function M(a,b:integer):integer;高精度整数类型begin if aparai.l)and(jparai.l)

34、and(kn)or(lp2n)or connect;if prefalse thenbegin Push:=true;pop;exit;end;inc(lp2);if lp2n thenbegin inc(lp1);lp2:=lp1+2;end;end;Function Pop:boolean; 出栈beginif sp=0 thenbegin dec(sp);pop:=false;exit;end;lp1:=Parasp.l;lp2:=parasp.r;dec(sp);inc(lp2);if lp2n thenbegin inc(lp1);lp2:=lp1+2;end;Pop:=(lp1n)

35、or(lp2n);end;数学模型的建立、比较和应用- 12 - IOI99 中国集训队优秀论文选beginsp:=0; 栈顶指针置 0lp1:=1;lp2:=3;method:=0;while (sp=0) dobeginif Push then while pop do;if sp=n-3 then 获得了一种方案 beginmethod:=method+1;while pop do;end;end;writeln(Total: ,method);end;var i:integer;s:string;BEGINwrite(Input N: );readln(n);输入多边形边数time:=

36、MemL$40:$6c;if n0 thenbegin inc(a-1);aa-1:=j;end;end;Procedure Mul(a,b:Th;var c:Th); c:=a*b;a,b,c 为高精度整数类型var i,j:integer;k:Longint;beginfillchar(c,sizeof(Th),0);for i:=0 to a-1 dobegink:=0;for j:=0 to b-1 doif i+j0 then inc(c-1);数学模型的建立、比较和应用- 14 - IOI99 中国集训队优秀论文选end;Procedure OutHigh(a:Th); 输出高精度

37、整数var s:string4;i,j:integer;beginwrite(Total: );j:=a-1;write(aj);for i:=j-1 downto 0 dobeginstr(ai,s);while s00 thenbegin inc(a0);aa0:=k;end;end;Function MaxPublic(a,b:integer):integer; a,b 的最大公因数var i:integer;beginrepeata:=a mod b;if a=0 then break;b:=b mod a;数学模型的建立、比较和应用- 16 - IOI99 中国集训队优秀论文选unt

38、il b=0;MaxPublic:=a+b;end;Procedure Divide(var k:Ty;h:integer);k:=k div h;k 为高精度整数类型 2Var i,j:integer;beginfor i:=1 to k0 doif ki mod h =0 thenbegin ki:=ki div h;if ki=1 then begin ki:=kk0;dec(k0);end;exit;end;for i:=k0 downto 1 doif MaxPublic(ki,h)1 thenbeginj:=MaxPublic(ki,h);h:=h div j;ki:=ki div

39、 j;if ki=1 then begin ki:=kk0;dec(k0);end;if h=1 then exit;end;end;Procedure translate(k:Ty;var a:Th);a:=k;a 为高精度整数类型 1,k 为高精度整数类型 2Var i:integer;begina1:=1;a0:=1;for i:=1 to k0 do mul(a,ki);end;Procedure Make;按公式计算多边形分割总数Var i,j:integer;k:Ty;a:Th;s:string4;begink0:=n-2;for i:=1 to n-2 do ki:=(2*n-3

40、-i);for i:=n-2 downto 2 do divide(k,i);divide(k,n-1);数学模型的建立、比较和应用IOI99 中国集训队优秀论文选 - 17 -translate(k,a); write(Total: );j:=a0;write(aj);for i:=j-1 downto 1 dobeginstr(ai,s);while s00 thenbegin inc(a0);aa0:=k;end;end;Function MaxPublic(a,b:integer):integer; a,b 的最大公因数var i:integer;beginrepeata:=a mod

41、 b;if a=0 then break;b:=b mod a;until b=0;MaxPublic:=a+b;end;Procedure Divide(var k:Ty;h:integer);k:=k div h;k 为高精度整数类型 2Var i,j:integer;beginfor i:=1 to k0 doif ki mod h =0 thenbegin ki:=ki div h;if ki=1 then begin ki:=kk0;dec(k0);end;exit;end;for i:=k0 downto 1 doif MaxPublic(ki,h)1 thenbeginj:=Ma

42、xPublic(ki,h);数学模型的建立、比较和应用IOI99 中国集训队优秀论文选 - 19 -h:=h div j;ki:=ki div j;if ki=1 then begin ki:=kk0;dec(k0);end;if h=1 then exit;end;end;Procedure translate(k:Ty;var a:Th);a:=k;a 为高精度整数类型 1,k 为高精度整数类型 2Var i:integer;begina1:=1;a0:=1;for i:=1 to k0 do mul(a,ki);end;Procedure Make;按公式计算Var i,j:intege

43、r;k:Ty;a:Th;s:string4;begink0:=n-2;for i:=1 to n-2 do ki:=(2*n-3-i);for i:=n-2 downto 2 do divide(k,i);divide(k,n-1);translate(k,a);write(Total: );j:=a0;write(aj);for i:=j-1 downto 1 dobeginstr(ai,s);while s0#4 do s:=0+s;write(s);end;writeln;end;var i:integer;s:string;BEGINwrite(Input N(=,Max-2,): )

44、;readln(n); 输入 N数学模型的建立、比较和应用- 20 - IOI99 中国集训队优秀论文选inc(n,2);time:=MemL$40:$6c;MAKE; 按公式计算 writeln(Time: ,(Meml$40:$6c-time)/18.2:5:1);输出所用的时间END.【参考书目】1.信息学奥林匹克1998.1-2 中国计算机学会普及工作委员会、TSINGHUA UNIVERSITY ACM STUDENT CHAPTER 主办,第 87 页、第93-94 页;2.数据结构(第二版),严蔚敏、吴伟民编著,清华大学出版社 1992年 6 月,第 150-154 页;3.中学生数学建模读本,孔凡海编著,江苏教育出版社 1998 年 1 月。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报