柠檬花开

这是一个成长的空间,有你有我有大家,心灵在这里起飞,美好的一切从这里开始,安宁,舒心,沁人心脾,花香来自心灵深处……

python基于解析算法的问题解决 (高一)

  学习目标 : 

●理解解析算法,根据需要用算法,编程实现简单问题求解。

●认识问题解决中算法的效率,完成项目程序的调试与运行。

一、解析算法

解析算法是指通过找出解决问题的前提条件与结果之间关系的表达式,并计算表达式来实现问题的求解。

许多问题可以通过分析,抽象成数学模型,借助解析式,直接用已知条件为变量赋值进行求解。例如,在“体验探索”中求解行人过马路最短绿灯时长时,可以应用行程问题相关公式,先计算行人过马路的时间t过马路= S马路/V步行 ,然后建立数学模型t绿灯长=t过马路+t人反应,得到行人过街绿灯最短时长公式t绿灯长= S马路/V步行 +t人反应,最后只要将已知条件代入公式即可完成该问题求解。

 从离地面500m的空中自由落下一个小球,取g=9.8m/s2,求小球:(1)落到地面经过多长时间(2)自开始下落计时,最后1秒内的位移。

1.分析问题

已知条件:小球离地高度500 米,重力加速度g 为9.8米/秒2 ; 求解目标:小球在下落最后1 秒内的位移;

已知与未知的关系:可用自由落体运动公式h= 1/2(gt**2),求解出下落时间t 以及最后1 秒

内小球的位移。

2.设计算法

在该问题中,要计算最后1 秒内小球的位移,首先要先求出小球的落地时间t,由h= 1/2( gt**2) 可以得出落地时间=( 2h /g)**0.5;然后再计算前(t-1)秒小球下落的高度hx ;最后求出总高度h(500 米)与hx 的差hh,即为最后1 秒内小球的位移。

2.该问题求解算法的流程图:


3、根据算法设计进行编程实现,程序示例如下:

import math
(略)

最后,保存文件,调试运行程序。

提示

math包包含了最基本的数学运算函数,如果想要更加高级的数学功能,可以使用标准库外的numpy和scipy库,他们不但支持数组和矩阵运算,还有丰富的数学和物理方程可供使用。

二、随机函数:

基础知识:

在python中的random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。

例如:random.randint(1,100)随机数中使包括1和100的。

例2:Python 生成(x,y)区间的随机数。

import random

x = int(input('Enter a number for x: '))  #随机数最小值

y = int(input('Enter a number for y: ')) #随机数最大值

z = random.randint(x, y)

print(z)

任务二:用解析法完成以下两道题目之一

例3.  52名同学去划船,一共乘坐11只船,其中每只大船坐6人,每只小船坐4人。求大船和小船各几只?

例4:在一个停车场上,停了小轿车和摩托车一共32辆,这些车一共108个轮子。求小轿车和摩托车各有多少辆?

在利用解析算法求解问题的过程中,有些问题无法通过将已知条件代入公式一次求解完成,需要多次使用这个公式,不断用变量的旧值推导出新值,直到最终求出解。

评论

© 柠檬花开 | Powered by LOFTER