diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-01-23 00:37:59 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-23 00:37:59 +0000 |
| commit | 0807451ebcc3b20f41cd5de27b7b0915ad6d9ee5 (patch) | |
| tree | 3442dda8db339c91795a39c809c868dd408ea65a | |
| parent | 731040f9e21fb0a2b40040ae6c135bccdcdf2d53 (diff) | |
| parent | 4307b5ec0d8357fa8af00536c2775f9e6f966422 (diff) | |
| download | perlweeklychallenge-club-0807451ebcc3b20f41cd5de27b7b0915ad6d9ee5.tar.gz perlweeklychallenge-club-0807451ebcc3b20f41cd5de27b7b0915ad6d9ee5.tar.bz2 perlweeklychallenge-club-0807451ebcc3b20f41cd5de27b7b0915ad6d9ee5.zip | |
Merge pull request #7438 from steve-g-lynn/branch-for-challenge-200
pwc 200
| -rw-r--r-- | challenge-200/steve-g-lynn/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-200/steve-g-lynn/perl/ch-1.pl | 31 | ||||
| -rwxr-xr-x | challenge-200/steve-g-lynn/perl/ch-2.pl | 50 | ||||
| -rwxr-xr-x | challenge-200/steve-g-lynn/raku/ch-1.sh | 5 | ||||
| -rwxr-xr-x | challenge-200/steve-g-lynn/raku/ch-2.p6 | 46 |
5 files changed, 133 insertions, 0 deletions
diff --git a/challenge-200/steve-g-lynn/blog.txt b/challenge-200/steve-g-lynn/blog.txt new file mode 100644 index 0000000000..c65d64b8a8 --- /dev/null +++ b/challenge-200/steve-g-lynn/blog.txt @@ -0,0 +1 @@ +https://thiujiac.blogspot.com/2023/01/pwc-200.html diff --git a/challenge-200/steve-g-lynn/perl/ch-1.pl b/challenge-200/steve-g-lynn/perl/ch-1.pl new file mode 100755 index 0000000000..13571ea83d --- /dev/null +++ b/challenge-200/steve-g-lynn/perl/ch-1.pl @@ -0,0 +1,31 @@ +#!/usr/bin/env -S perl -wl + +use strict; +use Data::Dumper qw(Dumper); +use List::Util qw(sum); +use Algorithm::Combinatorics qw(combinations); + +print Dumper(arithmetic_slices(1,2,3,4,6,8,10)); +#[1,2,3],[1,2,3,4],[2,3,4],[4,6,8],[4,6,8,10],[6,8,10] +print Dumper(arithmetic_slices(2)); # [] + + +sub arithmetic_slices { + my (@arry) = @_; + + (scalar(@_) <= 2) && (return []); + + return ( + grep {my @n=$_->@*; + sum (map {($n[$_+1] - $n[$_]) == ($n[$_+2] - $n[$_+1]) } + (0 .. @n-3) ) == @n-2; + } + map {[@arry[$_->[0] .. $_->[1]]]} + grep {$_->[1] - $_->[0] > 1} + combinations [0 .. @arry-1], 2 ); +} + + + + + diff --git a/challenge-200/steve-g-lynn/perl/ch-2.pl b/challenge-200/steve-g-lynn/perl/ch-2.pl new file mode 100755 index 0000000000..3a1811725d --- /dev/null +++ b/challenge-200/steve-g-lynn/perl/ch-2.pl @@ -0,0 +1,50 @@ +#!/usr/bin/env -S perl -w + +use strict; + +use constant { + 'hl' => ('-' x 7), + 'v_' => ('|' . (' ' x 6) ), + '_v' => ((' ' x 6) . '|'), + 'v_v' => ('|' . (' ' x 5) . '|') +}; + +my @encoded = ( + [hl, v_v, v_v, v_v, v_v, v_v, hl], #0 + [_v,_v,_v,_v,_v,_v,_v], #1 + [hl, _v,_v,hl,v_,v_,hl], #2 + [hl, _v,_v,hl,_v,_v,hl], #3 + [v_v,v_v,v_v,hl,_v,_v,_v], #4 + [hl,v_,v_,hl,_v,_v,hl], #5 + [hl,v_,v_,hl,v_v,v_v,hl], #6 + [hl,_v,_v,_v,_v,_v,_v], #7 + [hl,v_v,v_v,hl,v_v,v_v,hl], #8 + [hl,v_v,v_v,hl,_v,_v,_v], #9 +); +# $encoded[x] is the representation of digit x + +&draw_integer(200); + +# ------- ------- ------- +# | | | | | +# | | | | | +# ------- | | | | +# | | | | | +# | | | | | +# ------- ------- ------- + + +sub draw_integer { + my ($n) = @_; + my @n=split //, $n; + + for my $i (0 .. 6) { + for my $j (@n) { + print $encoded[$j]->[$i]," "; + } + print "\n"; + } + return 1; +} + + diff --git a/challenge-200/steve-g-lynn/raku/ch-1.sh b/challenge-200/steve-g-lynn/raku/ch-1.sh new file mode 100755 index 0000000000..c7f448f8ea --- /dev/null +++ b/challenge-200/steve-g-lynn/raku/ch-1.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +raku -e '(0 .. @*ARGS-1).combinations(2).grep({@_[1]-@_[0]>1}).map({@*ARGS[@_[0]..@_[1]]}).grep( {my @n=@_; (0 .. @n-3).map( {(@n[$_+1]-@n[$_]) == (@n[$_+2]-@n[$_+1])} ).sum==(@n.elems-2) } ).say' $@ + + diff --git a/challenge-200/steve-g-lynn/raku/ch-2.p6 b/challenge-200/steve-g-lynn/raku/ch-2.p6 new file mode 100755 index 0000000000..48fbea51c2 --- /dev/null +++ b/challenge-200/steve-g-lynn/raku/ch-2.p6 @@ -0,0 +1,46 @@ +#!/usr/bin/env perl6 + + +constant hl = ('-' x 7); +constant v_ = ('|' ~ (' ' x 6) ); +constant _v = ((' ' x 6) ~ '|'); +constant v_v = ('|' ~ (' ' x 5) ~ '|'); + +my @encoded = ( + [hl, v_v, v_v, v_v, v_v, v_v, hl], #0 + [_v,_v,_v,_v,_v,_v,_v], #1 + [hl, _v,_v,hl,v_,v_,hl], #2 + [hl, _v,_v,hl,_v,_v,hl], #3 + [v_v,v_v,v_v,hl,_v,_v,_v], #4 + [hl,v_,v_,hl,_v,_v,hl], #5 + [hl,v_,v_,hl,v_v,v_v,hl], #6 + [hl,_v,_v,_v,_v,_v,_v], #7 + [hl,v_v,v_v,hl,v_v,v_v,hl], #8 + [hl,v_v,v_v,hl,_v,_v,_v], #9 +); +# $encoded[x] is the representation of digit x + +&draw_integer(200); + +# ------- ------- ------- +# | | | | | +# | | | | | +# ------- | | | | +# | | | | | +# | | | | | +# ------- ------- ------- + + +sub draw_integer ($n) { + my @n=$n.comb; + + for (0 .. 6) -> $i { + for (@n) -> $j { + print @encoded[$j].[$i]," "; + } + print "\n"; + } + return 1; +} + + |
