设输入的原始值为 vi,按照题目给出的四个阶段依次处理。
只有 q=0 的数据属于有效数据,因此对于每个 q=2 的位置,需要找到:
某数据采集系统按时间顺序获取了 n 条记录,每条记录包含时间戳 ti、数值 vi 和质量标记 qi。
其中,质量标记用于表示数据状态:当 qi 为 0 时表示数据有效,当 qi 为 1 时表示数据存在可疑情况,当 qi 为 2 时表示数据无效。系统需要按照无效数据修复、局部异常处理、标准化以及评分计算的顺序依次完成数据处理流程。
阶段一:无效数据修复
对每个满足 qi=2 的位置 i,分别寻找其左侧和右侧最近的满足 q=0 的有效数据下标,记为 l 和 r。如果不存在,则对应下标视为未找到。
其余非无效数据的值保持不变,即 ai=vi。完成本阶段后得到序列 a。
阶段二:局部异常处理
设 w 为奇数,令半径 h=2w−1。对每个位置 i,定义窗口下标范围 [Li,Ri],其中 Li=max(1,i−h),Ri=min(n,i+h)。边界处不补值,因此实际窗口大小允许小于 w。
对位置 i,基于该窗口内第一阶段结果 a 计算:
如果 ∣ai−μi∣>kσi,则将当前值替换为窗口均值,即 bi=μi;否则保持 bi=ai。本阶段所有窗口统计量均基于阶段一结束后的序列 a,不随本阶段的替换而改变。
阶段三:z-score 标准化
对阶段二得到的序列 b 的全部 n 个值,计算全局均值 xˉ 和全局标准差 s:
xˉ=n1∑i=1nbi
s=n1∑i=1n(bi−xˉ)2
每个位置的标准化值为 zi=sbi−xˉ。特别地,如果 s=0,则最终分数直接定义为 0。
阶段四:最终评分
根据质量标记定义质量权重 pi:
取第二阶段结果 bi 的绝对值,定义原始值权重:
wi=∑j=1npj∣bj∣pi∣bi∣
如果分母为 0,则最终分数直接定义为 0。
综合得到特征分数:
S=∑i=1nwi∣zi∣
最终输出将 S 乘以 100 后四舍五入得到的整数。
约束条件
0、1、2 中的一种。第一行包含三个整数 n、w、k,分别表示记录数量、移动窗口大小和异常判断使用的标准差倍数。
接下来包含 n 行,其中第 i 行包含三个整数 ti、vi、qi,依次表示第 i 条记录的时间戳、数值和质量标记。
输出一个整数,表示特征分数 S 乘以 100 并四舍五入后的结果。
输入
1 1 1
1 5 0
输出
0
说明
只有 1 条记录,窗口大小 w=1。无效数据修复阶段没有无效记录,因此 a1=v1=5。
局部异常处理时窗口只包含自身,均值 μ1=5,标准差 σ1=0。由于 ∣a1−μ1∣=0,不满足替换条件,所以 b1=5。
第三阶段全局标准差 s=0,根据规则最终分数直接定义为 0。
输入
3 1 1
1 1 0
2 2 1
3 3 2
输出
102
说明
第一阶段,第 3 条记录 q3=2。它左侧最近的 q=0 记录是第 1 条,右侧不存在,因此 a3=v1=1。其余位置保持不变,得到 a=[1,2,1]。
第二阶段 w=1,每个窗口只包含当前位置,窗口均值等于当前值,标准差为 0,因此所有位置均保持原值,b=[1,2,1]。
第三阶段全局均值 xˉ=34,全局标准差 s=32。
第四阶段质量权重为 p1=1,p2=0.5,p3=0.25。计算分母 ∑j=13pj∣bj∣=2.25。三个位置的 ∣zi∣ 分别为 22、2、22。加权求和得到 S≈1.0214,乘以 100 并四舍五入为 102。
输入
3 3 1
1 0 0
2 0 0
3 1 0
输出
141
说明
三条记录均为有效数据,因此无需无效数据修复,a=[0,0,1]。
窗口大小 w=3,每个位置的窗口都覆盖全部 3 条记录,窗口均值 μ=31,标准差 σ=32。位置 1 和位置 2 的偏差绝对值均为 31,不大于 σ,保持原值。位置 3 的偏差绝对值为 32,大于 σ,因此 b3=μ=31。得到 b=[0,0,31]。
第三阶段全局均值 xˉ=91,全局标准差 s=92。
第四阶段所有 qi=0,所以 pi=1。分母 ∑pj∣bj∣=31,只有第 3 条记录的权重非零。其 ∣z3∣=2,因此 S=2,乘以 100 并四舍五入为 141。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册