资源简介 常见算法的程序实现 DESIGNED BY INFORMATION porttitor congue massa 基于解析算法的问题解决 基于枚举算法的问题解决 算法与程序实现的综合应用 TITLE 01 TITLE 02 TITLE 03 绿灯时长的最优设置 行人步行速度约为4.4?km/h,观察到信号灯变化后的反应时间约为2s,要保证过街行人能走过长为20m的人行横道,人们过街绿灯时长至少需要设置为多少? 思考:1.写出求解绿灯最短时长的计算公式: 2.结合实际道路情况,思考在设置人行过街绿灯时长时需要考虑哪些因素,试着给出 绿灯时长的最优设置模型 思考:绿灯最短时长: =反应时间+过街时间 设置时长需要考虑的因素: 速度差异,反应时差… 建立模型: t绿灯长=t过马路+t人反应 t过马路=s马路/v人步行 t绿灯长=s马路/v人步行 + t人反应 2s+20m/4.4km/h 基于解析算法的问题解决 分析问题 保存文件,调试运行程序 编程实现与调试 设计算法 自由落体运动 问题 : 从离地500?m的高处自由落下一个小球,求从开始落下的时刻起,小球在最后1s内 的位移(重力加速度g以 9 .8?m/s2计)。 (1)分析问题 已 知 条 件 : 小球离地高度500?m,重力加速度g为9.8?m/s2?; 求 解 目 标 : 小球在下落最后1s内的位移: 已 知 与 未 知 的 关 系 : 可用自由落体运动位移与时间关系的公式h=?gt2求解出下落时间t,以及最后1?s内小球的位移。 (2)设计算法 elit maecenas porttitor congue massa (3)编程实现与调试 import math h=500 g=9.8 t=math.sqrt(2*h/g) hx=g*(t-1)*(t-1)/2 hh=h-hx print("小球最后1 S下落的位移是:",hh,"m") ASPIRATION ASPIRATION elit maecenas porttitor congue massa 4)保存文件,编程调试运行程序 ASPIRATION ASPIRATION 编程解决问题时,要善于综合运用物理、数学、化学、等学科的知识和方法来分析问题,寻找问题中各要素之间的关系,得出解决问题所需的表达式。 基于枚举算法的问题解决 分析问题 保存文件,调试运行程序 编程实现与调试 设计算法 票据中模糊数字推断问题 问题:一张票据上有一个由4位数字组成的编号,甲说数字编号的前两位数字相同但都不是零;乙说数字编号的后两位数字是相同的,但与前两位不同;丙说数字编号是一个整数的二次方,试根据以上线索推断出编号 (1)分析问题 已知条件 : 假设4位数字的编号是AABB、其中A≠0,A≠B, 且AABB是 一个整数的二次方 求解目标 : 票据中的数字: 已知与未知的关系 : 要求解的4位数字的编号必须同时满足所有的已知条件 INFODATA elit maecenas porttitor congue massa (2)设计算法 根据问题分析,只要一一列举出4位数字AABB中A与B的所有可能组合,保证A≠B?且A≠0.再验证二次方问题,就可以得到同题的解。因此,该问题可使用枚举算法求解完成,其算法的流程图如图所示 morbi (3)编程实现与调试 import?math for?A?in?range(1,?10): for?B?in?range?(0,?10): if A?!=?B: k=A*1000+A*100+B*10+B c?=int (math.?sqrt(k)) # 求4位数字 AABB的算术平方根 并取其整数部分 if?c*c==?k: # 若k是完全平方数, 则找到该票据编号print("票据编号是:”,k) elit maecenas porttitor congue massa 枚举算法在生活中有着比较广泛的应用场景,适合解决求解的答案数量有限,并且可能的答案暗示按照某种规则列举出来的问题。例如,用枚举法解决一些数学问题(“鸡兔同笼”“韩信点兵”等)、益智游戏和逻辑推理等。 habitant morbi tristique (4)保存文件,调试运行程序 谢谢! lorem ipsum dolor sit amet consectetuer adipiscing elit maecenas porttitor congue massa 展开更多...... 收起↑ 资源预览