Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Average-loop-length/Raku/average-loop-length.raku
Normal file
17
Task/Average-loop-length/Raku/average-loop-length.raku
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
constant MAX_N = 20;
|
||||
constant TRIALS = 100;
|
||||
|
||||
for 1 .. MAX_N -> $N {
|
||||
my $empiric = TRIALS R/ [+] find-loop(random-mapping $N).elems xx TRIALS;
|
||||
my $theoric = [+]
|
||||
map -> $k { $N ** ($k + 1) R/ [×] flat $k**2, $N - $k + 1 .. $N }, 1 .. $N;
|
||||
|
||||
FIRST say " N empiric theoric (error)";
|
||||
FIRST say "=== ========= ============ =========";
|
||||
|
||||
printf "%3d %9.4f %12.4f (%4.2f%%)\n",
|
||||
$N, $empiric, $theoric, 100 × abs($theoric - $empiric) / $theoric;
|
||||
}
|
||||
|
||||
sub random-mapping { hash .list Z=> .roll($_) given ^$^size }
|
||||
sub find-loop { 0, | %^mapping{*} ...^ { (%){$_}++ } }
|
||||
Loading…
Add table
Add a link
Reference in a new issue