- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题求解的算法基础学习用计算机思维
1、求1000以内既能被5整除又能被7整除的数之和。 2、求Fibonacci数列前20项之和。 3、求 4、 x 与y之间存在以下关系,写出输入X后求解Y的流程图。 5、求1+(1+2)+(1+2+3)+……+(1+2+3+…10)。 提示: 在循环中每次计算(1+2+…+i) 6、输入X、Y、Z,按由大到小顺序输出这三个数。 7、输入10个数,计算平均值并找出最小值。 2x+1 x1 y= x x=1 4x-5 x1 写出求解下列问题的Python程序 小学四则运算测试机 随机产生[1,10]之间的两个操作数 如第一个为3,第二个为6 import random a=random.randint(1,10) 随机产生一个运算符(+,-,*,/) 把操作数和运算符作为一个算式打印 用户输入算式的运算结果 程序判断是否正确,并给出提示 如“您答对了”或“您算错了” 让用户不停地答题,直到他输入’0000’ 2.4 算法设计常用方法 1、穷举法 2、迭代与递推 3、分治法 4、递归法 5、排序 6、查找 2.4 算法设计常用方法 1、穷举法 * 穷举法又称枚举法。就是根据问题已知条件对所有可能的解一一测试,经验证只要符合条件的就是解。 这样的解可能有多个,当然,也可能无解。 穷举法虽然易于理解,但却费时。 2.4 算法设计常用方法 * 例 猜车牌号问题。一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照号是4个数字,前两位数字是相同的,但不是零;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车牌号。 问题分析 按目击人所述,车牌号应是AABB式样,其中A不是0,A与B不相等,并且AABB是另一整数的完全平方。因为四位整数的完全平方根如果是整数,则平方根一定大于31并且小于100。根据以上分析,只要枚举A与B的每一种组合,再验证平方根问题,就可以得到问题的解。 * 百钱买百鸡问题。鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问翁、母、雏各几何? 问题分析 设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0-20之间;同理,y的取值范围在0-33之间,可得到下面的不定方程: 所以此问题可归结为求这个不定方程的整数解。 由程序设计实现不定方程的求解,与手工计算不同。在分析确定方程中未知数变化范围的前题下,通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。 2、迭代与递推 * 迭代与递推是数学中常用的一种方法。它是利用问题本身具有的递推关系来求解问题,常常是利用变量已经得到的旧值去推导新值,反复推导演绎从而最终得到问题的解。 在算法设计时,问题的状态用变量进行描述,当新旧状态用同一变量来表示时称为迭代法,而新旧状态用不同的变量描述,且新变量的值是在旧变量的值的基础上推出来的,就称为递推。 * 例 存钱问题。假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中每年的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。 问题分析 采用倒推的方法分析存钱和取钱的过程。若第五年年底连本带息要取1000元,先求出第五年年初银行存款的钱数: 第五年年初存款=1000 / (1+12 *0.0063) 第四年年初存款=(第五年年初存款+1000) / (1+12 *0.0063) 第三年年初存款=(第四年年初存款+1000) / (1+12 *0.0063) 第二年年初存款=(第三年年初存款+1000) / (1+12 *0.0063) 第一年年初存款=(第二年年初存款+1000) / (1+12 *0.0063) 假设第n年初的存款为total,则第n-1年的年初存款可以通过迭代公式: totaln-1=(totaln+1000) / (1+12*0.0063) * 例 Fibonacci数列:1,2,3,5,8,13,21...,试打印这个数列的前20项,并求它们的和。 问题分析 从观察数列各项可以得到规律:第三项开始,每一项的值等于前两项的和。根据数学知识可以得到该数列的通项公式:a1=1,a2=2,an=an-1+an-2 (当n2),也就是由已知的连续两项可以递推出后一项。
您可能关注的文档
最近下载
- 《中医诊断学》——四诊(课堂PPT).ppt VIP
- 汽车音响国家标准:江淮T-Box需求说明书_4.0.pdf VIP
- 2025高级起重工技能鉴定精练考试题库资料及答案(浓缩300题).pdf
- 检同期-检无压.pdf VIP
- 装卸搬运服务投标方案数据中心运维服务项目投标方案.doc
- 2024年度企业所得税汇算清缴最新税收政策解析及操作规范专题培训(郑州市税务局).pptx VIP
- 电线接线缠绕方法规范_电工电线接线与线头处理方法图解.doc VIP
- 甲状腺危象急诊诊治专家共识(2021版)解读.pptx VIP
- 2021三调工作分类20181119.docx VIP
- 12210104 BF4M2012C备件图册 道依茨.pdf VIP
文档评论(0)