diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-09-16 19:54:58 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-09-16 19:54:58 +0100 |
| commit | ca00b4a1598ac659b6eaf0861c715c57df14366d (patch) | |
| tree | 4ae3c6838f9d56d5fc7f0cc965dc392094021f27 | |
| parent | 1e134265b6df56d0d7e27c22d479ff6f8f1a2ebe (diff) | |
| download | perlweeklychallenge-club-ca00b4a1598ac659b6eaf0861c715c57df14366d.tar.gz perlweeklychallenge-club-ca00b4a1598ac659b6eaf0861c715c57df14366d.tar.bz2 perlweeklychallenge-club-ca00b4a1598ac659b6eaf0861c715c57df14366d.zip | |
- Added solutions by Laurent Rosenfeld.
| -rw-r--r-- | challenge-026/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-026/laurent-rosenfeld/perl5/ch-1.pl | 10 | ||||
| -rw-r--r-- | challenge-026/laurent-rosenfeld/perl5/ch-2.pl | 32 | ||||
| -rw-r--r-- | challenge-026/laurent-rosenfeld/perl6/ch-1.p6 | 7 | ||||
| -rw-r--r-- | challenge-026/laurent-rosenfeld/perl6/ch-2.p6 | 23 | ||||
| -rw-r--r-- | stats/pwc-current.json | 117 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 58 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 384 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 950 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 92 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 276 |
14 files changed, 1095 insertions, 999 deletions
diff --git a/challenge-026/laurent-rosenfeld/blog.txt b/challenge-026/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..96832418b2 --- /dev/null +++ b/challenge-026/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2019/09/perl-weekly-challenge-26-common-letters-and-mean-angles.html diff --git a/challenge-026/laurent-rosenfeld/perl5/ch-1.pl b/challenge-026/laurent-rosenfeld/perl5/ch-1.pl new file mode 100644 index 0000000000..07eb5a135e --- /dev/null +++ b/challenge-026/laurent-rosenfeld/perl5/ch-1.pl @@ -0,0 +1,10 @@ +#!/usr/bin/perl +use strict; +use warnings; +use feature qw/say/; + +@ARGV == 2 or die "This script needs two strings are parameters"; +my ($str1, $str2) = @ARGV; +my %letters = map {$_ => 1} grep /[A-Za-z]/, split "", $str1; +my $count = scalar grep { exists $letters{$_}} split "", $str2; +say "$str2 has $count letters from $str1"; diff --git a/challenge-026/laurent-rosenfeld/perl5/ch-2.pl b/challenge-026/laurent-rosenfeld/perl5/ch-2.pl new file mode 100644 index 0000000000..5f5e69e1b2 --- /dev/null +++ b/challenge-026/laurent-rosenfeld/perl5/ch-2.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl +use strict; +use warnings; +use feature qw/say/; +use constant PI => atan2(1, 0) * 2; +use Test::More; +plan tests => 9; + + +sub deg2rad { return $_[0] * PI /180; } +sub rad2deg { return $_[0] * 180 / PI } + +sub mean { + my @angles = map { deg2rad $_ } @_; + my $count = @angles; + my ($sum_sin, $sum_cos) = (0, 0); + for my $angle (@angles) { + $sum_sin += sin $angle; + $sum_cos += cos $angle; + } + return rad2deg atan2 $sum_sin/$count, $sum_cos/$count; +} + +is deg2rad(0), 0, "To rad: 0 degree"; +is deg2rad(90), PI/2, "To rad: 90 degrees"; +is deg2rad(180), PI, "To rad: 180 degrees"; +is rad2deg(PI/2), 90, "To degrees: 90 degrees"; +is rad2deg(PI), 180, "To degrees: 180 degrees"; +is deg2rad(rad2deg(PI)), PI, "Roundtrip rad -> deg -> rad"; +is rad2deg(deg2rad(90)), 90, "Roundtrip deg -> rad -> deg"; +is mean(10, 20, 30), 20, "Mean of 10, 20, 30 degrees"; +is mean(355, 5, 15), 5, "Mean of 355, 5, 15 degrees"; diff --git a/challenge-026/laurent-rosenfeld/perl6/ch-1.p6 b/challenge-026/laurent-rosenfeld/perl6/ch-1.p6 new file mode 100644 index 0000000000..051d9e5799 --- /dev/null +++ b/challenge-026/laurent-rosenfeld/perl6/ch-1.p6 @@ -0,0 +1,7 @@ +use v6; + +sub MAIN (Str $str1, Str $str2) { + my $letters = $str1.comb.grep( /<[A..Za..z]>/ ).Set; + my $count = $str2.comb.grep( { $_ (elem) $letters} ).elems; + say "$str2 has $count letters from $str1"; +} diff --git a/challenge-026/laurent-rosenfeld/perl6/ch-2.p6 b/challenge-026/laurent-rosenfeld/perl6/ch-2.p6 new file mode 100644 index 0000000000..b5fcf755c4 --- /dev/null +++ b/challenge-026/laurent-rosenfeld/perl6/ch-2.p6 @@ -0,0 +1,23 @@ +use v6; +use Test; + +sub deg2rad (Numeric $deg) { return $deg * pi /180; } +sub rad2deg (Numeric $rad) { return $rad * 180 / pi } + +sub mean (*@degrees) { + my @radians = map { deg2rad $_ }, @degrees; + my $count = @radians.elems; + my $avg-sin = ([+] @radians.map( {sin $_})) / $count; + my $avg-cos = ([+] @radians.map( {cos $_})) / $count; + return rad2deg atan2 $avg-sin, $avg-cos; +} +plan 9; +is deg2rad(0), 0, "To rad: 0 degree"; +is deg2rad(90), pi/2, "To rad: 90 degrees"; +is deg2rad(180), pi, "To rad: 180 degrees"; +is rad2deg(pi/2), 90, "To degrees: 90 degrees"; +is rad2deg(pi), 180, "To degrees: 180 degrees"; +is deg2rad(rad2deg(pi)), pi, "Roundtrip rad -> deg -> rad"; +is rad2deg(deg2rad(90)), 90, "Roundtrip deg -> rad -> deg"; +is-approx mean(10, 20, 30), 20, "Mean of 10, 20, 30 degrees"; +is-approx mean(355, 5, 15), 5, "Mean of 355, 5, 15 degrees"; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 08ee8927e5..87376f0bef 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -4,34 +4,46 @@ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, "series" : [ { - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 026", "data" : [ { - "drilldown" : "Duane Powell", "name" : "Duane Powell", - "y" : 2 + "y" : 2, + "drilldown" : "Duane Powell" }, { - "y" : 1, + "name" : "E. Choroba", "drilldown" : "E. Choroba", - "name" : "E. Choroba" + "y" : 1 + }, + { + "y" : 5, + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "name" : "Roger Bell West", - "drilldown" : "Roger Bell West", - "y" : 4 + "y" : 4, + "drilldown" : "Roger Bell West" }, { - "y" : 2, "name" : "Simon Proctor", - "drilldown" : "Simon Proctor" + "drilldown" : "Simon Proctor", + "y" : 2 }, { - "drilldown" : "Steven Wilson", "name" : "Steven Wilson", + "drilldown" : "Steven Wilson", "y" : 2 }, { @@ -39,33 +51,70 @@ "drilldown" : "Yet Ebreo", "y" : 2 } - ] + ], + "name" : "Perl Weekly Challenge - 026", + "colorByPoint" : 1 } ], + "subtitle" : { + "text" : "[Champions: 7] Last updated at 2019-09-16 18:54:43 GMT" + }, + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "xAxis" : { "type" : "category" }, + "title" : { + "text" : "Perl Weekly Challenge - 026" + }, "drilldown" : { "series" : [ { + "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Duane Powell", "id" : "Duane Powell" }, { "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ "Perl 5", 1 ] + ] + }, + { + "data" : [ + [ + "Perl 5", + 2 + ], + [ + "Perl 6", + 2 + ], + [ + "Blog", + 1 + ] ], - "id" : "E. Choroba" + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "id" : "Roger Bell West", @@ -82,61 +131,35 @@ "name" : "Roger Bell West" }, { + "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Perl 6", 2 ] - ], - "name" : "Simon Proctor", - "id" : "Simon Proctor" + ] }, { - "id" : "Steven Wilson", "name" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Steven Wilson" }, { - "id" : "Yet Ebreo", "name" : "Yet Ebreo", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Yet Ebreo" } ] - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : 0 - }, - "subtitle" : { - "text" : "[Champions: 6] Last updated at 2019-09-16 18:50:01 GMT" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "title" : { - "text" : "Perl Weekly Challenge - 026" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index f9ea984330..a9bccc827f 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "subtitle" : { - "text" : "Last updated at 2019-09-16 18:50:10 GMT" + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, + "subtitle" : { + "text" : "Last updated at 2019-09-16 18:54:50 GMT" + }, "xAxis" : { - "type" : "category", "labels" : { "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" } - } + }, + "type" : "category" }, "yAxis" : { + "min" : 0, "title" : { "text" : null - }, - "min" : 0 + } }, "chart" : { "type" : "column" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" + "legend" : { + "enabled" : "false" }, "series" : [ { - "name" : "Contributions", - "dataLabels" : { - "format" : "{point.y:.0f}", - "rotation" : -90, - "color" : "#FFFFFF", - "align" : "right", - "enabled" : "true", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "y" : 10 - }, "data" : [ [ "Blog", - 274 + 275 ], [ "Perl 5", - 1037 + 1039 ], [ "Perl 6", - 625 + 627 ] - ] + ], + "dataLabels" : { + "enabled" : "true", + "format" : "{point.y:.0f}", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "rotation" : -90, + "y" : 10, + "color" : "#FFFFFF", + "align" : "right" + }, + "name" : "Contributions" } - ], - "legend" : { - "enabled" : "false" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 7aceb9684a..3ea5c84269 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,160 +1,21 @@ { + "tooltip" : { + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true", + "headerFormat" : "<span style=\"font-size:11px\"></span>" + }, "title" : { "text" : "Perl Weekly Challenge Language" }, "plotOptions" : { "series" : { "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" + "format" : "{point.y}", + "enabled" : 1 }, "borderWidth" : 0 } }, - "legend" : { - "enabled" : "false" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge Languages", - "data" : [ - { - "y" : 132, - "name" : "#001", - "drilldown" : "001" - }, - { - "drilldown" : "002", - "name" : "#002", - "y" : 104 - }, - { - "drilldown" : "003", - "name" : "#003", - "y" : 66 - }, - { - "name" : "#004", - "y" : 86, - "drilldown" : "004" - }, - { - "y" : 66, - "name" : "#005", - "drilldown" : "005" - }, - { - "drilldown" : "006", - "y" : 47, - "name" : "#006" - }, - { - "name" : "#007", - "y" : 55, - "drilldown" : "007" - }, - { - "drilldown" : "008", - "y" : 69, - "name" : "#008" - }, - { - "name" : "#009", - "y" : 68, - "drilldown" : "009" - }, - { - "y" : 60, - "name" : "#010", - "drilldown" : "010" - }, - { - "name" : "#011", - "y" : 78, - "drilldown" : "011" - }, - { - "y" : 83, - "name" : "#012", - "drilldown" : "012" - }, - { - "drilldown" : "013", - "y" : 76, - "name" : "#013" - }, - { - "drilldown" : "014", - "name" : "#014", - "y" : 95 - }, - { - "y" : 93, - "name" : "#015", - "drilldown" : "015" - }, - { - "y" : 66, - "name" : "#016", - "drilldown" : "016" - }, - { - "y" : 79, - "name" : "#017", - "drilldown" : "017" - }, - { - "name" : "#018", - "y" : 76, - "drilldown" : "018" - }, - { - "drilldown" : "019", - "name" : "#019", - "y" : 95 - }, - { - "name" : "#020", - "y" : 95, - "drilldown" : "020" - }, - { - "name" : "#021", - "y" : 67, - "drilldown" : "021" - }, - { - "drilldown" : "022", - "y" : 63, - "name" : "#022" - }, - { - "drilldown" : "023", - "name" : "#023", - "y" : 91 - }, - { - "name" : "#024", - "y" : 68, - "drilldown" : "024" - }, - { - "y" : 45, - "name" : "#025", - "drilldown" : "025" - }, - { - "drilldown" : "026", - "y" : 13, - "name" : "#026" - } - ], - "colorByPoint" : "true" - } - ], - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-09-16 18:50:10 GMT" - }, "drilldown" : { "series" : [ { @@ -230,6 +91,7 @@ "name" : "004" }, { + "name" : "005", "data" : [ [ "Perl 5", @@ -244,11 +106,11 @@ 11 ] ], - "id" : "005", - "name" : "005" + "id" : "005" }, { "name" : "006", + "id" : "006", "data" : [ [ "Perl 5", @@ -262,11 +124,9 @@ "Blog", 6 ] - ], - "id" : "006" + ] }, { - "name" : "007", "data" : [ [ "Perl 5", @@ -281,7 +141,8 @@ 9 ] ], - "id" : "007" + "id" : "007", + "name" : "007" }, { "name" : "008", @@ -302,6 +163,7 @@ ] }, { + "name" : "009", "data" : [ [ "Perl 5", @@ -316,11 +178,10 @@ 13 ] ], - "id" : "009", - "name" : "009" + "id" : "009" }, { - "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -335,11 +196,10 @@ 11 ] ], - "id" : "010" + "name" : "010" }, { "name" : "011", - "id" : "011", "data" : [ [ "Perl 5", @@ -353,9 +213,11 @@ "Blog", 9 ] - ] + ], + "id" : "011" }, { + "name" : "012", "id" : "012", "data" : [ [ @@ -370,10 +232,10 @@ "Blog", 11 ] - ], - "name" : "012" + ] }, { + "id" : "013", "data" : [ [ "Perl 5", @@ -388,10 +250,10 @@ 13 ] ], - "id" : "013", "name" : "013" }, { + "name" : "014", "id" : "014", "data" : [ [ @@ -406,10 +268,10 @@ "Blog", 14 ] - ], - "name" : "014" + ] }, { + "id" : "015", "data" : [ [ "Perl 5", @@ -424,11 +286,9 @@ 15 ] ], - "id" : "015", "name" : "015" }, { - "name" : "016", "id" : "016", "data" : [ [ @@ -443,10 +303,10 @@ "Blog", 12 ] - ] + ], + "name" : "016" }, { - "name" : "017", "id" : "017", "data" : [ [ @@ -461,7 +321,8 @@ "Blog", 12 ] - ] + ], + "name" : "017" }, { "data" : [ @@ -482,6 +343,8 @@ "name" : "018" }, { + "name" : "019", + "id" : "019", "data" : [ [ "Perl 5", @@ -495,13 +358,10 @@ "Blog", 13 ] - ], - "id" : "019", - "name" : "019" + ] }, { "name" : "020", - "id" : "020", "data" : [ [ "Perl 5", @@ -515,9 +375,11 @@ "Blog", 13 ] - ] + ], + "id" : "020" }, { + "id" : "021", "data" : [ [ "Perl 5", @@ -532,11 +394,9 @@ 10 ] ], - "id" : "021", "name" : "021" }, { - "name" : "022", "id" : "022", "data" : [ [ @@ -551,7 +411,8 @@ "Blog", 10 ] - ] + ], + "name" : "022" }, { "id" : "023", @@ -572,7 +433,6 @@ "name" : "023" }, { - "name" : "024", "id" : "024", "data" : [ [ @@ -587,7 +447,8 @@ "Blog", 11 ] - ] + ], + "name" : "024" }, { "data" : [ @@ -608,33 +469,25 @@ "name" : "025" }, { + "name" : "026", + "id" : "026", "data" : [ [ "Perl 5", - 9 + 11 ], [ "Perl 6", - 4 + 6 ], [ "Blog", - 0 + 1 ] - ], - "id" : "026", - "name" : "026" + ] } ] }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : "true" - }, "yAxis" : { "title" : { "text" : "Total Solutions" @@ -642,5 +495,152 @@ }, "xAxis" : { "type" : "category" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge Languages", + "colorByPoint" : "true", + "data" : [ + { + "name" : "#001", + "drilldown" : "001", + "y" : 132 + }, + { + "name" : "#002", + "drilldown" : "002", + "y" : 104 + }, + { + "name" : "#003", + "drilldown" : "003", + "y" : 66 + }, + { + "drilldown" : "004", + "y" : 86, + "name" : "#004" + }, + { + "y" : 66, + "drilldown" : "005", + "name" : "#005" + }, + { + "y" : 47, + "drilldown" : "006", + "name" : "#006" + }, + { + "name" : "#007", + "y" : 55, + "drilldown" : "007" + }, + { + "y" : 69, + "drilldown" : "008", + "name" : "#008" + }, + { + "drilldown" : "009", + "y" : 68, + "name" : "#009" + }, + { + "drilldown" : "010", + "y" : 60, + "name" : "#010" + }, + { + "drilldown" : "011", + "y" : 78, + "name" : "#011" + }, + { + "y" : 83, + "drilldown" : "012", + "name" : "#012" + }, + { + "drilldown" : "013", + "y" : 76, + "name" : "#013" + }, + { + "name" : "#014", + "drilldown" : "014", + "y" : 95 + }, + { + "y" : 93, + "drilldown" : "015", + "name" : "#015" + }, + { + "name" : "#016", + "y" : 66, + "drilldown" : "016" + }, + { + "y" : 79, + "drilldown" : "017", + "name" : "#017" + }, + { + "y" : 76, + "drilldown" : "018", + "name" : "#018" + }, + { + "y" : 95, + "drilldown" : "019", + "name" : "#019" + }, + { + "drilldown" : "020", + "y" : 95, + "name" : "#020" + }, + { + "name" : "#021", + "y" : 67, + "drilldown" : "021" + }, + { + "name" : "#022", + "y" : 63, + "drilldown" : "022" + }, + { + "y" : 91, + "drilldown" : "023", + "name" : "#023" + }, + { + "drilldown" : "024", + "y" : 68, + "name" : "#024" + }, + { + "y" : 45, + "drilldown" : "025", + "name" : "#025" + }, + { + "y" : 18, + "drilldown" : "026", + "name" : "#026" + } + ] + } + ], + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-09-16 18:54:50 GMT" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 137f478945..e801d53395 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,370 +1,93 @@ { - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>" - }, - "series" : [ - { - "data" : [ - { - "drilldown" : "Laurent Rosenfeld", - "y" : 304, - "name" : "#1: Laurent Rosenfeld" - }, - { - "name" : "#2: Joelle Maslak", - "drilldown" : "Joelle Maslak", - "y" : 266 - }, - { - "name" : "#3: Jaldhar H. Vyas", - "y" : 214, - "drilldown" : "Jaldhar H. Vyas" - }, - { - "y" : 188, - "drilldown" : "Ruben Westerberg", - "name" : "#4: Ruben Westerberg" - }, - { - "drilldown" : "Adam Russell", - "y" : 164, - "name" : "#5: Adam Russell" - }, - { - "y" : 160, - "drilldown" : "Athanasius", - "name" : "#6: Athanasius" - }, - { - "name" : "#7: Arne Sommer", - "drilldown" : "Arne Sommer", - "y" : 156 - }, - { - "y" : 132, - "drilldown" : "Kian-Meng Ang", - "name" : "#8: Kian-Meng Ang" - }, - { - "y" : 126, - "drilldown" : "E. Choroba", - "name" : "#9: E. Choroba" - }, - { - "drilldown" : "Simon Proctor", - "y" : 110, - "name" : "#10: Simon Proctor" - }, - { - "drilldown" : "Andrezgz", - "y" : 96, - "name" : "#11: Andrezgz" - }, - { - "name" : "#12: Francis Whittle", |
