简单数学类问题及其数学构造方法.ppt
《简单数学类问题及其数学构造方法.ppt》由会员分享,可在线阅读,更多相关《简单数学类问题及其数学构造方法.ppt(53页珍藏版)》请在三一办公上搜索。
1、数学类问题,精度处理(高精度、实数处理)组合数学问题(Fibonacci数列、第二类数、卡特兰数、POLYA原理、排列组合计数、加法原理与乘法原理)进制问题(特定二进制串的统计、二分查找、利用二进制进行路径、状态描述、二进制转换),数学类问题,递推与递归关系(递推关系式、通项公式、数列、博弈问题)数位、数字、特定数值的查找、统计(数值处理、质因子分解、幂次分解、数值表达式、添加运算符、分式与实数运算)数学杂题(回文数字、矩阵处理、约瑟夫与反约瑟夫问题)数学剪枝(无解判定、解线性方程组、限定搜索范围),数学类问题的思维过程,相关公式、定理、原理的应用寻找规律、归纳整理递归与递推关系式按照数学方法
2、构造、二进制转化等技巧性处理注意事项:规律准确(小数据手工推算、搜索程序验证)数据类型是否合理、数据范围是否超界(大数据处理),整数划分问题(一),最优分解方案 将一个整数n分成若干个互不相同的数的和,使得这些数的乘积最大。其中1=n=1000。,分析,初看此题,最容易相到的算法是搜索,但此题的最大可以达到1000,搜索肯定会超时,而本题所给的限制条件也不多,即便是加上一些剪枝也起不到很好的效果。一般遇到这种情况我们可以从简单的数据分析起。,在解一些问题的时候(特别是用数学方法解的问题),当我们无从解决时,可以从简单的数据考虑起,以便发现其中的一些规律,这种作法对解题是很有帮助的。n 分解方案
3、 MUL 5 2,3 66 2,4 87 3,4 128 3,5 159 2,3,4 2410 2,3,5 30,观察这几组数据,不难发现所有的分解方案的数的个数都等于可以分出的最多个数,其实我们并不难想到,要想使乘积最大,应尽量使分得的数多。另一方面,我们在初中数学中就已经证明过当数(正数)的和相等时,数的差越小,数的积也就越大,因此我们可以在分的数的个数最多的情况下使数之间的差尽量小,这样得出来的方案必定是最优的。,整数分划(二),例题2:若干个正整数之和为n,其中:n2000,试求它们乘积的最大值以及该最大值的位数k。,分析,根据数学规律可知,若要使和固定的数的乘积最大,必须使这些数尽可
4、能的多为3,于是可推得以下规律:当N mod 31 时,N可分解为一个4和若干个3的和;当N mod 32 时,N 可分解为一个2和若干个3的和;当N mod 30 时,N 直接分解为若干个3的和。按照这一分解方法,所有因数的乘积必定最大。注意:因N 的最大值可达2000,乘积将超过长整型数据范围,所以需用高精度运算。,整数分划的方案总数,把一个正整数N表示成如下表达式的一系列正整数的和,叫做整数N的一个分划。某个正整数N的不同表达式的个数称做整数N的分划数。编程计算指定正整数的分划数。Nn1n2nk Nj=1,j=1,2,,k,k=1 1=n1=n2=nk输入正整数N(N100),输出N的分
5、划数。,分析,在求解整数N的分划数时,设分解方案(表达式)中最大可以分解的整数因子nj的值最大不超过m,用F(N,m)记录N被划分成不超过m的整数的方案总数,通过数学分析,容易得到一个递归定义的递推关系式:,1(m=1)F(N,m)=F(N-m,m)+F(N,m-1)(m1,mN)初始(边界条件)为F(0,m)=1(m0)目标状态为F(N,N)。,例题4:极值问题(最高时限15s)已知m、n为整数,且满足下列两个条件:m、n1,2,K,(1K109)(n 2mnm2)21编一程序,由键盘输入K,求一组满足上述两个条件的m、n,并且使m2n2的值最大。例如,若K1995,则m987,n1597,
6、则m、n满足条件,且可使m2n2的值最大。,【分析】方法一从初等数学的角度考虑:由条件(n 2mnm2)21得出:n 2mnm2+1=0n 2mnm21=0根据求根公式N1,2(m1,2)/2 n3,4(m1,2)/2其中:1sqrt(5*m24);2sqrt(5*m24);,【分析】再考虑条件。由于n1,因此排除了n3和n4存在的可能性.又由于n和m是整数,因此1和2应为整数。由于m2n2单调递增,从mk出发,按递减方向将m值代入n的求根公式。只要1(或2)为整数、n1(或n2)为整数且小于k,则得出的一组m和n一定使 m2n2的值最大。,【算法描述】mk;while mi do begin
7、 求1 if 1为整数 then begin 求n1;if(n1为整数)and(n1k)Then begin 输出m和n1;halt;end end;then 求2;if 2为整数 then begin 求n2;if(n2为整数)and(n2k)then begin 输出m和n2;halt;end end;then mml;end;while,上述算法从数学意义上来说,是一定可以出得出正确解的。但是该算法疏漏了一个重要条件 1k109。如果K值超过105,上述算法不可能在限定的15秒内出解。,【分析】方法二分析小数据会发现:m,n是Fibonacci数列的相邻两项。因为:(n 2mnm2)2
8、1故:(m2+mn n 2)2 1又:m 2mnn2(mn)2mn2n2(mn)2(mn)nn2 故:(m2mnn2)2(mn)2(mn)nn22 即:(n2mnm2)2(mn)2(mn)nn22,【分析】由上述数学变换式可以得出,如果m和n为一组满足条件和条件的解,设nmn,m n那么n,m 也是一组满足条件和条件的一组解。将所有满足条件和条件的m和n 按递增顺序排成一个Fibomacci数列 1,1,2,3,5,8,数列中小于k的最大两个相邻数即为试题所要求的一组m和n。算法:利用Fibomacci数列顺推m,n,求出在条件范围内的m,n最大值,此时m2n2的值最大。,例题5:Kathy函
9、数(HNCOI)Tiger非常喜欢数学,所以他参加了学校组织的数学课外兴趣小组。在兴趣小组的学习当中,老师向Tiger介绍了Kathy函数,Kathy函数是这样定义的:,例题5:Kathy函数(HNCOI)Tiger对Kathy函数产生了浓厚的兴趣,他通过研究发现有很多的数n都满足f(n)=n,对于一个给定的数m,他希望你求出所有的满足f(n)=n(n=m)的自然数n的个数,其中m=10100。Kathy函数满足其二进制数为回文数例:f(1)=1,f(3)=11,f(5)=101,f(7)=111,组合计数,Catalan数定义:一个凸n边形通过不相交于n边形内部的对角线把n边形拆分成若干三角
10、形的不同拆分数。,分析,设Cn表示凸n边形的拆分方案总数。由题目中的要求可知一个凸n边形的任意一条边都必然是一个三角形的一条边,边P1 Pn也不例外,再根据“不在同一直线上的三点可以确定一个三角形”,只要在P2,P3,Pn-1点中找一个点Pk(1kn),与P1、Pn 共同构成一个三角形的三个顶点,就将n边形分成了三个不相交的部分(如图3所示),我们分别称之为区域、区域、区域,其中区域必定是一个三角形,区域是一个凸k边形,区域是一个凸n-k+1边形。,分析,区域的拆分方案总数是Ck,区域的拆分方案数为Cn-k+1,故包含P1PkPn的n 边形的拆分方案数为CkCn-k+1种,而Pk可以是P2,P
11、3,Pn-1种任一点,根据加法原理,凸n边形的三角拆分方案总数为,同时考虑到计算的方便,约定边界条件C2=1。,分析,=C(2n,n)/(n+1),具体实现时,若直接用上述公式计算,对数字的精度要求较高。可将其化为递推式,再进行递推计算,并且注意类型的定义要用comp型。,Catalan数的应用(部分和序列),n个+1,n个-1构成2n项a1,a2,a3,a4,a2n其部分和满足a1+a2+.ak(k=1,2,3,.2n)=0的数列个数。,Catalan数的应用(加括号),序列a1a2.ak的元素顺序保持不变,按不同结合方式插入合法圆括号对的方案数。n=4(a(bc)d)(a(b(cd)(ab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 数学 问题 及其 构造 方法

链接地址:https://www.31ppt.com/p-6011847.html