From 93f93db1b10b67f24fed13405eb7c69c4f98011a Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Tue, 22 Sep 2020 10:30:09 +0200 Subject: faster! faster!! --- challenge-079/markus-holzer/raku/bench.raku | 16 ++++++++-------- challenge-079/markus-holzer/raku/ch-1.raku | 10 +++++----- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/challenge-079/markus-holzer/raku/bench.raku b/challenge-079/markus-holzer/raku/bench.raku index a37c8befaa..b137f7e90d 100644 --- a/challenge-079/markus-holzer/raku/bench.raku +++ b/challenge-079/markus-holzer/raku/bench.raku @@ -8,8 +8,8 @@ unit sub MAIN(Int $N = 42); #say (1..$N).map( &f ).sum; #say (1..$N).map( &k ).sum; #say ($N...1).map( &l ).sum; -#say a($N); -#say b($N); +say a($N); +say b($N); #exit; sub i { +$^n.base(2).indices(1) } @@ -63,13 +63,13 @@ sub b(Int $N) while $n { my $a = $t +> 1; - my $s = $N +& ( $t - 1); + my $s = $N +& ( $t - 1 ); my $d = ( $N div $t ); - $r += $d * $a; - $r += $s - $a + 1 if $s > $a - 1; - $t = $t +< 1; - $n = $n +> 1; + $r += $d * $a; + $r += 1 + $s - $a if $s > $a - 1; + $t +<= 1; + $n +>= 1; } return $r @@ -83,4 +83,4 @@ Bench.new.timethese( 1000, { # div2-recursive => { ($N...1).map( &f ).sum }, # kernighan => { ($N...1).map( &k ).sum }, # lookup-recursive => { ($N...1).map( &l ).sum } -})git \ No newline at end of file +}) \ No newline at end of file diff --git a/challenge-079/markus-holzer/raku/ch-1.raku b/challenge-079/markus-holzer/raku/ch-1.raku index 9ccf316272..bf62b2bf06 100644 --- a/challenge-079/markus-holzer/raku/ch-1.raku +++ b/challenge-079/markus-holzer/raku/ch-1.raku @@ -6,13 +6,13 @@ my Int $n = $N; while $n { my $a = $t +> 1; - my $s = $N +& ( $t - 1); + my $s = $N +& ( $t - 1 ); my $d = ( $N div $t ); - $r += $d * $a; - $r += $s - $a + 1 if $s > $a - 1; - $t = $t +< 1; - $n = $n +> 1; + $r += $d * $a; + $r += 1 + $s - $a if $s > $a - 1; + $t +<= 1; + $n +>= 1; } say $r % 1000000007; \ No newline at end of file -- cgit