版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.3.2枚举算法问题:
票据编号为5位,最后2位磨损了,请复原可能的数值,该票据编号正好满足规律票据数值为24的倍数(1)如何解决(2)范围?24300——24399(3)条件?(合成新的5位数,是否票据数值=开头24的倍数)(4)用自然语言总结(将24300——24399范围里的数,一个一个试,如果票据数值是24的倍数,就输出)(5)术语讲解,数就是枚举对象、范围对应枚举范围、条件对应验证条件foriinrange(24300,24400):#确定枚举范围 ifi%24==0: #验证条件 print(‘可能的编号为:’,i)问题:
票据编号为5位,百位和十位磨损了,请复原可能的数值,该票据编号正好满足规律票据数值为37的倍数(1)如何解决?算法描述一下(2)枚举对象(3)枚举范围?37007——37997且个位不变(4)验证条件?是否票据数值=开头37的倍数foriinrange(37007,37998,10):#确定枚举范围 ifi%37==0: #验证条件 print(‘可能的编号为:’,i)foriinrange(24300,24400):#确定枚举范围 ifi%24==0: #验证条件 print(‘可能的编号为:’,i)小结:
枚举法解决问题的思路小结:
枚举法解决问题的思路(1)三要素:枚举对象、范围、验证条件(2)算法特征:一一列举,逐个验证(3)程序结构:循环语句嵌套分支结构。通过循环一一列举该问题所有可能的解,在循环内逐一判断对象是否有问题真正的解,若是,则采用,否则不采用,然后下一轮。拓展提升:优惠券发放。家居广场酬宾活动发放优惠券,计划共发放y(假定为10000)元,优惠券包含的面值分别为[100,500,1000],计划100元不多于1000张,500元不多于200张,1000元不多于100张,且发放的不同金额票据张数要是10的整数倍,问可以有多少种发放方式?枚举对象?
100的数量、500的数量、1000的数量枚举范围?
0<=100元的数量<=1000,
0<=500元的数量<=100,
0<=1000元的数量<=100验证条件?
(总金额等于要发放的金额,金额票据单数要是10的整数倍importtimesum=int(input(‘优惠券总发放金额为:’))start=time.time() #记录开始时间foriinrange(0,1001): #100元枚举范围forjinrange(0,201): #500元枚举范围forminrange(0,101):#1000元枚举范围num=i*100+j*500+m*1000
ifnum==sumandi%10==0andj%10==0andm%10==0:
print(‘100元’,i,‘单’,‘500元’,j,’单’,1000元’,m,’单’)end=time.time()#记录结束时间print(‘结束’,‘耗时’,end-start,’s’)foriinrange(0,1001,10): forjinrange(0,201,10): forminrange(0,101,10):优化:方案1中仅设置最大枚举范围,可以根据条件进-步减小枚举范围,每个间隔为10。foriinrange(0,1001,10): forjinrange(0,201,10): forminrange(0,101,10):foriinrange(0,1001): forjinrange(0,201): forminrange(0,101):思考:还可以继续优化吗?减少枚举次数foriinrange(0,1001,10): forjinrange(0,201,10): forminrange(0,101,10):foriinrange(0,1001): forjinrange(0,201): forminrange(0,101):foriinrange(0,1001,10): forjinrange(0,201,10):
m=(sum-i*100-j*500)/1000总结:通过规律(限制条件),可以进一步优化算法,来提高运行效率基于枚举算法的问题解决1、枚举算法基本思想
(一一列举、逐个校验)2、枚举要素(枚举对象
枚举范围
验证条件)3、枚举算法程序结构(循环、嵌套、分支)课堂小结练习:
输出50-100之间是7的倍数或者包含数字7的数,并输出一共有几个数count=0foriin
:if
:print(i,end='')
#填空3print("一共找到"+str(count)+"个符合条件的数")i%7==0ori%10==7ori//10==7range(50,101)count+=11000以内素数查找,代码如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年浙江省金华十校物理高一第二学期期末综合测试试题含解析
- 浙江省选考十校联盟2023-2024学年高一物理第二学期期末达标检测模拟试题含解析
- 浙江金华市浙师大附中2023-2024学年物理高一第二学期期末考试试题含解析
- 2023年混凝土外加剂相关项目运行指导方案
- 山西省晋中市2023-2024学年中考一模化学试题含解析
- 2023年冲饮品:咖啡相关行业项目成效实现方案
- 小学数学教学中的游戏教学例谈
- 水泥掺合剂相关项目投资计划书
- 医用连接管行业相关投资计划提议范本
- 巷道式智能化孵化器相关行业投资方案
- 委托培养国际商务专业人才协议书
- 安全生产工作思路汇报
- 运输物流应急预案
- 直播拍摄方案
- 初一生物期中考试试卷分析
- 2024年湖北黄鹤楼科技园集 团有限公司招聘笔试参考题库含答案解析
- 5.40.89建筑灭火器配置配置验收质量标准和检验方法(完)
- 2024年中、小型机场气象观测系统项目建设方案
- 劳动教育的国外模式与课程实施
- 初升高 物理衔接班全套讲义
- 零基础Go语言(从入门到精通)
评论
0/150
提交评论