aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-05-06 14:51:19 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-05-06 14:51:19 +0100
commit1f2dcb66b72603a6c730235fc9813105fb80d3e6 (patch)
tree66529802d76f2976f2c342808df1f66ba053b81e
parent0d01f67611f47df33dced823eb50a8a5e231dc8f (diff)
downloadperlweeklychallenge-club-1f2dcb66b72603a6c730235fc9813105fb80d3e6.tar.gz
perlweeklychallenge-club-1f2dcb66b72603a6c730235fc9813105fb80d3e6.tar.bz2
perlweeklychallenge-club-1f2dcb66b72603a6c730235fc9813105fb80d3e6.zip
- Added Perl solutions to the "Bit Sum" task.
-rw-r--r--challenge-059/mohammad-anwar/perl/ch-2.pl38
-rw-r--r--challenge-059/mohammad-anwar/perl/ch-2a.pl46
-rw-r--r--stats/pwc-current.json221
-rw-r--r--stats/pwc-language-breakdown-summary.json80
-rw-r--r--stats/pwc-language-breakdown.json870
-rw-r--r--stats/pwc-leaders.json394
-rw-r--r--stats/pwc-summary-1-30.json32
-rw-r--r--stats/pwc-summary-121-150.json38
-rw-r--r--stats/pwc-summary-151-180.json44
-rw-r--r--stats/pwc-summary-31-60.json110
-rw-r--r--stats/pwc-summary-61-90.json110
-rw-r--r--stats/pwc-summary-91-120.json44
-rw-r--r--stats/pwc-summary.json372
13 files changed, 1249 insertions, 1150 deletions
diff --git a/challenge-059/mohammad-anwar/perl/ch-2.pl b/challenge-059/mohammad-anwar/perl/ch-2.pl
new file mode 100644
index 0000000000..534646d355
--- /dev/null
+++ b/challenge-059/mohammad-anwar/perl/ch-2.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Algorithm::Combinatorics qw(combinations);
+
+print &s([2, 3, 4]);
+
+sub s {
+ my ($A) = @_;
+
+ my $sum = 0;
+ foreach my $pair (combinations($A, 2)) {
+ $sum += f(@$pair);
+ }
+
+ return $sum;
+}
+
+sub f {
+ my ($a, $b) = @_;
+
+ $a = sprintf("%b", $a);
+ $b = sprintf("%b", $b);
+
+ my $m = length($a) > length($b) ? length($a) : length($b);
+ my $f = '%0'.$m.'d';
+ my @a = split //, sprintf $f, $a;
+ my @b = split //, sprintf $f, $b;
+
+ my $bits = 0;
+ foreach (0..$m-1) {
+ $bits += 1 if ($a[$_] != $b[$_]);
+ }
+
+ return $bits;
+}
diff --git a/challenge-059/mohammad-anwar/perl/ch-2a.pl b/challenge-059/mohammad-anwar/perl/ch-2a.pl
new file mode 100644
index 0000000000..bed6b32f44
--- /dev/null
+++ b/challenge-059/mohammad-anwar/perl/ch-2a.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+
+use Test::More;
+
+use Algorithm::Combinatorics qw(combinations);
+
+my $unit_tests = [
+ { in => [1, 2, 3], out => 4 },
+ { in => [2, 3, 4], out => 6 },
+];
+
+foreach my $unit_test (@$unit_tests) {
+ is (&s($unit_test->{in}), $unit_test->{out});
+}
+
+done_testing;
+
+sub s {
+ my ($A) = @_;
+
+ my $sum = 0;
+ foreach my $pair (combinations($A, 2)) {
+ $sum += f(@$pair);
+ }
+
+ return $sum;
+}
+
+sub f {
+ my ($a, $b) = @_;
+
+ $a = sprintf("%b", $a);
+ $b = sprintf("%b", $b);
+
+ my $m = length($a) > length($b) ? length($a) : length($b);
+ my $f = '%0'.$m.'d';
+ my @a = split //, sprintf $f, $a;
+ my @b = split //, sprintf $f, $b;
+
+ my $bits = 0;
+ foreach (0..$m-1) {
+ $bits += 1 if ($a[$_] != $b[$_]);
+ }
+
+ return $bits;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index ac443b738e..7368f6f878 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,101 +1,38 @@
{
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
- "legend" : {
- "enabled" : 0
- },
"subtitle" : {
- "text" : "[Champions: 10] Last updated at 2020-05-06 11:14:41 GMT"
+ "text" : "[Champions: 11] Last updated at 2020-05-06 13:50:56 GMT"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 059"
},
- "series" : [
- {
- "data" : [
- {
- "drilldown" : "Dave Jacoby",
- "name" : "Dave Jacoby",
- "y" : 2
- },
- {
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba",
- "y" : 2
- },
- {
- "y" : 5,
- "name" : "Javier Luque",
- "drilldown" : "Javier Luque"
- },
- {
- "name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari",
- "y" : 4
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "drilldown" : "Roger Bell_West",
- "name" : "Roger Bell_West",
- "y" : 4
- },
- {
- "y" : 2,
- "drilldown" : "Simon Proctor",
- "name" : "Simon Proctor"
- },
- {
- "drilldown" : "Ulrich Rieke",
- "name" : "Ulrich Rieke",
- "y" : 3
- },
- {
- "y" : 2,
- "name" : "Wanderdoc",
- "drilldown" : "Wanderdoc"
- },
- {
- "y" : 1,
- "drilldown" : "Yet Ebreo",
- "name" : "Yet Ebreo"
- }
- ],
- "name" : "Perl Weekly Challenge - 059",
- "colorByPoint" : 1
- }
- ],
"drilldown" : {
"series" : [
{
- "id" : "Dave Jacoby",
"data" : [
[
"Perl",
2
]
],
+ "id" : "Dave Jacoby",
"name" : "Dave Jacoby"
},
{
"id" : "E. Choroba",
- "name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "name" : "E. Choroba"
},
{
- "name" : "Javier Luque",
"data" : [
[
"Perl",
@@ -110,10 +47,11 @@
1
]
],
- "id" : "Javier Luque"
+ "id" : "Javier Luque",
+ "name" : "Javier Luque"
},
{
- "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -124,10 +62,10 @@
2
]
],
- "name" : "Luca Ferrari"
+ "id" : "Luca Ferrari"
},
{
- "id" : "Mark Anderson",
+ "name" : "Mark Anderson",
"data" : [
[
"Perl",
@@ -138,11 +76,21 @@
1
]
],
- "name" : "Mark Anderson"
+ "id" : "Mark Anderson"
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ],
+ "id" : "Mohammad S Anwar"
},
{
- "id" : "Roger Bell_West",
"name" : "Roger Bell_West",
+ "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -155,14 +103,14 @@
]
},
{
+ "name" : "Simon Proctor",
"id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Simon Proctor"
+ ]
},
{
"data" : [
@@ -175,48 +123,115 @@
2
]
],
- "name" : "Ulrich Rieke",
- "id" : "Ulrich Rieke"
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke"
},
{
- "id" : "Wanderdoc",
- "name" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Wanderdoc",
+ "name" : "Wanderdoc"
},
{
+ "name" : "Yet Ebreo",
+ "id" : "Yet Ebreo",
"data" : [
[
"Perl",
1
]
- ],
- "name" : "Yet Ebreo",
- "id" : "Yet Ebreo"
+ ]
}
]
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "chart" : {
- "type" : "column"
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 059"
+ "xAxis" : {
+ "type" : "category"
},
"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,
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
+ "followPointer" : 1
},
- "xAxis" : {
- "type" : "category"
+ "legend" : {
+ "enabled" : 0
+ },
+ "series" : [
+ {
+ "name" : "Perl Weekly Challenge - 059",
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "y" : 2,
+ "drilldown" : "Dave Jacoby",
+ "name" : "Dave Jacoby"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba"
+ },
+ {
+ "name" : "Javier Luque",
+ "y" : 5,
+ "drilldown" : "Javier Luque"
+ },
+ {
+ "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari",
+ "y" : 4
+ },
+ {
+ "name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson",
+ "y" : 2
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "drilldown" : "Mohammad S Anwar",
+ "y" : 1
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
+ },
+ {
+ "name" : "Simon Proctor",
+ "drilldown" : "Simon Proctor",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke"
+ },
+ {
+ "name" : "Wanderdoc",
+ "y" : 2,
+ "drilldown" : "Wanderdoc"
+ },
+ {
+ "drilldown" : "Yet Ebreo",
+ "y" : 1,
+ "name" : "Yet Ebreo"
+ }
+ ]
+ }
+ ],
+ "chart" : {
+ "type" : "column"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
+ }
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 6691db5926..9f4cc1b210 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,30 +1,19 @@
{
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- }
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "chart" : {
- "type" : "column"
- },
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- },
"series" : [
{
+ "name" : "Contributions",
+ "dataLabels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ },
+ "align" : "right",
+ "color" : "#FFFFFF",
+ "y" : 10,
+ "enabled" : "true",
+ "rotation" : -90,
+ "format" : "{point.y:.0f}"
+ },
"data" : [
[
"Blog",
@@ -32,30 +21,41 @@
],
[
"Perl",
- 2471
+ 2472
],
[
"Raku",
1551
]
- ],
- "name" : "Contributions",
- "dataLabels" : {
- "enabled" : "true",
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- },
- "rotation" : -90,
- "format" : "{point.y:.0f}",
- "align" : "right",
- "y" : 10,
- "color" : "#FFFFFF"
- }
+ ]
}
],
+ "chart" : {
+ "type" : "column"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : null
+ },
+ "min" : 0
+ },
"subtitle" : {
- "text" : "Last updated at 2020-05-06 11:14:41 GMT"
+ "text" : "Last updated at 2020-05-06 13:50:56 GMT"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ },
+ "type" : "category"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
},
"legend" : {
"enabled" : "false"
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index d4925ca1d8..8ee4bd5e35 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,315 +1,9 @@
{
- "series" : [
- {
- "data" : [
- {
- "y" : 140,
- "drilldown" : "001",
- "name" : "#001"
- },
- {
- "y" : 109,
- "drilldown" : "002",
- "name" : "#002"
- },
- {
- "name" : "#003",
- "drilldown" : "003",
- "y" : 71
- },
- {
- "name" : "#004",
- "drilldown" : "004",
- "y" : 91
- },
- {
- "y" : 71,
- "name" : "#005",
- "drilldown" : "005"
- },
- {
- "drilldown" : "006",
- "name" : "#006",
- "y" : 52
- },
- {
- "drilldown" : "007",
- "name" : "#007",
- "y" : 58
- },
- {
- "y" : 70,
- "name" : "#008",
- "drilldown" : "008"
- },
- {
- "y" : 68,
- "name" : "#009",
- "drilldown" : "009"
- },
- {
- "y" : 60,
- "drilldown" : "010",
- "name" : "#010"
- },
- {
- "y" : 79,
- "drilldown" : "011",
- "name" : "#011"
- },
- {
- "y" : 83,
- "drilldown" : "012",
- "name" : "#012"
- },
- {
- "y" : 76,
- "drilldown" : "013",
- "name" : "#013"
- },
- {
- "drilldown" : "014",
- "name" : "#014",
- "y" : 96
- },
- {
- "y" : 93,
- "name" : "#015",
- "drilldown" : "015"
- },
- {
- "y" : 66,
- "drilldown" : "016",
- "name" : "#016"
- },
- {
- "name" : "#017",
- "drilldown" : "017",
- "y" : 79
- },
- {
- "drilldown" : "018",
- "name" : "#018",
- "y" : 76
- },
- {
- "name" : "#019",
- "drilldown" : "019",
- "y" : 97
- },
- {
- "y" : 95,
- "drilldown" : "020",
- "name" : "#020"
- },
- {
- "name" : "#021",
- "drilldown" : "021",
- "y" : 67
- },
- {
- "name" : "#022",
- "drilldown" : "022",
- "y" : 63
- },
- {
- "y" : 91,
- "drilldown" : "023",
- "name" : "#023"
- },
- {
- "y" : 70,
- "drilldown" : "024",
- "name" : "#024"
- },
- {
- "y" : 55,
- "name" : "#025",
- "drilldown" : "025"
- },
- {
- "y" : 70,
- "drilldown" : "026",
- "name" : "#026"
- },
- {
- "drilldown" : "027",
- "name" : "#027",
- "y" : 58
- },
- {
- "y" : 78,
- "name" : "#028",
- "drilldown" : "028"
- },
- {
- "y" : 77,
- "name" : "#029",
- "drilldown" : "029"
- },
- {
- "name" : "#030",
- "drilldown" : "030",
- "y" : 115
- },
- {
- "name" : "#031",
- "drilldown" : "031",
- "y" : 87
- },
- {
- "y" : 92,
- "name" : "#032",
- "drilldown" : "032"
- },
- {
- "drilldown" : "033",
- "name" : "#033",
- "y" : 108
- },
- {
- "y" : 62,
- "drilldown" : "034",
- "name" : "#034"
- },
- {
- "y" : 62,
- "name" : "#035",
- "drilldown" : "035"
- },
- {
- "y" : 66,
- "name" : "#036",
- "drilldown" : "036"
- },
- {
- "name" : "#037",
- "drilldown" : "037",
- "y" : 63
- },
- {
- "y" : 65,
- "drilldown" : "038",
- "name" : "#038"
- },
- {
- "y" : 60,
- "drilldown" : "039",
- "name" : "#039"
- },
- {
- "name" : "#040",
- "drilldown" : "040",
- "y" : 71
- },
- {
- "name" : "#041",
- "drilldown" : "041",
- "y" : 74
- },
- {
- "y" : 88,
- "drilldown" : "042",
- "name" : "#042"
- },
- {
- "y" : 66,
- "drilldown" : "043",
- "name" : "#043"
- },
- {
- "drilldown" : "044",
- "name" : "#044",
- "y" : 82
- },
- {
- "y" : 94,
- "drilldown" : "045",
- "name" : "#045"
- },
- {
- "drilldown" : "046",
- "name" : "#046",
- "y" : 85
- },
- {
- "name" : "#047",
- "drilldown" : "047",
- "y" : 82
- },
- {
- "y" : 106,
- "drilldown" : "048",
- "name" : "#048"
- },
- {
- "name" : "#049",
- "drilldown" : "049",
- "y" : 85
- },
- {
- "y" : 96,
- "drilldown" : "050",
- "name" : "#050"
- },
- {
- "y" : 87,
- "name" : "#051",
- "drilldown" : "051"
- },
- {
- "y" : 89,
- "drilldown" : "052",
- "name" : "#052"
- },
- {
- "name" : "#053",
- "drilldown" : "053",
- "y" : 99
- },
- {
- "name" : "#054",
- "drilldown" : "054",
- "y" : 99
- },
- {
- "drilldown" : "055",
- "name" : "#055",
- "y" : 86
- },
- {
- "y" : 92,
- "drilldown" : "056",
- "name" : "#056"
- },
- {
- "y" : 76,
- "name" : "#057",
- "drilldown" : "057"
- },
- {
- "drilldown" : "058",
- "name" : "#058",
- "y" : 59
- },
- {
- "drilldown" : "059",
- "name" : "#059",
- "y" : 27
- }
- ],
- "colorByPoint" : "true",
- "name" : "Perl Weekly Challenge Languages"
- }
- ],
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-05-06 11:14:41 GMT"
- },
"drilldown" : {
"series" : [
{
- "id" : "001",
"name" : "001",
+ "id" : "001",
"data" : [
[
"Perl",
@@ -326,6 +20,7 @@
]
},
{
+ "name" : "002",
"id" : "002",
"data" : [
[
@@ -340,11 +35,9 @@
"Blog",
10
]
- ],
- "name" : "002"
+ ]
},
{
- "id" : "003",
"name" : "003",
"data" : [
[
@@ -359,7 +52,8 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "003"
},
{
"id" : "004",
@@ -394,10 +88,11 @@
12
]
],
- "name" : "005",
- "id" : "005"
+ "id" : "005",
+ "name" : "005"
},
{
+ "id" : "006",
"data" : [
[
"Perl",
@@ -412,10 +107,10 @@
7
]
],
- "name" : "006",
- "id" : "006"
+ "name" : "006"
},
{
+ "name" : "007",
"id" : "007",
"data" : [
[
@@ -430,11 +125,10 @@
"Blog",
10
]
- ],
- "name" : "007"
+ ]
},
{
- "name" : "008",
+ "id" : "008",
"data" : [
[
"Perl",
@@ -449,11 +143,9 @@
12
]
],
- "id" : "008"
+ "name" : "008"
},
{
- "id" : "009",
- "name" : "009",
"data" : [
[
"Perl",
@@ -467,11 +159,12 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "009",
+ "name" : "009"
},
{
"id" : "010",
- "name" : "010",
"data" : [
[
"Perl",
@@ -485,9 +178,11 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "010"
},
{
+ "name" : "011",
"data" : [
[
"Perl",
@@ -502,7 +197,6 @@
10
]
],
- "name" : "011",
"id" : "011"
},
{
@@ -524,8 +218,6 @@
"name" : "012"
},
{
- "id" : "013",
- "name" : "013",
"data" : [
[
"Perl",
@@ -539,10 +231,13 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "013",
+ "name" : "013"
},
{
"name" : "014",
+ "id" : "014",
"data" : [
[
"Perl",
@@ -556,11 +251,10 @@
"Blog",
15
]
- ],
- "id" : "014"
+ ]
},
{
- "id" : "015",
+ "name" : "015",
"data" : [
[
"Perl",
@@ -575,10 +269,10 @@
15
]
],
- "name" : "015"
+ "id" : "015"
},
{
- "id" : "016",
+ "name" : "016",
"data" : [
[
"Perl",
@@ -593,9 +287,10 @@
12
]
],
- "name" : "016"
+ "id" : "016"
},
{
+ "id" : "017",
"data" : [
[
"Perl",
@@ -610,11 +305,9 @@
12
]
],
- "name" : "017",
- "id" : "017"
+ "name" : "017"
},
{
- "name" : "018",
"data" : [
[
"Perl",
@@ -629,9 +322,11 @@
14
]
],
- "id" : "018"
+ "id" : "018",
+ "name" : "018"
},
{
+ "id" : "019",
"data" : [
[
"Perl",
@@ -646,11 +341,10 @@
13
]
],
- "name" : "019",
- "id" : "019"
+ "name" : "019"
},
{
- "name" : "020",
+ "id" : "020",
"data" : [
[
"Perl",
@@ -665,9 +359,11 @@
13
]
],
- "id" : "020"
+ "name" : "020"
},
{
+ "name" : "021",
+ "id" : "021",
"data" : [
[
"Perl",
@@ -681,13 +377,10 @@
"Blog",
10
]
- ],
- "name" : "021",
- "id" : "021"
+ ]
},
{
"id" : "022",
- "name" : "022",
"data" : [
[
"Perl",
@@ -701,10 +394,11 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "022"
},
{
- "name" : "023",
+ "id" : "023",
"data" : [
[
"Perl",
@@ -719,11 +413,10 @@
12
]
],
- "id" : "023"
+ "name" : "023"
},
{
"id" : "024",
- "name" : "024",
"data" : [
[
"Perl",
@@ -737,10 +430,10 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "024"
},
{
- "id" : "025",
"data" : [
[
"Perl",
@@ -755,9 +448,11 @@
12
]
],
+ "id" : "025",
"name" : "025"
},
{
+ "name" : "026",