Statistics/Normal distribution: Difference between revisions
Content added Content deleted
m (→{{header|R}}) |
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
||
Line 867: | Line 867: | ||
* |
* |
||
</pre> |
</pre> |
||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<lang haskell>import Data.Map (Map, empty, insert, findWithDefault, toList) |
<lang haskell>import Data.Map (Map, empty, insert, findWithDefault, toList) |
||
Line 1,100: | Line 1,101: | ||
4.90: 1 |
4.90: 1 |
||
</pre> |
</pre> |
||
=={{header|J}}== |
=={{header|J}}== |
||
'''Solution''' |
'''Solution''' |
||
Line 1,985: | Line 1,987: | ||
65 ⎸ |
65 ⎸ |
||
66 ⎸</pre> |
66 ⎸</pre> |
||
=={{header|Perl 6}}== |
|||
{{works with|Rakudo|2018.03}} |
|||
<lang perl6>sub normdist ($m, $σ) { |
|||
my $r = sqrt -2 * log rand; |
|||
my $Θ = τ * rand; |
|||
$r * cos($Θ) * $σ + $m; |
|||
} |
|||
sub MAIN ($size = 100000, $mean = 50, $stddev = 4) { |
|||
my @dataset = normdist($mean,$stddev) xx $size; |
|||
my $m = [+](@dataset) / $size; |
|||
say (:$m); |
|||
my $σ = sqrt [+](@dataset X** 2) / $size - $m**2; |
|||
say (:$σ); |
|||
(my %hash){.round}++ for @dataset; |
|||
my $scale = 180 * $stddev / $size; |
|||
constant @subbar = < ⎸ ▏ ▎ ▍ ▌ ▋ ▊ ▉ █ >; |
|||
for %hash.keys».Int.minmax(+*) -> $i { |
|||
my $x = (%hash{$i} // 0) * $scale; |
|||
my $full = floor $x; |
|||
my $part = 8 * ($x - $full); |
|||
say $i, "\t", '█' x $full, @subbar[$part]; |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre>"m" => 50.006107405837142e0 |
|||
"σ" => 4.0814435639885254e0 |
|||
33 ⎸ |
|||
34 ⎸ |
|||
35 ⎸ |
|||
36 ▏ |
|||
37 ▎ |
|||
38 ▊ |
|||
39 █▋ |
|||
40 ███⎸ |
|||
41 █████▊ |
|||
42 ██████████⎸ |
|||
43 ███████████████▋ |
|||
44 ███████████████████████▏ |
|||
45 ████████████████████████████████▌ |
|||
46 ███████████████████████████████████████████▍ |
|||
47 ██████████████████████████████████████████████████████▏ |
|||
48 ███████████████████████████████████████████████████████████████▏ |
|||
49 █████████████████████████████████████████████████████████████████████▋ |
|||
50 ███████████████████████████████████████████████████████████████████████▊ |
|||
51 █████████████████████████████████████████████████████████████████████▌ |
|||
52 ███████████████████████████████████████████████████████████████⎸ |
|||
53 ██████████████████████████████████████████████████████▎ |
|||
54 ███████████████████████████████████████████⎸ |
|||
55 ████████████████████████████████▌ |
|||
56 ███████████████████████▍ |
|||
57 ███████████████▉ |
|||
58 █████████▉ |
|||
59 █████▍ |
|||
60 ███▍ |
|||
61 █▋ |
|||
62 ▊ |
|||
63 ▍ |
|||
64 ▏ |
|||
65 ⎸ |
|||
66 ⎸ |
|||
67 ⎸</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
Line 2,375: | Line 2,311: | ||
(+ μ (* σ scale v1))]))))))) |
(+ μ (* σ scale v1))]))))))) |
||
</lang> |
</lang> |
||
=={{header|Raku}}== |
|||
(formerly Perl 6) |
|||
{{works with|Rakudo|2018.03}} |
|||
<lang perl6>sub normdist ($m, $σ) { |
|||
my $r = sqrt -2 * log rand; |
|||
my $Θ = τ * rand; |
|||
$r * cos($Θ) * $σ + $m; |
|||
} |
|||
sub MAIN ($size = 100000, $mean = 50, $stddev = 4) { |
|||
my @dataset = normdist($mean,$stddev) xx $size; |
|||
my $m = [+](@dataset) / $size; |
|||
say (:$m); |
|||
my $σ = sqrt [+](@dataset X** 2) / $size - $m**2; |
|||
say (:$σ); |
|||
(my %hash){.round}++ for @dataset; |
|||
my $scale = 180 * $stddev / $size; |
|||
constant @subbar = < ⎸ ▏ ▎ ▍ ▌ ▋ ▊ ▉ █ >; |
|||
for %hash.keys».Int.minmax(+*) -> $i { |
|||
my $x = (%hash{$i} // 0) * $scale; |
|||
my $full = floor $x; |
|||
my $part = 8 * ($x - $full); |
|||
say $i, "\t", '█' x $full, @subbar[$part]; |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre>"m" => 50.006107405837142e0 |
|||
"σ" => 4.0814435639885254e0 |
|||
33 ⎸ |
|||
34 ⎸ |
|||
35 ⎸ |
|||
36 ▏ |
|||
37 ▎ |
|||
38 ▊ |
|||
39 █▋ |
|||
40 ███⎸ |
|||
41 █████▊ |
|||
42 ██████████⎸ |
|||
43 ███████████████▋ |
|||
44 ███████████████████████▏ |
|||
45 ████████████████████████████████▌ |
|||
46 ███████████████████████████████████████████▍ |
|||
47 ██████████████████████████████████████████████████████▏ |
|||
48 ███████████████████████████████████████████████████████████████▏ |
|||
49 █████████████████████████████████████████████████████████████████████▋ |
|||
50 ███████████████████████████████████████████████████████████████████████▊ |
|||
51 █████████████████████████████████████████████████████████████████████▌ |
|||
52 ███████████████████████████████████████████████████████████████⎸ |
|||
53 ██████████████████████████████████████████████████████▎ |
|||
54 ███████████████████████████████████████████⎸ |
|||
55 ████████████████████████████████▌ |
|||
56 ███████████████████████▍ |
|||
57 ███████████████▉ |
|||
58 █████████▉ |
|||
59 █████▍ |
|||
60 ███▍ |
|||
61 █▋ |
|||
62 ▊ |
|||
63 ▍ |
|||
64 ▏ |
|||
65 ⎸ |
|||
66 ⎸ |
|||
67 ⎸</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
Line 2,938: | Line 2,941: | ||
3,30-3,40 |
3,30-3,40 |
||
3,40-3,50 </pre> |
3,40-3,50 </pre> |
||
=={{header|zkl}}== |
=={{header|zkl}}== |
||
{{trans|Go}} |
{{trans|Go}} |