深耕专业教研,探索前沿技术
信息技术来源:金华十校2026年4月高三模拟考试

第 14 题

答案与解析

第(1)小题

参考答案

2

适宜湿度范围为70±5,即[65,75]。每次用最近连续4次采集值判断:平均值在该范围内且最大值与最小值之差不超过5,才属于稳定状态。只有本次状态与上一次不同,才修改检测频率。

初始为稳定状态,7次数据可形成4组连续的4次采集窗口:

连续采集窗口 平均值 最大值−最小值 本次状态 是否调整频率
第1~4次:64,66,66,68 66 4 稳定 否,与初始状态相同
第2~5次:66,66,68,72 68 6 波动 是,1次/分钟→5次/分钟
第3~6次:66,68,72,68 68.5 6 波动 否,仍为5次/分钟
第4~7次:68,72,68,68 69 4 稳定 是,5次/分钟→1次/分钟

第5次、第7次采集后各调整一次,共2次。

第(2)小题

参考答案
  1. len(hum) - m + 1

  2. bd <= T

  3. state != pre_state

程序分析

m = 4  # 连续4次采集
s = 70 # 大棚适宜湿度值
T = 5 # 阈值
cnt = 0
pre_state = "1次/分钟(稳定状态)"
for i in range(0, len(hum) - 1): # ①加框处
    ...
print("调整检测频率次数:",cnt)

m、s、T分别对应连续采集次数、适宜湿度值和阈值。外层循环用i依次选取一组数据的起始位置,循环内完成本组统计和频率判定;cnt初值为0,pre_state初值为稳定状态。

cur = hum[i : i + m]
tot = 0
for num in cur:
    tot += num
avg = tot / len(cur)
bd = max(cur) - min(cur)

cur保存从下标i开始、到i+m之前的湿度数据。每轮先将tot置0,再累加当前窗口内的数据,所以avg是本组平均湿度;bd由最大值减最小值得到,表示本组湿度波动。

if s - T <= avg <= s + T and ②:
    state = "1次/分钟(稳定状态)"
else:
    state = "5次/分钟(波动状态)"

条件成立时,state取稳定状态对应的检测频率;否则取波动状态对应的检测频率。因此,state保存本轮的频率判定结果。已知条件检查平均值范围,空②与它通过and连接。

if ③:
    cnt += 1
pre_state = state

空③决定本轮是否将cnt加1。计数判断之后执行pre_state=state,把本轮结果留给下一轮比较;因此比较发生时,pre_state仍保存上一轮结果,首次比较则使用题目给定的初始状态。

填空分析

①

每组必须恰好含m次采集值,所以切片hum[i:i+m]应满足i+m≤len(hum),最后一个起始下标为len(hum)−m。range不包含结束值,因此加框处应改为:

len(hum) - m + 1

例如7个数据、m=4时,只能从下标0、1、2、3开始取数;原写法还会处理i=4、5,得到不足4个数据的切片。

②

稳定状态除平均值符合要求外,还要求湿度波动不超过阈值。bd已保存本组的最大值与最小值之差,“不超过”包含等于,因此填:

bd <= T

③

cnt统计频率改变的次数。只有本轮判定的state与此前保存的pre_state不同,才发生一次调整,因此填:

state != pre_state

这一比较同时覆盖稳定转为波动、波动转为稳定两种变化;连续两轮状态相同则不计数。