- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
29.模拟算法;
本章内容
本章内容:介绍模拟算法的思想及实现要点。
模拟算不上一种算法,只能算作求解问题的一种方法,即模拟求解问题的步骤或过程,最终得到答案。;
1.从模拟考试说起
爸爸:抱一,快期末了,你们班会组织模拟考试吗?
抱一:什么是模拟考试?
爸爸:模拟考试是仿照实际真题考试的一种考试模式,就是按照期末考试的要求,仿照期末试卷的题型、考试范围出的一份试卷,考试时间也一样,用这种方式来检验同学们这学期学得怎么样。
抱一:我不要考试……
爸爸:……;
2.模拟算法的思想及实现要点
(1)模拟方法思想
现实中有些问题难以找到公式或规律来求解,只能按照一定的步骤不停的“模拟”下去,最后才能得到答案。对于这样的问题,用计算机来求解是十分合适的,只要让计算机模拟人在解决此问题时的行为即可。这种求解问题的思想,可以称为“模拟”。
模拟也是求解程序设计竞赛题目时经常采用的方法。适合采用模拟方法求解的题目大多带有游戏性质,求解此类问题的关键是理解游戏的规则和过程,在用程序实现时用适当的数据结构表示题目的状态,然后按照游戏规则模拟游戏过程。
因此,所谓模拟方法,就是采用合适的数据结构,模拟游戏过程或问题求解过程,在此过程中进行一定的判断或记录,从而求解题目。;
(2)模拟方法实现要点
采用模拟思路求解程序设计竞赛题目时,要特别注意以下问题:
①采用合适的数据结构来表示问题。例如,迷宫问题可以采用二维数组存储迷宫地图。常用数据结构包括数组、结构体、向量、队列、栈、双端栈、双端队列、树、二叉树、图等。当然,最简单的、最适合问题求解的数据结构就是最好的数据结构。本书最后一章,第30章,会介绍2种数据结构——向量和队列。
②在模拟过程中通常需要记录或更新问题的中间状态,以便下一步在此状态的基础上继续模拟。;
(2)模拟方法实现要点
③采用模拟法求解时,可能出现的一种情形是,当问题规模很小时,直接模拟即可,但???题规模较大时,直接模拟会超时或内存超出限制,这时就要分析问题的规律,直接根据规律求解,或把问题的规模变小再模拟。
④如果采用普通的模拟思路求解,提交后评判为超时,那就要分析题目是否符合分治、动态规划、贪心等这些优化算法的适用条件,可能需要用这些算法求解。;
解题报告——出列游戏;
题目描述:
n个人围成一圈,第1个人从1开始报数,报数报到m的人出列;然后又从下一个人从1开始报数;重复n-1轮游戏,每轮游戏淘汰1个人,最后剩下的人就是胜利者。模拟该游戏,输出最后的胜利者。
如下图所示,以n=8,m=4为例,图(a)~(g)演示了7轮游戏过程,依次出列的位置是:4852137,最后的胜利者是6号。图中方框里的数字表示这8个人的序号,空白的方框表示已出列的位置,方框旁边的数字表示报数过程。;;
输入描述:
输入占一行,为两个正整数n和m,2≤n≤100。;
分析:
以n=8,m=4分析该出列问题。8个人参加该游戏,需要进行7轮,因为每轮淘汰一个位置出列。在用程序模拟出列问题时,只需要模拟7轮游戏过程即可,用循环变量r来控制。
要表示8个人的序号,可以用一维数组a来存储8个位置上的号码。为了符合人们的习惯,只使用a[1]~a[8],因此数组长度为9。;
该出列游戏过程中依次出列的位置可以用下图表示。图中3个变量i、j、r的含义分别为:
变量r:用来表示游戏是第几轮,并且是通过该变量来控制游戏结束的。
变量i:标明每次报数是由哪个位置上的人报出来的(注意要跳过已经出列的位置)。变量j:实现报数,从1报数到4,再变成1,…。;
分析:
看似很简单的出列问题,在模拟时要注意以下3个问题:
①模拟报数过程,从1开始报数,达到4后(对应位置要出列),又从1开始报数。因此需要对4进行取模运算。变量j用来记录报数过程报出来的数,每次继续报数本来是j=(j+1)%4,但是(j+1)%4的范围是0~3,我们希望j取1~4,所以正确的式子是:j=(j+1-1)%4+1,即:j=j%4+1。
②需要记录每一个报数是由哪个人报出来的,变量i来表示这个人的序号。同样每;;
解题报告——单身贵族游戏;
题目描述:单身贵族游戏规则
您可能关注的文档
- 2.2 礼仪与教化 课件 高中美术湘美版(2019)美术鉴赏.pptx
- 携“数”同行,共促成长(课件)-小学三年级数学家长会.pptx
- 小学一年级开学主题班会课件—开学第一课.pptx
- 11.1 法不可违(课件)七年级道德与法治下册(统编版2024).pptx
- 1.1我的名字 (课件)人教版(2024)美术一年级上册 (1).pptx
- 开玩笑,有分寸(课件)-小学生主题班会通用版.pptx
- 7.《兼爱》课件 统编版高二语文选择性必修上册.pptx
- 落叶去哪儿了 (课件)人教版(2024)美术一年级上册 (1).pptx
- 新学期开学第一课收心班会(课件)-小学生主题班会通用版.pptx
- 第11课 博物馆线上“云”参观(课件)三年级全一册信息技术河北大学版.pptx
- 江西省南昌市莲塘一中2026届高二化学第一学期期中监测模拟试题含解析.doc
- 福建省华安中学2026届九年级英语第一学期期末学业质量监测试题含解析.doc
- 山东省山东省滕州市第二中学2026届高三化学第一学期期末联考模拟试题含解析.doc
- 福建省石狮七中学2026届九年级英语第一学期期末调研模拟试题含解析.doc
- 安徽省合肥市合肥一中、合肥六中2026届高三上化学期中达标检测试题含解析.doc
- 四川省自贡市富顺第三中学2026届九上化学期中质量检测试题含解析.doc
- 2026届湖北省襄阳第四中学化学高三第一学期期中检测试题含解析.doc
- 图形平移与轴对称问题及例题汇编.pdf
- 吸烟管控措施探讨与观点分析.pdf
- 人教版八年级下册英语第十单元检测题.pdf
最近下载
- 第二十三届全国中学生物理竞赛初赛试题及答案.pdf VIP
- (完整版)高考必考的1000个英语短语汇总 .pdf VIP
- 工程项目管理工程项目成本管理.pptx VIP
- 标准图集-18G901-3 混凝土结构施工钢筋排布规则与构造详图(独立基础、条形基础、筏形基础、桩基础)公开版.pdf VIP
- 安徽省合肥市琥珀中学教育集团2024—2025学年上学期九年级第二次质量调研检测数学试题(含答案).pdf VIP
- 淮南市PPT土地推介会.pptx VIP
- (完整版)NIHSS评分量表使用版 .pdf VIP
- 标准图集-18G901-1 混凝土结构施工钢筋排布规则与构造详图(现浇混凝土框架、剪力墙、梁、板)公开版.pdf VIP
- 岩土工程勘察报告.doc
- 绿色建筑申报表.pdf VIP
原创力文档


文档评论(0)