aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Westerberg <drclaw@mac.com>2019-05-06 07:15:29 +1000
committerRuben Westerberg <drclaw@mac.com>2019-05-06 07:15:29 +1000
commitd40e69151613169aa47e5ced653ae32a387ae106 (patch)
treee44a19b6e75983efc304ad1a8471c997e2ec963e
parent098d668c1318b7616d4219a2fcdbf20197f9f316 (diff)
downloadperlweeklychallenge-club-d40e69151613169aa47e5ced653ae32a387ae106.tar.gz
perlweeklychallenge-club-d40e69151613169aa47e5ced653ae32a387ae106.tar.bz2
perlweeklychallenge-club-d40e69151613169aa47e5ced653ae32a387ae106.zip
Solutions to w6 ch2
W6Ch2 solutions Also fixed a bug in 4W
-rwxr-xr-xchallenge-006/ruben-westerberg/perl5/ch-2.pl5
-rwxr-xr-xchallenge-006/ruben-westerberg/perl6/ch-2.p627
2 files changed, 32 insertions, 0 deletions
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-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);