Statistics/Basic: Difference between revisions

Content added Content deleted
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
(Added XPL0 example.)
Line 4,920: Line 4,920:
0.4 - 0.5: **********
0.4 - 0.5: **********
0.5 - 0.6: **********
0.5 - 0.6: **********
0.6 - 0.7: **********
0.7 - 0.8: **********
0.8 - 0.9: **********
0.9 - 1.0: **********
</pre>

=={{header|XPL0}}==
{{trans|Wren}}
<syntaxhighlight lang "XPL0">include xpllib; \for Print

func real Mean(X, N);
real X; int N;
real Sum; int I;
[Sum:= 0.;
for I:= 0 to N-1 do
Sum:= Sum + X(I);
return Sum/float(N);
];

func real StdDev(X, N, Mean);
real X; int N; real Mean;
real Sum; int I;
[Sum:= 0.;
for I:= 0 to N-1 do
Sum:= Sum + sq(X(I) - Mean);
return sqrt(Sum/float(N));
];

int Size, J, K, Sums(10), Scale;
real A, M;
[Size:= 100;
repeat A:= RlRes(Size);
for J:= 0 to Size-1 do
A(J):= float(Ran(1_000_000)) / 1e6;
Print("For %d random numbers:\n", Size);
M:= Mean(A, Size);
Print(" mean = %1.9f\n", M);
Print(" stddev = %1.9f\n", StdDev(A, Size, M));
Scale:= Size / 100;
Print(" scale = %d per asterisk\n", Scale);
for J:= 0 to 10-1 do Sums(J):= 0;
for J:= 0 to Size-1 do
[K:= fix(Floor(A(J)*10.));
Sums(K):= Sums(K)+1;
];
for J:= 0 to 8 do
[Sums(J):= Sums(J) / Scale;
Print(" 0.%d - 0.%d: ", J, J+1);
for K:= 1 to Sums(J) do ChOut(0, ^*);
CrLf(0);
];
Print(" 0.9 - 1.0: ");
for K:= 1 to Sums(9)/Scale do ChOut(0, ^*);
CrLf(0); CrLf(0);
Size:= Size * 10;
until Size > 10_000;
]</syntaxhighlight>
{{out}}
<pre>
For 100 random numbers:
mean = 0.516471700
stddev = 0.286590092
scale = 1 per asterisk
0.0 - 0.1: *********
0.1 - 0.2: ***********
0.2 - 0.3: ********
0.3 - 0.4: ********
0.4 - 0.5: **************
0.5 - 0.6: ***
0.6 - 0.7: **********
0.7 - 0.8: ******************
0.8 - 0.9: *********
0.9 - 1.0: **********

For 1000 random numbers:
mean = 0.485343800
stddev = 0.287769421
scale = 10 per asterisk
0.0 - 0.1: **********
0.1 - 0.2: ***********
0.2 - 0.3: *********
0.3 - 0.4: ***********
0.4 - 0.5: *********
0.5 - 0.6: ***********
0.6 - 0.7: ********
0.7 - 0.8: *********
0.8 - 0.9: ********
0.9 - 1.0: **********

For 10000 random numbers:
mean = 0.501502304
stddev = 0.288991280
scale = 100 per asterisk
0.0 - 0.1: *********
0.1 - 0.2: **********
0.2 - 0.3: **********
0.3 - 0.4: *********
0.4 - 0.5: *********
0.5 - 0.6: *********
0.6 - 0.7: **********
0.6 - 0.7: **********
0.7 - 0.8: **********
0.7 - 0.8: **********