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: ********** |