给定一个整数序列与一个窗口大小列表。对每一行输入,固定一个公共右边界,对窗口列表中的每个窗口长度各取一个“右对齐”的子数组,分别计算5个统计量,并按窗口列表的顺序依次拼接成一行结果;沿着序列从左到右依次移动右边界,生成多行输出。
统计量与计算约定
-
每个子数组输出5项(固定顺序):mean、std、min、max、slope。
-
std: 样本标准差(ddof=1)。当窗口长度为1时,std=0。
-
slope: 最小二乘直线斜率,横坐标为 x=0..w−1。若分母为0或 w=1,则 slope=0。
-
数值格式:若为整数则不带小数点;非整数最多保留3位小数,四舍五入,去掉末尾无意义的0(如 1.0→1,1.10→1.1,1.1116→1.112)。
窗口对齐与行数
-
窗口对齐方式:右对齐。第 i 行的公共右边界为 R=i+max(window_array)−1。对窗口大小 w,取子数组 arr[R−w+1…R]。
-
行数 n = len(input_array) − max(window_array) + 1。若 len(input_array) < 任一窗口大小,则输出为空。