RosettaCodeData/Task/Diversity-prediction-theorem/Modula-2/diversity-prediction-theorem.mod2
2026-04-30 12:34:36 -04:00

48 lines
1.1 KiB
Text

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.