RosettaCodeData/Task/Probabilistic-choice/Perl-6/probabilistic-choice.pl6

20 lines
570 B
Raku
Raw Permalink Normal View History

2015-11-18 06:14:39 +00:00
constant TRIALS = 1e6;
2013-04-10 23:57:08 -07:00
2015-11-18 06:14:39 +00:00
constant @event = <aleph beth gimel daleth he waw zayin heth>;
2013-04-10 23:57:08 -07:00
2015-11-18 06:14:39 +00:00
constant @P = flat (1 X/ 5 .. 11), 1759/27720;
constant @cP = [\+] @P;
2015-02-20 00:35:01 -05:00
2019-09-12 10:33:56 -07:00
my atomicint @results[+@event];
(^TRIALS).race.map: { @results[ @cP.first: { $_ > once rand }, :k ]++; }
2013-04-10 23:57:08 -07:00
2015-02-20 00:35:01 -05:00
say 'Event Occurred Expected Difference';
for ^@results {
2015-11-18 06:14:39 +00:00
my ($occurred, $expected) = @results[$_], @P[$_] * TRIALS;
2015-02-20 00:35:01 -05:00
printf "%-9s%8.0f%9.1f%12.1f\n",
2015-11-18 06:14:39 +00:00
@event[$_],
$occurred,
$expected,
abs $occurred - $expected;
2013-04-10 23:57:08 -07:00
}