diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-27 00:16:49 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-27 00:16:49 +0100 |
| commit | 4e2fa309014610ee3f8fc4aa6329326722570081 (patch) | |
| tree | b598aeb713cb9719a7898583e581c46a0545c4ef | |
| parent | 251b25847067b22e8220c033d8faf05e2d5059ef (diff) | |
| download | perlweeklychallenge-club-4e2fa309014610ee3f8fc4aa6329326722570081.tar.gz perlweeklychallenge-club-4e2fa309014610ee3f8fc4aa6329326722570081.tar.bz2 perlweeklychallenge-club-4e2fa309014610ee3f8fc4aa6329326722570081.zip | |
- Added Perl/Raku solutions to task 2 of week 136.
| -rw-r--r-- | challenge-136/mohammad-anwar/perl/ch-2.pl | 62 | ||||
| -rw-r--r-- | challenge-136/mohammad-anwar/raku/ch-2.raku | 56 | ||||
| -rw-r--r-- | stats/pwc-current.json | 113 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 68 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 904 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 368 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 86 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 50 |
16 files changed, 1122 insertions, 985 deletions
diff --git a/challenge-136/mohammad-anwar/perl/ch-2.pl b/challenge-136/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..1a788c4e95 --- /dev/null +++ b/challenge-136/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl + +=head1 + +Week 136: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-136 + +Task #2: Fibonacci Sequence + + You are given a positive number $n. + + Write a script to find how many different sequences you can create using Fibonacci numbers where the sum of unique numbers in each sequence are the same as the given number. + +=cut + +use strict; +use warnings; +use Test::More; +use Algorithm::Combinatorics qw(combinations); + +# +# +# DISCLAIMER: This is nearly same as Task #1 of Week 77. + +is (fibonacci_sequence(16), 4, 'Example 1'); +is (fibonacci_sequence( 9), 2, 'Example 2'); +is (fibonacci_sequence(15), 2, 'Example 3'); + +done_testing; + +# +# +# METHODS + +sub fibonacci_sequence { + my ($sum) = @_; + + my $fibonacci = fibonacci_series_upto($sum); + my $fibonacci_sum = []; + foreach my $i (1 .. $sum) { + last if ($i > @$fibonacci); + foreach my $comb (combinations($fibonacci, $i)) { + my $_sum = 0; + $_sum += $_ for @$comb; + push @$fibonacci_sum, $comb if ($_sum == $sum); + } + } + + return scalar @$fibonacci_sum; +} + +sub fibonacci_series_upto { + my ($num) = @_; + + my @fibonacci = (1, 2); + while ($fibonacci[-1] + $fibonacci[-2] <= $num) { + push @fibonacci, ($fibonacci[-1] + $fibonacci[-2]); + } + + return \@fibonacci; +} diff --git a/challenge-136/mohammad-anwar/raku/ch-2.raku b/challenge-136/mohammad-anwar/raku/ch-2.raku new file mode 100644 index 0000000000..6dffad876b --- /dev/null +++ b/challenge-136/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,56 @@ +#!/usr/bin/env raku + +=begin pod + +Week 136: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-136 + +Task #2: Fibonacci Sequence + + You are given a positive number $n. + + Write a script to find how many different sequences you can create using Fibonacci numbers where the sum of unique numbers in each sequence are the same as the given number. + +=end pod + +use Test; + +# +# +# DISCLAIMER: This is nearly same as Task #1 of Week 77. + +is fibonacci-sequence(16), 4, 'Example 1'; +is fibonacci-sequence( 9), 2, 'Example 2';; +is fibonacci-sequence(15), 2, 'Example 3'; + +done-testing; + +# +# +# METHODS + +sub fibonacci-sequence(Int $sum where $sum > 0) { + + my @fibonacci = fibonacci-series-upto($sum); + my @fibonacci_sum = Empty; + for 1 .. $sum -> $i { + last if $i > @fibonacci.elems; + for @fibonacci.combinations: $i -> $comb { + my $_sum = [+] $comb; + @fibonacci_sum.push: $comb if $_sum == $sum; + } + } + + return @fibonacci_sum.elems; +} + +sub fibonacci-series-upto(Int $num where $num > 0) { + + my @fibonacci = (1, 2); + while @fibonacci.[*-1] + @fibonacci.[*-2] <= $num { + @fibonacci.push: @fibonacci.[*-1] + @fibonacci.[*-2]; + } + + return @fibonacci; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 61adbf3750..0f96b656a1 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,23 +1,6 @@ { - "subtitle" : { - "text" : "[Champions: 9] Last updated at 2021-10-26 22:18:35 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "tooltip" : { - "followPointer" : 1, - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" + "chart" : { + "type" : "column" }, "yAxis" : { "title" : { @@ -27,16 +10,17 @@ "drilldown" : { "series" : [ { - "id" : "Abigail", "data" : [ [ "Perl", 2 ] ], - "name" : "Abigail" + "name" : "Abigail", + "id" : "Abigail" }, { + "id" : "Flavio Poletti", "data" : [ [ "Perl", @@ -51,10 +35,10 @@ 2 ] ], - "id" : "Flavio Poletti", "name" : "Flavio Poletti" }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -65,8 +49,7 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { "id" : "Mark Anderson", @@ -79,17 +62,31 @@ "name" : "Mark Anderson" }, { - "name" : "Paulo Custodio", + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ] + ] + }, + { "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Paulo Custodio" }, { - "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -100,20 +97,20 @@ 2 ] ], - "id" : "Roger Bell_West" + "name" : "Roger Bell_West" }, { - "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], - "id" : "Simon Proctor" + "name" : "Simon Proctor" }, { - "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -124,10 +121,10 @@ 2 ] ], - "name" : "Ulrich Rieke" + "id" : "Ulrich Rieke" }, { - "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -138,21 +135,39 @@ 1 ] ], - "name" : "W. Luis Mochan" + "id" : "W. Luis Mochan" } ] }, + "tooltip" : { + "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/>", + "followPointer" : 1 + }, + "xAxis" : { + "type" : "category" + }, "title" : { "text" : "The Weekly Challenge - 136" }, - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "[Champions: 10] Last updated at 2021-10-26 23:15:11 GMT" }, "legend" : { "enabled" : 0 }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, "series" : [ { + "name" : "The Weekly Challenge - 136", "data" : [ { "name" : "Abigail", @@ -160,19 +175,24 @@ "drilldown" : "Abigail" }, { - "name" : "Flavio Poletti", "drilldown" : "Flavio Poletti", - "y" : 6 + "y" : 6, + "name" : "Flavio Poletti" }, { + "y" : 4, "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari", - "y" : 4 + "drilldown" : "Luca Ferrari" }, { "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "name" : "Mohammad S Anwar", "y" : 2, - "name" : "Mark Anderson" + "drilldown" : "Mohammad S Anwar" }, { "drilldown" : "Paulo Custodio", @@ -181,8 +201,8 @@ }, { "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 4 + "y" : 4, + "drilldown" : "Roger Bell_West" }, { "name" : "Simon Proctor", @@ -190,17 +210,16 @@ "drilldown" : "Simon Proctor" }, { - "y" : 4, "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "name" : "Ulrich Rieke", + "y" : 4 }, { - "y" : 3, "drilldown" : "W. Luis Mochan", + "y" : 3, "name" : "W. Luis Mochan" } ], - "name" : "The Weekly Challenge - 136", "colorByPoint" : 1 } ] diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0e5e904cf8..3c0b43a602 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,25 @@ { + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, "series" : [ { "name" : "Contributions", @@ -9,55 +30,34 @@ ], [ "Perl", - 6486 + 6487 ], [ "Raku", - 3953 + 3954 ] ], "dataLabels" : { - "enabled" : "true", + "color" : "#FFFFFF", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "align" : "right", - "rotation" : -90, "y" : 10, - "color" : "#FFFFFF", - "format" : "{point.y:.0f}" + "format" : "{point.y:.0f}", + "rotation" : -90, + "enabled" : "true", + "align" : "right" } } ], - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "legend" : { - "enabled" : "false" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2021]" }, - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, "subtitle" : { - "text" : "Last updated at 2021-10-26 22:18:35 GMT" + "text" : "Last updated at 2021-10-26 23:15:11 GMT" + }, + "legend" : { + "enabled" : "false" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 7b959d17ff..fb76af72cd 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,32 +1,27 @@ { - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" - }, "series" : [ { + "colorByPoint" : "true", "data" : [ { - "name" : "#001", "drilldown" : "001", + "name" : "#001", "y" : 161 }, { - "y" : 125, "drilldown" : "002", + "y" : 125, "name" : "#002" }, { + "drilldown" : "003", "name" : "#003", - "y" : 81, - "drilldown" : "003" + "y" : 81 }, { "name" : "#004", - "drilldown" : "004", - "y" : 99 + "y" : 99, + "drilldown" : "004" }, { "drilldown" : "005", @@ -34,14 +29,14 @@ "name" : "#005" }, { - "y" : 58, "drilldown" : "006", + "y" : 58, "name" : "#006" }, { "name" : "#007", - "drilldown" : "007", - "y" : 64 + "y" : 64, + "drilldown" : "007" }, { "drilldown" : "008", @@ -49,34 +44,34 @@ "name" : "#008" }, { + "drilldown" : "009", "name" : "#009", - "y" : 76, - "drilldown" : "009" + "y" : 76 }, { "name" : "#010", - "drilldown" : "010", - "y" : 65 + "y" : 65, + "drilldown" : "010" }, { + "drilldown" : "011", "name" : "#011", - "y" : 85, - "drilldown" : "011" + "y" : 85 }, { + "y" : 89, "name" : "#012", - "drilldown" : "012", - "y" : 89 + "drilldown" : "012" }, { "y" : 85, - "drilldown" : "013", - "name" : "#013" + "name" : "#013", + "drilldown" : "013" }, { - "drilldown" : "014", + "name" : "#014", "y" : 101, - "name" : "#014" + "drilldown" : "014" }, { "name" : "#015", @@ -85,68 +80,68 @@ }, { "name" : "#016", - "drilldown" : "016", - "y" : 71 + "y" : 71, + "drilldown" : "016" }, { + "drilldown" : "017", "name" : "#017", - "y" : 84, - "drilldown" : "017" + "y" : 84 }, { - "y" : 81, "drilldown" : "018", + "y" : 81, "name" : "#018" }, { - "y" : 103, "drilldown" : "019", - "name" : "#019" + "name" : "#019", + "y" : 103 }, { - "name" : "#020", "y" : 101, + "name" : "#020", "drilldown" : "020" }, { + "drilldown" : "021", "name" : "#021", - "y" : 72, - "drilldown" : "021" + "y" : 72 }, { "y" : 68, - "drilldown" : "022", - "name" : "#022" + "name" : "#022", + "drilldown" : "022" }, { - "y" : 97, "drilldown" : "023", + "y" : 97, "name" : "#023" }, { - "name" : "#024", + "drilldown" : "024", "y" : 75, - "drilldown" : "024" + "name" : "#024" }, { - "y" : 59, "drilldown" : "025", + "y" : 59, "name" : "#025" }, { - "name" : "#026", "drilldown" : "026", + "name" : "#026", "y" : 74 }, { - "name" : "#027", + "drilldown" : "027", "y" : 60, - "drilldown" : "027" + "name" : "#027" }, { - "name" : "#028", "drilldown" : "028", - "y" : 80 + "y" : 80, + "name" : "#028" }, { "drilldown" : "029", @@ -154,73 +149,73 @@ "name" : "#029" }, { - "name" : "#030", "drilldown" : "030", + "name" : "#030", "y" : 117 }, { - "y" : 89, "drilldown" : "031", - "name" : "#031" + "name" : "#031", + "y" : 89 }, { - "drilldown" : "032", "y" : 94, - "name" : "#032" + "name" : "#032", + "drilldown" : "032" }, { - "y" : 110, "drilldown" : "033", + "y" : 110, "name" : "#033" }, { "drilldown" : "034", - "y" : 64, - "name" : "#034" + "name" : "#034", + "y" : 64 }, { - "drilldown" : "035", "y" : 64, - "name" : "#035" + "name" : "#035", + "drilldown" : "035" }, { - "drilldown" : "036", + "name" : "#036", "y" : 68, - "name" : "#036" + "drilldown" : "036" }, { - "name" : "#037", "y" : 67, + "name" : "#037", "drilldown" : "037" }, { + "drilldown" : "038", "name" : "#038", - "y" : 68, - "drilldown" : "038" + "y" : 68 }, { "drilldown" : "039", - "y" : 62, - "name" : "#039" + "name" : "#039", + "y" : 62 }, { - "y" : 73, "drilldown" : "040", + "y" : 73, "name" : "#040" }, { - "y" : 76, "drilldown" : "041", + "y" : 76, "name" : "#041" }, { "y" : 92, - "drilldown" : "042", - "name" : "#042" + "name" : "#042", + "drilldown" : "042" }, { - "name" : "#043", "drilldown" : "043", + "name" : "#043", "y" : 68 }, { @@ -229,18 +224,18 @@ "name" : "#044" }, { - "drilldown" : "045", "y" : 96, - "name" : "#045" + "name" : "#045", + "drilldown" : "045" }, { - "name" : "#046", "y" : 87, + "name" : "#046", "drilldown" : "046" }, { - "name" : "#047", "drilldown" : "047", + "name" : "#047", "y" : 84 }, { @@ -249,34 +244,34 @@ "name" : "#048" }, { - "name" : "#049", "y" : 89, + "name" : "#049", "drilldown" : "049" }, { - "name" : "#050", + "drilldown" : "050", "y" : 98, - "drilldown" : "050" + "name" : "#050" }, { - "name" : "#051", "y" : 89, + "name" : "#051", "drilldown" : "051" }, { "y" : 91, - "drilldown" : "052", - "name" : "#052" + "name" : "#052", + "drilldown" : "052" }, { "drilldown" : "053", - "y" : 101, - "name" : "#053" + "name" : "#053", + "y" : 101 }, { + "y" : 103, "name" : "#054", - "drilldown" : "054", - "y" : 103 + "drilldown" : "054" }, { "drilldown" : "055", @@ -285,23 +280,23 @@ }, { "name" : "#056", - "drilldown" : "056", - "y" : 95 + "y" : 95, + "drilldown" : "056" }, { - "name" : "#057", "drilldown" : "057", + "name" : "#057", "y" : 80 }, { + "drilldown" : "058", "name" : "#058", - "y" : 69, - "drilldown" : "058" + "y" : 69 }, { - "y" : 89, "drilldown" : "059", - "name" : "#059" + "name" : "#059", + "y" : 89 }, { "name" : "#060", @@ -314,49 +309,49 @@ "drilldown" : "061" }, { - "y" : 58, "drilldown" : "062", - "name" : "#062" + "name" : "#062", + "y" : 58 }, { - "name" : "#063", "drilldown" : "063", - "y" : 89 + "y" : 89, + "name" : "#063" }, { - "name" : "#064", "y" : 80, + "name" : "#064", "drilldown" : "064" }, { "name" : "#065", - "drilldown" : "065", - "y" : 73 + "y" : 73, + "drilldown" : "065" }, { - "name" : "#066", + "drilldown" : "066", "y" : 84, - "drilldown" : "066" + "name" : "#066" }, { + "drilldown" : "067", "name" : "#067", - "y" : 90, - "drilldown" : "067" + "y" : 90 }, { - "y" : 75, "drilldown" : "068", - "name" : "#068" + "name" : "#068", + "y" : 75 }, { + "y" : 83, "name" : "#069", - "drilldown" : "069", - "y" : 83 + "drilldown" : "069" }, { "y" : 93, - "drilldown" : "070", - "name" : "#070" + "name" : "#070", + "drilldown" : "070" }, { "drilldown" : "071", @@ -364,29 +359,29 @@ "name" : "#071" }, { - "drilldown" : "072", "y" : 112, - "name" : "#072" + "name" : "#072", + "drilldown" : "072" }, { - "y" : 110, "drilldown" : "073", - "name" : "#073" + "name" : "#073", + "y" : 110 }, { "name" : "#074", - "drilldown" : "074", - "y" : 115 + "y" : 115, + "drilldown" : "074" }, { - "name" : "#075", "y" : 115, + "name" : "#075", "drilldown" : "075" }, { + "name" : "#076", "y" : 99, - "drilldown" : "076", - "name" : "#076" + "drilldown" : "076" }, { "name" : "#077", @@ -394,39 +389,39 @@ "drilldown" : "077" }, { - "drilldown" : "078", + "name" : "#078", "y" : 127, - "name" : "#078" + "drilldown" : "078" }, { "name" : "#079", - "drilldown" : "079", - "y" : 122 + "y" : 122, + "drilldown" : "079" }, { - "name" : "#080", "drilldown" : "080", - "y" : 127 + "y" : 127, + "name" : "#080" }, { - "y" : 114, "drilldown" : "081", + "y" : 114, "name" : "#081" }, { "drilldown" : "082", - "y" : 114, - "name" : "#082" + "name" : "#082", + "y" : 114 }, { "y" : 127, - "drilldown" : "083", - "name" : "#083" + "name" : "#083", + "drilldown" : "083" }, { + "drilldown" : "084", "name" : "#084", - "y" : 119, - "drilldown" : "084" + "y" : 119 }, { "name" : "#085", @@ -434,63 +429,63 @@ "drilldown" : "085" }, { - "y" : 104, "drilldown" : "086", + "y" : 104, "name" : "#086" }, { + "y" : 101, "name" : "#087", - "drilldown" : "087", - "y" : 101 + "drilldown" : "087" }, { - "name" : "#088", "y" : 121, + "name" : "#088", "drilldown" : "088" }, { - "y" : 113, "drilldown" : "089", - "name" : "#089" + "name" : "#089", + "y" : 113 }, { - "y" : 113, "drilldown" : "090", - "name" : "#090" + "name" : "#090", + "y" : 113 }, { |
