MODULE DiversPredict; (* Diversity prediction theorem *) FROM STextIO IMPORT WriteLn, WriteString; FROM SRealIO IMPORT WriteFixed; TYPE TEstims = ARRAY [0 .. 1], [0 .. 4] OF REAL; VAR Estims: TEstims; TrueVal, Sum, AvgErr, Avg, CrowdErr, Diff: REAL; I, J: CARDINAL; BEGIN Estims := TEstims{{48.0, 47.0, 51.0, 0.0, 0.0}, {48.0, 47.0, 51.0, 42.0, 0.0}}; TrueVal := 49.0; FOR I := 0 TO 1 DO Sum := 0.0; J := 0; WHILE Estims[I, J] <> 0.0 DO Diff := Estims[I, J] - TrueVal; Sum := Sum + Diff * Diff; J := J + 1; END; AvgErr := Sum / FLOAT(J); WriteString("Average error: "); WriteFixed(AvgErr, 3, 7); WriteLn; Sum := 0.0; J := 0; WHILE Estims[I, J] <> 0.0 DO Sum := Sum + Estims[I, J]; J := J + 1; END; Avg := Sum / FLOAT(J); Diff := TrueVal - Avg; CrowdErr := Diff * Diff; WriteString("Crowd error : "); WriteFixed(CrowdErr, 3, 7); WriteLn; WriteString("Diversity : "); WriteFixed(AvgErr - CrowdErr, 3, 7); WriteLn; WriteLn; END; END DiversPredict.