中职电子与信息:课时9 枚举算法及程序实现.docx
《中职电子与信息:课时9 枚举算法及程序实现.docx》由会员分享,可在线阅读,更多相关《中职电子与信息:课时9 枚举算法及程序实现.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课时9枚举算法及程序实现课时目标.掌握枚举算法的基本思想。2,掌握使用枚举算法解决实际问题的基本方法,并通过编写程序实现问题求解。Q知识梳理-课前自主预习一、枚举算法的基本思想枚举算法的基本思想是把问题所有可能的解 2,然后判断每一个列举出的 且能解是否为正确的解。枚举算法常用于解决是否存在或有多少种可能等类型的问题。二、枚举算法的基本框架.枚举算法三要素枚举范围、枚举对象、判断条件.基本框架循环结构分支结构枚举范围是用来表示枚举对象存在的一个连续区间,用循环结构语句实现。判断条件用来检测当前枚举的对象是否为问题的解。r例题精析-课堂重难突破一将 10 个数据 “12, 20, 15, 86,
2、 55, 69, 96, 35, 99, 72” 依次存放在列 表Listl中,使用如下Python程序段找出大于50的数的个数。Listl = 12, 20, 31, 86, 55, 69, 96, 35, 99, 72count=0key=5()for i in range(), 10):if:count + = 1print(大于50的个数为:,count)程序中划线处的代码应为()判断的字符为ch,因此处代码为ch in ss;当checkl、check2和check3的值均为True时,密码合法,其他情况均为不合法,根据if下面的print语句可知,if条件为密码不合法时的情况,因此
3、处代码为not(checkl and check2 andcheck3)0/历提升4.三次函数f(x)=|x3-2x2+3x-2的图像如下图所示。从图像中观察得到,在0, 4区间内,分别存在一个局部极大点P(在P附近的函 数值都小于f(P)和局部极小点Q(在Q附近的函数值都大于f(Q)o寻找P和Q 近似值的方法如下:在0, 4区间内,每间隔e(e=0.001)取一个值逐一进行枚举, 如果找到某个值X,能同时满足f(x)f(x呆和f(x)f(x+e),则X可作为P的近 似值;如果找到的某个值x,能同时满足f(x)f(xe)和f(x)vf(x+e),则x可作 为Q的近似值。请仔细阅读和分析寻找P、
4、Q近似值的方法和下列程序,在划线处填入合适代码, 将下列程序补充完整。def f(x):鱼 return fxe=0.001a=f(e) b=f(0)x = () while xa and bc:print(当x = ,x, 时,函数的极大值的近似值=,b)if :print(当x = ,x,时,”函数的极小值的近似值=,b) x = x+e划线处应填入的语句为:; 划线处应填入的语句为:; 划线处应填入的语句为:0 答案 fx = (x*3)/3 2*(x*2)+3*x 2 ba and bc a, b=b, c 解析 函数f(x)的功能是计算函数f(x)=|x32x2+3x 2的值,转换为
5、Python 表达式为 fx = (x*3)/3 2*(x*2) + 3*x 2,因此处代码为 fx = (x*3)/3 2*(x*2) + 3*x-2;根据题意可知,当b大于a并且同时大于c时,可求得极大 近似值b,当b小于a且同时小于c时,根据x可求得极小近似值b,因此处 代码为bva and bc;在寻找x的过程中,每寻找一次,需更新变量a、b的值, 分别将a、b的值更新为b、c的值,因此,处代码为a, b=b, co5.用Python程序实现统计随机数出现的次数。下面程序的功能是:首先随机产生 30个10, 99之间的不重复整数,并以每行10个输出在屏幕上,然后统计10, 19、20,
6、 29、90, 99各区间段的整数个数,并输出统计结果。程序运行 效果下图所示:3()个不重复的随机整数为:85 2() 78 44 2B 14 77 17 76 9857 )2 21 55 99 23 48 87 24 1546 38 88 82 71 47 89 94 45 61各区间段统计结果为:1() -19:420 - 29 : 530 - 39 : 140 - 49 : 550 - 59 : 260 - 69 : I70 - 79 : 48() - B9 : 590 - 99 : 3实现上述功能的程序如下,回答下列问题。import randomdef check(x):check
7、=Trueif _check = Falsereturn checklistl=list2=0*10n= 1while ncountB.ListlikeyD.Listl i0:ift% 10=2:k=Trueif k=True:s=s+lprint(包含2的整数共有:”,s)答案t=il = t7/10解析 本题程序采用了 for循环结构,在算法上运用了枚举算法。枚举每一个整 数i中是否包含数字字符2,判断整数i中是否包含数字字符2,使用了 while循 环,将整数i的每个数字分解出来并进行判断,由于整数i进行分解时会改变其 原来的值,为了不改变整数i的值,使用变量i的值赋给变量t,因此,处代
8、码 为1=每次取出整数t的个位数是否为数字字符2,因此每操作一次,需将t 的值整除1(),故处代码为-随堂检测课堂达标反馈.有一个八位数整数,该整数的特点如下:该整数以39开头;(2)该整数个位上的数字为6;(3)整数能被159和188整除。编写程序求出所有可能的整数并统计个数。实现上述功能的程序如下,请在程序 划线处填入合适的代码。listb = Ucount=0for i in range(0, 100000):x = 3900000006+i*10if:count=count + 1 for i in:print(lislbi)print(count)划线处应填入的语句为:; 划线处应填
9、入的语句为:; 划线处应填入的语句为:0 答案 x % 159= =0 and x %188= =0 listb.appcnd(x) range(0, count) 解析 由于密码的前两位是39,个位上的数字为6,因此只要枚举中间5位数字 即可,然后对整数x进行判断,若s能被159和188整除,则x就是满足要求整 数,将整数x存储在列表listb中,并进行计数。处代码表示条件“整数x能 被159和188整除吗? ,因此处代码为x% 159= =0 and x % 188= =0;处代码的功能是将整数x存储在列表listb中,因此处代码为listb.append(x);处循环的功能是输出列表li
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 信息 课时 枚举 算法 程序 实现
限制150内