public double Aggregate(SubScore score, double w1, double w2, double w3, double w4, double w5) { if (!score.n.Any()) { return(0d); } var subscores = score.n.Select(s => (w1 * s.m + w2 * (1d - (s.v / s.c)) + w3 * (1d - (s.o / s.v))) / (w1 + w2 + w3)).Average(); return((w4 * score.w + w5 * subscores) / (w4 + w5)); }
public double Aggregate(SubScore score) { var(w1, w2, w3, w4, w5) = (1, 1, 1, 0.26531416795464, 0.73468583204536); return(Aggregate(score, w1, w2, w3, w4, w5)); }