第 13 题
答案与解析
第(1)小题
i < n-2
loads[j] > 1.1*R
[i,i+2]
程序分析
events = [] #存储超载区间,如events=[[2,4]]
n = len(loads)
i = 0
while ①:
...
i = i + 1events 初值为空列表,注释说明它用于保存超载区间。i 从0开始,每轮加1,使检查位置依次向后移动;每轮的计数和记录操作都在这个外层循环内完成。
count = 0
j = i
while j <= i + 2:
if ②:
count = count + 1
j = j + 1每轮先把 count 清零,再令 j 从 i 开始,逐一检查到 i+2。因此,一轮检查的是连续3次采集的数据,i 是这组数据的起始下标,j 是组内当前检查位置。空②的条件每满足一次,count 就加1;下一轮重新清零,避免把前一区间的次数带入新区间。
if count >= 2:
events.append(③)count 达到2时才向 events 追加一项,这与题目要求的“3次中有2次及以上”相对应。每轮独立判断,当前区间被记录后,下一轮仍只将起始位置后移1位,因此相邻区间可能重叠。
print("超载区间元素依次有:")
for item in events:
for i in range(item[0], item[1] + 1):
print(loads[i], end=" ")输出时,item 依次取出 events 中的一条记录。range(item[0], item[1]+1) 包含 item[0] 至 item[1] 的所有下标,并据此访问 loads,所以一条区间记录的前两项分别保存起始下标和结束下标,而不是载荷值。
填空分析
①
每轮从下标 i 检查到 i+2,而 loads 的最大合法下标为 n-1,因此必须满足 i+2≤n-1,即 i≤n-3。空①是外层 while 的循环条件,可填 i < n-2,也可填 i <= n-3。这样最后一组恰好检查至列表末尾;不足3个数据时不进入循环。
②
题目把载荷值严格超过额定载荷110%的采集计入超限次数。当前检查位置是 j,对应载荷为 loads[j],阈值为 1.1*R,因此填 loads[j] > 1.1*R。等于阈值时不计数。
③
当前检查区间的起止下标是 i、i+2。events.append(...) 每次追加一条区间记录,且后续通过记录的第0项、第1项读取两个端点,因此应填列表 [i,i+2]。内层循环结束时 j=i+3,填 [i,j-1] 也等价。
第(2)小题
3
超限阈值为1.1×10=11,给定数据中只有12严格超过阈值。按采集顺序,每连续3个数据构成一个待检查区间;8个数据共有8-3+1=6个区间。按从0开始的列表下标逐一检查:
| 下标区间 | 3次采集的载荷值 | 超过11的次数 | 是否为超载区间 |
|---|---|---|---|
| [0,2] | 5、8、12 | 1 | 否 |
| [1,3] | 8、12、8 | 1 | 否 |
| [2,4] | 12、8、12 | 2 | 是 |
| [3,5] | 8、12、12 | 2 | 是 |
| [4,6] | 12、12、10 | 2 | 是 |
| [5,7] | 12、10、8 | 1 | 否 |
满足条件的是 [2,4]、[3,5]、[4,6],共3个区间。这些区间虽有重叠,但各自对应不同的连续3次采集,应分别计数。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_beidouxingmeng_q013
