资源简介 (共21张PPT)微项目2用枚举算法寻找问题多解例1 逢7跳过游戏:第1位同学从1开始数起,依次每人尽快数下一个数,凡是遇到7的倍数(如7、21等)或是数字中带7的数字(如17、71等),就要喊“过”说错或卡住了即被淘汰,这样一直数到100为止。用枚举算法寻找问题多解算法分析把问题所有的可能解一一列举出来, 并对每一个可能解进行判断,是真正解的时候输出“过”例1 逢7跳过游戏:第1位同学从1开始数起,依次每人尽快数下一个数,凡是遇到7的倍数(如7、21等)或是数字中带7的数字(如17、71等),就要喊“过”说错或卡住了即被淘汰,这样一直数到100为止。用枚举算法寻找问题多解用枚举算法寻找问题多解这种算法就叫做“枚举算法”,又称为“穷举法”算法思想:把问题的所有的可能解一一列举出来,并对每一个可能解进行判断,以确定是否是问题的真正解。逢7跳过游戏一一列举:1~100逐个检验:是7的倍数或包含77的倍数个位为7十位为7for i in range(1,101):i%7==0i%10==7i//10==7用枚举算法寻找问题多解用枚举算法寻找问题多解利用枚举算法思想解决问题:1、确定枚举范围1~1002、确定判断条件是7的倍数或包含73、编程求解用枚举算法寻找问题多解例2、破解密码1、确定枚举范围812000~812990求解密码,小明有一张藏宝图,上面有宝藏开启的密码,但是他不小心打翻了墨水,导致十位和百位模糊不清了,幸好藏宝图有提示:该密码是31或187的倍数,且十位是奇数。2、确定判断条件是31或187的倍数,且十位是奇数for i in range(812000,812991,10):if i%31==0 i%187==0 i//10%2!=0:用枚举算法寻找问题多解例2、破解密码1、确定枚举范围812000~812990求解密码,小明有一张藏宝图,上面有宝藏开启的密码,但是他不小心打翻了墨水,导致十位和百位模糊不清了,幸好藏宝图有提示:该密码是31或187的倍数,且十位是奇数。2、确定判断条件是31或187的倍数,且十位是奇数for i in range(812000,812991,10):if i%31==0 i%187==0 i//10%2!=0:or()and用枚举算法寻找问题多解例2、求解被墨水密码结论:尽可能使罗列的范围最小,选择最优化的方法100991用枚举算法寻找问题多解例3、百钱买百鸡用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?确定枚举对象 确定枚举范围 确定判断条件公鸡(5元) 0≤x≤20 ① x+y+z=100② 5x+3y+ z=100母鸡(3元) 0≤y≤33小鸡(1/3元) 0≤z≤100用枚举算法寻找问题多解用枚举算法寻找问题多解例4、水仙花数1、确定枚举范围100-1000输出1000以内的所有水仙花数。水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 1532、确定判断条件每个位上的数字的3次幂之和等于它本身:a=i%10for i in range(100,1000):个位 十位 百位b=i//10%10c=i//100if a**3+b**3+c**3==i:用枚举算法寻找问题多解用枚举算法寻找问题多解例5、鸡兔同笼问题1、确定枚举范围heads=35Legs=94兔数量:1-heads-1编程解决:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?2、确定判断条件鸡和兔的总脚数之和等于94leg=tu*4+(heads-tu)*2for tu in range(1,heads):if legs==leg:1、求当前兔子数量下鸡和兔的总脚数2、判断脚数是否相等用枚举算法寻找问题多解小结1. 枚举算法的基本思想:一一 列举,逐个检验2. 尽可能使罗列的范围最小,选择最优化的方法3. 可以借助列表实现枚举算法用枚举算法寻找问题多解随堂练习把问题的所有可能解都—一列举出来,并按照问题要求的条件逐个判断每个答案是否是正确的解,这就是()A.排序算法B.递归算法C.迭代算法D.枚举算法用枚举算法寻找问题多解随堂练习下列问题中,适合使用枚举法解决的是()A.计算1+2+3+.….+1000的值B.计算学校所有同学的平均身高和平均体重C.查找100以内所有能被6整除的数D.超市的收银系统,结算顾客所购商品的费用用枚举算法寻找问题多解随堂练习我们利用枚举的策略解决问题时,下列说法错误的是()A.要按一定的顺序枚举B.枚举时只可列表,不可画图D.做到不重复,不遗漏C.要对结果进行比较,做出选择用枚举算法寻找问题多解随堂练习利用枚举算法解决问题时,确定枚举范围可使用下列语句中的()A、If B、ForC、Elif C. import用枚举算法寻找问题多解随堂练习实现枚举算法一般采用()的算法结构模型。A.分支套循环B.循环套循环C.循环套分支D.分支套分支用枚举算法寻找问题多解随堂练习登录密码安全对信息系统安全的作用至关重要,下列说法不恰当的是()A.密码越复杂,用枚举法破解的概率越低B.要设置看起来杂乱无章,而对自己有特殊含义、容易记的密码C.输入的密码不宜明文显示在终端屏幕上D.不同的信息系统可设置相同的登录密码 展开更多...... 收起↑ 资源预览