Statistics/Basic: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: removed the last blank line. -- ~~~~) |
(Updated D entry) |
||
Line 530: | Line 530: | ||
return tuple(0.0L, 0.0L); |
return tuple(0.0L, 0.0L); |
||
real sx=0.0, sxx=0.0; |
real sx = 0.0, sxx = 0.0; |
||
ulong n; |
ulong n; |
||
foreach (x; numbers) { |
foreach (x; numbers) { |
||
Line 540: | Line 540: | ||
} |
} |
||
void |
void showHistogram01(R)(R numbers) { |
||
enum maxWidth = 50; // characters |
enum maxWidth = 50; // N. characters. |
||
ulong[10] bins; |
ulong[10] bins; |
||
foreach (x; numbers) { |
foreach (x; numbers) { |
||
immutable index = cast(size_t)(x * bins.length); |
|||
enforce(index >= 0 && index < bins.length); |
|||
bins[index]++; |
|||
} |
} |
||
immutable real maxFreq = reduce!max |
immutable real maxFreq = bins.reduce!max; |
||
alias std.array.replicate R; |
alias std.array.replicate R; |
||
foreach (n, i; bins) |
foreach (n, i; bins) |
||
writefln(" %3.1f: %s", n / |
writefln(" %3.1f: %s", n / cast(real)bins.length, |
||
R("*", cast(int)(i / maxFreq * maxWidth))); |
R("*", cast(int)(i / maxFreq * maxWidth))); |
||
writeln |
writeln; |
||
} |
} |
||
version (statistics_basic_main) { |
|||
void main() { |
|||
void main() { |
|||
import std.random; |
|||
auto n = iota(10L ^^ p).map!(_ => uniform(0.0L, 1.0L))(); |
|||
foreach (immutable p; 1 .. 7) { |
|||
auto n = iota(10L ^^ p).map!(_ => uniform(0.0L, 1.0L)); |
|||
writeln(10L ^^ p, " numbers:"); |
|||
writefln(" Mean: %8.6f, SD: %8.6f", n.meanStdDev.tupleof); |
|||
n.showHistogram01; |
|||
} |
|||
} |
} |
||
}</lang> |
}</lang> |
||
Compile with "-version=statistics_basic_main" to run the main function. |
|||
{{out}} |
{{out}} |
||
<pre>10 numbers: |
<pre>10 numbers: |