Statistics/Normal distribution: Difference between revisions

Content added Content deleted
(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}}