150 likes | 241 Views
枚 举 算 法. 上海市敬业中学 周智敏 2011-11-23. 枚举算法的定义. 是一种 搜索 方法,在搜索的过程中对 所有可能的结果逐一判断 , 舍掉 那些不合要求的, 保留 合乎要求的结果。. 使用枚举算法的两个关键点. 1 、枚举的范围. 2 、枚举的判断条件. 学生活动一 :. 登录教学问答系统 , 完成 “ 知识巩固 ”. 点击桌面的 “ 问答系统 ” 快捷方式. 登录 “ 枚举算法 ” “ 知识巩固 ”. 回答问题. “ 确认 ” 提交. 《 王充道送水仙花五十 》. [ 宋 ] 黄庭坚. 凌波仙子生尘袜,水上轻盈步微月。
E N D
枚 举 算 法 上海市敬业中学 周智敏 2011-11-23
枚举算法的定义 是一种搜索方法,在搜索的过程中对所有可能的结果逐一判断,舍掉那些不合要求的,保留合乎要求的结果。 使用枚举算法的两个关键点 1、枚举的范围 2、枚举的判断条件
学生活动一: 登录教学问答系统,完成“知识巩固” 点击桌面的“问答系统”快捷方式 登录“枚举算法”“知识巩固” 回答问题 “确认”提交
《王充道送水仙花五十》 [宋] 黄庭坚 凌波仙子生尘袜,水上轻盈步微月。 是谁招此断肠魂?种作寒花寄愁绝。 含香体素欲倾城,山矾是弟梅是兄。 坐对真成被花恼,出门一笑大江横。 凌波仙子生尘袜,水上轻盈步微月。
3 3 3 = + + 思 考 美丽的“水仙花数” 153 15 3 水仙花数:某一个三位正整数,它各个位置上的数字的立方和等于它本身。 同学们,你们能用枚举算法找出所有的水仙花数吗?
寻找美丽的“水仙花数” 所有的三位正整数 ① 枚举的范围是什么? 100~999 ② 枚举的判断条件是什么? 每一个三位正整数的各个位置上的数字的立方和是否等于它本身
学生活动二: 登录教学问答系统,完成“模式选择” 点击桌面的“问答系统”快捷方式 登录“枚举算法”“模式选择” 回答问题 “确认”提交
枚举的范围——循环模式 所有的三位正整数 循环初始化 x100 设变量x为三位正整数 (x:从100到999) N x<=999 循环条件 Y 循 环 体 xx+1
A式 输出x xx+1 枚举的判断条件 ——单分支选择模式 每一个三位正整数的各个位置上的数字的立方和是否等于它本身 变量x为三位正整数 (x\100)^3+(x\10 mod 10)^3+(x mod 10)^3=x N Y A式 xx+1 xx+1
开始 开始 x100 x100 N x<=999 N Y x<=999 ax \ 100 Y bx \ 10 mod 10 cx mod 10 N a^3+b^3+c^3=x N A式 N Y A式 xx+1 Y 输出x Y 输出x 输出x xx+1 结束 A式 (x\100)^3+(x\10 mod 10)^3+(x mod 10)^3=x 结束 枚举的范围——循环模式 所有的三位正整数 x100 设变量x为三位正整数 (x:从100到999) N x<=999 Y 枚举的判断条件 循环体 ——单分支选择模式 xx+1 xx+1
N Y N Y 枚举算法的一般模式 ——循环嵌套选择 枚举的范围——循环模式 枚举的判断条件 … … … … ——单分支选择模式
A式 N Y 枚举的判断条件 ——单分支选择模式 每一个三位正整数的各个位置上的数字的立方和是否等于它本身 (x\100)^3+(x\10 mod 10)^3+(x mod 10)^3=x 变量x为三位正整数 x\100 A式 x的百位数字: x的十位数字: x\10 mod 10 输出x x mod 10 x的个位数字:
开始 开始 x100 x100 N x<=999 N Y x<=999 ax \ 100 Y bx \ 10 mod 10 cx mod 10 N a^3+b^3+c^3=x N A式 N Y A式 xx+1 Y 输出x Y 输出x 输出x xx+1 结束 A式 (x\100)^3+(x\10 mod 10)^3+(x mod 10)^3=x 结束 枚举的范围——循环模式 所有的三位正整数 x100 设变量x为三位正整数 (x:从100到999) N x<=999 Y 枚举的判断条件 ——单分支选择模式 xx+1
N Y N Y 枚举算法的一般模式 ——循环嵌套选择 枚举的范围——循环模式 枚举的判断条件 … … … … ——单分支选择模式
回家作业 寻找四位数的回归数 四位数的回归数:某一个四位正整数,它各个位置上的数字的四次方之和等于它本身,如8208=84+24+04+84。请你设计算法找出所有四位数的回归数,用流程图描述。