欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    组合数学在程序设计中的应用ppt课件.ppt

    • 资源ID:27870404       资源大小:126.50KB        全文页数:16页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    组合数学在程序设计中的应用ppt课件.ppt

    我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物组合数学在程序设计中的应用组合数学在程序设计中的应用长沙市第一中学曹利国我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 程序设计一直与数学联系得非常的紧密,特程序设计一直与数学联系得非常的紧密,特别是像组合数学这一分支,与程序设计有着千丝别是像组合数学这一分支,与程序设计有着千丝万缕的联系。对于某些题目,我们用正常的做法万缕的联系。对于某些题目,我们用正常的做法想法也许无从下手,但是如果我们把题目的全局想法也许无从下手,但是如果我们把题目的全局或者局部与组合数学联系起来,或许就会或者局部与组合数学联系起来,或许就会“柳暗柳暗花明又一村花明又一村”找到了一种特别独特,特别有找到了一种特别独特,特别有效率的数学方法,把无从下手的棘手题变得简单效率的数学方法,把无从下手的棘手题变得简单易行。这就是组合数学在程序中的运用。易行。这就是组合数学在程序中的运用。 下面使用几个实例说明组合数学在程序中的下面使用几个实例说明组合数学在程序中的运用。运用。引言引言我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物Catalan数定义:一个凸n边形通过不相交于n边形内部的对角线把n边形拆分成若干三角形的不同拆分数。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物分析 设Cn表示凸n边形的拆分方案总数。由题目中的要求可知一个凸n边形的任意一条边都必然是一个三角形的一条边,边P1 Pn也不例外,再根据“不在同一直线上的三点可以确定一个三角形”,只要在P2,P3,Pn-1点中找一个点Pk(1k=0的数列个数。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 序列a1a2.ak的元素顺序保持不变,按不同结合方式插入合法圆括号对的方案数。n=4(a(bc)d)(a(b(cd)(ab)(cd)(ab)c)d)(a(bc)d) 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物一个操作数序列,从一个操作数序列,从1,2,一直到,一直到n,栈,栈A的深度大于的深度大于n。现在可以进行两种。现在可以进行两种操作:操作:1 将一个数,从操作数列的头端移至栈的头端(对应栈的将一个数,从操作数列的头端移至栈的头端(对应栈的push操作)操作)2 将一个数,从栈的头端移至输出序列的尾端(对应栈的将一个数,从栈的头端移至输出序列的尾端(对应栈的pop操作)。操作)。使用这两种操作,由一个操作数序列就可以得到一系列的输出序列,下表为使用这两种操作,由一个操作数序列就可以得到一系列的输出序列,下表为由由1 2 3 生成序列生成序列2 3 1 的过程。的过程。步骤0123456操作数序列1232333 栈 1211311 输出序列 2223231你的程序将对给定的n,计算并输出由操作数序列1,2,n经过操作可能得到的输出序列总数。一一 栈(Noip2003 普及组第三题)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物结合定义我们很容易能发现:如果进栈看成1,出栈看成0,在任何一位上累计的“0”的个数不大于累计的“1”的个数,因为必须在栈里有数的情况下才能向外弹数。原题转化为n个1和n个0组成一个2n位的二进制数,要求从左到右扫描,“0”的累计数不大于“1”的累计数,求满足条件的数有多少。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 二 Little rooks(SGU 222) 将k个车摆在n*n的棋盘上,使得任何两个车不能互相攻击(车可以横着或竖着走无限格,不能走斜线) 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物算法描述算法描述 组合数学:排列与组合由于题目里的棋子是“车”而不是“后”,所以一个棋子不会影响到与其不同行或与其不同列的棋子。结合n皇后问题的方案表示法,我们很容易想到排列组合。排列的定义:设A=a1,a2,a3an是n个不同元素的集合,r满足0=r=k,先从简单的情况下手:n=k。此时的公式非常简单:P(n,k)。主要就是对于nk的情况时的处理。因为每一列最多只能放一颗棋子,所以我们首先把没有棋子的列去掉,再合并成一个n*k的棋盘,结合刚才的数据结构我们能很快知道在这个新棋盘上摆k个棋子还是P( n , k )种方案,再把去掉的(n-k+1)列插入摆棋子的k行中,插入方案总数易得为C( n , k )种。根据乘法原理,总方案数为C( n , k ) * P( n , k )种。这样一来程序实现起来就方便多了。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物错排问题:n个数,分别为1n,排成一个长度为n的排列。若每一个数的位置都与数的本身不相等,则称这个排列是一个错排。例如,n=3,则错排有2 3 1、3 1 2。编写程序,求n的错排个数。三三 错排问题(经典问题)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物组合数学:递推我们设k个元素的错位全排列的个数记做:W(k)。四个元素的错位排列W(4)我们用穷举法可以找到如下9个: (4,3,2,1)(3,4,1,2)(2,1,4,3)(4,1,2,3)(3,4,2,1)(3,1,4,2)(4,3,1,2)(2,4,1,3)(2,3,4,1)它们有什么规律呢?我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物通过反复的试验,我们发现事实上有两种方式产生错位排列: A.将k与(1,2,k1)的某一个数互换,其他k2个数进行错排,这样可以得到(k1)W(k-2)个错位排列。 B.另一部分是将前k1个元素的每一个错位排列(有W(k-1)个)中的每一个数与k互换,这样可以得到剩下的(k1)W(k-1) 个错位排列。根据加法原理,我们得到求错位排列的递推公式W(k):W(k) = (k1) * W(k1)+W(k2)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物结论结论 其实视野看得发散一些,扩展一些,能融入程序设计的知识点不仅限于组合数学,还有拓扑学,微积分,计算几何甚至是物理,化学。这样跨学科的融合相信能给信息学计算机这门学科焕发新的光彩。 从上述题我们能发现一个共同特点,也就是将组合数学融入题目中,简单而又快速的解决题目。它说明:程序设计不一定是拿着现成的思路或算法去生搬硬套,也许我们换个角度,换个思路,或者进行数学建模与变换,将组合数学里的一些结论,定理,性质与程序结合起来,达到事半功倍的效果。当然,要熟练的掌握这方面的技能与技巧还是在乎于我们平常的多看多想多练。

    注意事项

    本文(组合数学在程序设计中的应用ppt课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开