diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-05-05 22:57:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-05 22:57:53 +0100 |
| commit | ca5d1e6e342b6a23b8d5afd0b8a9b8acdd6875ef (patch) | |
| tree | 89e07bb0a8b2c728c4fa5304d75ddfcdfa328eec | |
| parent | 4ee1f009188b8a25b1032e1465bd828bb2c10f4d (diff) | |
| parent | d40e69151613169aa47e5ced653ae32a387ae106 (diff) | |
| download | perlweeklychallenge-club-ca5d1e6e342b6a23b8d5afd0b8a9b8acdd6875ef.tar.gz perlweeklychallenge-club-ca5d1e6e342b6a23b8d5afd0b8a9b8acdd6875ef.tar.bz2 perlweeklychallenge-club-ca5d1e6e342b6a23b8d5afd0b8a9b8acdd6875ef.zip | |
Merge pull request #124 from drclaw1394/master
Ruben/drclaw Solutions for W6 P5 and P6
| -rwxr-xr-x | challenge-006/ruben-westerberg/perl5/ch-1.pl | 30 | ||||
| -rwxr-xr-x | challenge-006/ruben-westerberg/perl5/ch-2.pl | 5 | ||||
| -rwxr-xr-x | challenge-006/ruben-westerberg/perl6/ch-1.p6 | 11 | ||||
| -rwxr-xr-x | challenge-006/ruben-westerberg/perl6/ch-2.p6 | 27 |
4 files changed, 73 insertions, 0 deletions
diff --git a/challenge-006/ruben-westerberg/perl5/ch-1.pl b/challenge-006/ruben-westerberg/perl5/ch-1.pl new file mode 100755 index 0000000000..d8ae69a771 --- /dev/null +++ b/challenge-006/ruben-westerberg/perl5/ch-1.pl @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +# +my $string=join ',', @ARGV; + +my @a=split ',' , $string; +my %bag; +foreach (@a) { + $bag{$_}++; +} +my @k1= sort { $a <=> $b} keys %bag; +my @k2= @k1; push @k2, shift @k2; +my @p; +for (my $i=0; $i<=$#k1; $i++) { + if (abs($k2[$i]-$k1[$i]) > 1 ) { + push @p,$i; + push @p ,$i+1; + } +} +unshift @p, 0; +pop @p; +my @out; +for (my $i=0; $i<$#p; $i+=2) { + my $a=$k1[$p[$i]]; + my $b=$k1[$p[$i+1]]; + my $val= $a-$b == 0? $a: "$a-$b"; + push @out, $val; +} +print (join ",", @out); +print "\n"; + diff --git a/challenge-006/ruben-westerberg/perl5/ch-2.pl b/challenge-006/ruben-westerberg/perl5/ch-2.pl new file mode 100755 index 0000000000..73928169ae --- /dev/null +++ b/challenge-006/ruben-westerberg/perl5/ch-2.pl @@ -0,0 +1,5 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use bigrat qw<bexp bpi>; +print bexp(bpi(50)*sqrt(163),50); diff --git a/challenge-006/ruben-westerberg/perl6/ch-1.p6 b/challenge-006/ruben-westerberg/perl6/ch-1.p6 new file mode 100755 index 0000000000..9438726911 --- /dev/null +++ b/challenge-006/ruben-westerberg/perl6/ch-1.p6 @@ -0,0 +1,11 @@ +#!/usr/bin/env perl6 +my $string= @*ARGS ?? @*ARGS.join(",")!! prompt "Enter numbers: "; +my $a=$string.split(",",:skip-empty)>>.trim.grep({!/^$/})>>.Int.Bag; +my @r1=$a.keys.sort; +my @diff=@r1.rotate >>-<< @r1; +my @p=(0,|map {|($^k,$k+1) if abs($^v) > 1}, @diff.kv); + +@p.pop; +say join ",", map {@r1[$^a]==@r1[$^b]??@r1[$^a]!!"@r1[$^a]-@r1[$^b]"}, @p; + + diff --git a/challenge-006/ruben-westerberg/perl6/ch-2.p6 b/challenge-006/ruben-westerberg/perl6/ch-2.p6 new file mode 100755 index 0000000000..a82f43c516 --- /dev/null +++ b/challenge-006/ruben-westerberg/perl6/ch-2.p6 @@ -0,0 +1,27 @@ +#!/usr/bin/env perl6 + +my $bigPi=FatRat.new(31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679,10**100); + +sub factorial($n) { + constant @f= (1.FatRat, |[\*] 1.FatRat..*); + @f[$n]; +} +sub taylor-e ($atVal) { + + my $sum=0.FatRat; + my $x=$atVal.FatRat; + for 0..200 { + $sum+=($x**$_)/factorial($_); + say "Iteration $_: " ~ $sum.Str.substr(0,50); + } + $sum; +} + +sub newton-sqrt($val, $target, $repeat){ + my $guess=$val.FatRat; + for ^$repeat { + $guess:=($guess - ($guess**2 -$target)/(2*$guess)); + } + $guess; +} +say taylor-e($bigPi*newton-sqrt(10,163,6)).Str.substr(0,50); |
