110,534
社区成员
发帖
与我相关
我的任务
分享
delegate T2 Func<T1, T2>(T1 t1);
delegate int[] arraryEleOp(int[] source, Func<int, int> func);
delegate int[] mv(int[] source, int count);
private void button1_Click(object sender, EventArgs e)
{
int[] source =new int[] { 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 };
arraryEleOp 加减权 = (s, f) => {
List<int> res = new List<int>();
for (int i = 0; i < s.Length; i++)
{
res.Add(s[i] + f(i));
}
return res.ToArray();
};
mv 移动平均 = (s, count) =>
{
List<int> res = new List<int>();
for (int i = 0; i < s.Length - count + 1; i++)
{
ArraySegment<int> t = new ArraySegment<int>(s, i, count);
res.Add(avg(t));
}
return res.ToArray();
};
var res1 =加减权(
移动平均(
加减权(
移动平均(source, 5), i => source[i])
, 5)
, i => -移动平均(source, 5)[i]
);
}
//计算均值
private int avg(ArraySegment<int> source)
{
int res = 0;
for (int i = source.Offset; i < source.Offset + source.Count; i++)
{
res += source.Array[i];
}
return res / source.Count;
}