diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-12-07 22:32:20 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-12-07 22:32:20 +0000 |
| commit | 11b8a89713e5271db8d4b10782712d1fb620641e (patch) | |
| tree | d3832debdba57b05eddda1ab4d5711c8b6cbc473 | |
| parent | a6d0b9f02af4ec30316170d917d3bfc81308735a (diff) | |
| download | perlweeklychallenge-club-11b8a89713e5271db8d4b10782712d1fb620641e.tar.gz perlweeklychallenge-club-11b8a89713e5271db8d4b10782712d1fb620641e.tar.bz2 perlweeklychallenge-club-11b8a89713e5271db8d4b10782712d1fb620641e.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-090/ulrich-rieke/haskell/ch-1.hs | 31 | ||||
| -rw-r--r-- | challenge-090/ulrich-rieke/perl/ch-1.pl | 20 | ||||
| -rw-r--r-- | challenge-090/ulrich-rieke/perl/ch-2.pl | 22 | ||||
| -rw-r--r-- | challenge-090/ulrich-rieke/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-090/ulrich-rieke/raku/ch-2.raku | 19 | ||||
| -rw-r--r-- | stats/pwc-current.json | 237 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 38 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 672 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 378 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 20 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 42 |
17 files changed, 1069 insertions, 939 deletions
diff --git a/challenge-090/ulrich-rieke/haskell/ch-1.hs b/challenge-090/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..2e2204123f --- /dev/null +++ b/challenge-090/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,31 @@ +module Challenge090 + where +import Data.Maybe ( fromJust ) + +count :: Eq a => a -> [a] -> Int +count c [] = 0 +count d ( x:xs ) + |d == x = 1 + count d xs + |otherwise = count d xs + +pairings :: [(Char , Char ) ] +pairings = [('C' , 'G') , ('A' , 'T' ) , ('T' , 'A' ) , ('G' , 'C')] + +frequencies :: String -> [(Char , Int)] +frequencies sequence = map (\c -> (c , count c sequence )) "ACTG" + +findComplement :: String -> String +findComplement sequence = map (\c -> fromJust $ lookup c pairings ) +sequence + +convert :: (Char , Int ) -> String +convert p = [fst p] ++ ": " ++ (show $ snd p) + +main :: IO ( ) +main = do + putStrLn "Enter the sequence!" + sequence <- getLine + let freq = frequencies sequence + complement = findComplement sequence + mapM_ putStrLn $ map convert freq + putStrLn ("complement: " ++ complement) diff --git a/challenge-090/ulrich-rieke/perl/ch-1.pl b/challenge-090/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..76958b0993 --- /dev/null +++ b/challenge-090/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +my $sequence = $ARGV[ 0 ] ; +my %pairings = ( 'A' => 'T' , 'C' => 'G' , 'G' => 'C' , 'T' => 'A' ) ; +my %basefrequencies ; +my $complementary ; +for my $i ( 0 .. length $sequence ) { + my $let = substr( $sequence , $i , 1 ) ; + $basefrequencies{$let}++ ; + $complementary .= $pairings{ $let } ; +} +print "The base frequencies are:\n" ; +print "A: $basefrequencies{ 'A'}\n" ; +print "C: $basefrequencies{ 'C' }\n" ; +print "T: $basefrequencies{ 'T' }\n"; +print "G: $basefrequencies{ 'G' }\n" ; +print "The complementary sequence is:\n" ; +print $complementary . "\n" ; diff --git a/challenge-090/ulrich-rieke/perl/ch-2.pl b/challenge-090/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..f3bee9ba86 --- /dev/null +++ b/challenge-090/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use List::Util qw ( max sum ) ; + +my $A = $ARGV[ 0 ] ; +my $B = $ARGV[ 1 ] ; +my @factors ; +my $num = 1 ; +while ( $num < $A ) { + push @factors , $num ; + $num *= 2 ; +} +push @factors , $num ; +my @multfactors ; +while ( $A > 0 ) { + my $subtrahend = max ( grep { $_ <= $A } @factors ) ; + push @multfactors, $subtrahend ; + $A -= $subtrahend ; +} +my $result = sum map { $_ * $B } @multfactors ; +print "$result\n" ; diff --git a/challenge-090/ulrich-rieke/raku/ch-1.raku b/challenge-090/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..e94d53310f --- /dev/null +++ b/challenge-090/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,19 @@ +use v6 ; + +sub MAIN( Str $sequence ) { + my %basepairs = ( 'A' => 'T' , 'C' => 'G' , 'G' => 'C' , 'T' => 'A' ) ; + my $complementary ; + my %basefreqs ; + for (0 .. $sequence.chars - 1 ) -> $i { + my $let = $sequence.substr( $i , 1 ) ; + %basefreqs{ $let }++ ; + $complementary ~= %basepairs{ $let } ; + } + say "The base frequencies are:" ; + say "A: { %basefreqs{'A'} }" ; + say "T: { %basefreqs{'T'} }" ; + say "G: { %basefreqs{'G'} }" ; + say "C: { %basefreqs{'C'} }" ; + say "the complementary sequence is:" ; + say $complementary ; +} diff --git a/challenge-090/ulrich-rieke/raku/ch-2.raku b/challenge-090/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..8ea122d57e --- /dev/null +++ b/challenge-090/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,19 @@ +use v6 ; + +sub MAIN( Int $A is copy , Int $B ) { + my @factors ; + my $num = 1 ; + repeat { #keep pushing exponents of 2 + @factors.push( $num ) ; + $num *= 2 ; + } until ( $num > $A ) ; + @factors.push( $num ) ;#and push the exponent above $A + my @multfactors ; + while ( $A > 0 ) { + my $subtrahend = @factors.grep( { $_ <= $A } ).max ; + @multfactors.push( $subtrahend ) ; + $A -= $subtrahend ; + } + my $result = [+] @multfactors.map( { $_ * $B } ) ; + say $result ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 49cc509147..a85571624c 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,130 +1,39 @@ { - "series" : [ - { - "name" : "Perl Weekly Challenge - 090", - "colorByPoint" : 1, - "data" : [ - { - "name" : "Alexander Karelas", - "drilldown" : "Alexander Karelas", - "y" : 2 - }, - { - "name" : "Andrew Shitov", - "drilldown" : "Andrew Shitov", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Feng Chang", - "name" : "Feng Chang" - }, - { - "name" : "Flavio Poletti", - "drilldown" : "Flavio Poletti", - "y" : 4 - }, - { - "name" : "James Smith", - "y" : 2, - "drilldown" : "James Smith" - }, - { - "name" : "Mark Anderson", - "y" : 2, - "drilldown" : "Mark Anderson" - }, - { - "name" : "Philip Hood", - "y" : 2, - "drilldown" : "Philip Hood" - }, - { - "y" : 4, - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor", - "y" : 2 - }, - { - "drilldown" : "Stuart Little", - "y" : 2, - "name" : "Stuart Little" - } - ] - } - ], - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge - 090" - }, - "legend" : { - "enabled" : 0 - }, - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2020-12-07 22:28:06 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "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/>" - }, "drilldown" : { "series" : [ { + "id" : "Alexander Karelas", "data" : [ [ "Perl", 2 ] ], - "id" : "Alexander Karelas", "name" : "Alexander Karelas" }, { - "name" : "Andrew Shitov", - "id" : "Andrew Shitov", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Andrew Shitov", + "id" : "Andrew Shitov" }, { + "id" : "Feng Chang", "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ], - "id" : "Feng Chang" + ] }, { "id" : "Flavio Poletti", + "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -134,8 +43,7 @@ "Blog", 2 ] - ], - "name" : "Flavio Poletti" + ] }, { "data" : [ @@ -144,27 +52,27 @@ 2 ] ], - "id" : "James Smith", - "name" : "James Smith" + "name" : "James Smith", + "id" : "James Smith" }, { "name" : "Mark Anderson", - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson" }, { + "id" : "Philip Hood", "data" : [ [ "Raku", 2 ] ], - "id" : "Philip Hood", "name" : "Philip Hood" }, { @@ -182,14 +90,14 @@ "id" : "Roger Bell_West" }, { + "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + "id" : "Simon Proctor" }, { "data" : [ @@ -198,9 +106,120 @@ 2 ] ], - "id" : "Stuart Little", - "name" : "Stuart Little" + "name" : "Stuart Little", + "id" : "Stuart Little" + }, + { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke" } ] + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 2, + "name" : "Alexander Karelas", + "drilldown" : "Alexander Karelas" + }, + { + "y" : 2, + "name" : "Andrew Shitov", + "drilldown" : "Andrew Shitov" + }, + { + "drilldown" : "Feng Chang", + "y" : 2, + "name" : "Feng Chang" + }, + { + "drilldown" : "Flavio Poletti", + "y" : 4, + "name" : "Flavio Poletti" + }, + { + "name" : "James Smith", + "y" : 2, + "drilldown" : "James Smith" + }, + { + "name" : "Mark Anderson", + "y" : 2, + "drilldown" : "Mark Anderson" + }, + { + "drilldown" : "Philip Hood", + "y" : 2, + "name" : "Philip Hood" + }, + { + "drilldown" : "Roger Bell_West", + "y" : 4, + "name" : "Roger Bell_West" + }, + { + "name" : "Simon Proctor", + "y" : 2, + "drilldown" : "Simon Proctor" + }, + { + "y" : 2, + "name" : "Stuart Little", + "drilldown" : "Stuart Little" + }, + { + "drilldown" : "Ulrich Rieke", + "y" : 4, + "name" : "Ulrich Rieke" + } + ], + "name" : "Perl Weekly Challenge - 090" + } + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2020-12-07 22:32:07 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge - 090" + }, + "tooltip" : { + "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/>", + "followPointer" : 1 + }, + "legend" : { + "enabled" : 0 + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 4a4a238459..6bfa01ce98 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -2,20 +2,17 @@ "legend" : { "enabled" : "false" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, "xAxis" : { + "type" : "category", "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } - }, - "type" : "category" + } }, - "subtitle" : { - "text" : "Last updated at 2020-12-07 22:28:06 GMT" + "chart" : { + "type" : "column" }, "series" : [ { @@ -27,30 +24,27 @@ ], [ "Perl", - 4027 + 4029 ], [ "Raku", - 2661 + 2663 ] ], "dataLabels" : { - "color" : "#FFFFFF", - "rotation" : -90, + "format" : "{point.y:.0f}", "y" : 10, + "enabled" : "true", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, - "enabled" : "true", - "align" : "right", - "format" : "{point.y:.0f}" + "rotation" : -90, + "color" : "#FFFFFF", + "align" : "right" } } ], - "chart" : { - "type" : "column" - }, "yAxis" : { "title" : { "text" : null @@ -59,5 +53,11 @@ }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "subtitle" : { + "text" : "Last updated at 2020-12-07 22:32:07 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 8817a3f466..313258859b 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,28 +1,55 @@ { + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "tooltip" : { + "followPointer" : "true", + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-12-07 22:32:07 GMT" + }, "series" : [ { - "name" : "Perl Weekly Challenge Languages", - "colorByPoint" : "true", "data" : [ { - "name" : "#001", "drilldown" : "001", - "y" : 147 + "y" : 147, + "name" : "#001" }, { - "name" : "#002", "y" : 116, + "name" : "#002", "drilldown" : "002" }, { - "name" : "#003", "drilldown" : "003", - "y" : 73 + "y" : 73, + "name" : "#003" }, { + "y" : 93, "name" : "#004", - "drilldown" : "004", - "y" : 93 + "drilldown" : "004" }, { "name" : "#005", @@ -30,59 +57,59 @@ "drilldown" : "005" }, { - "name" : "#006", + "drilldown" : "006", "y" : 52, - "drilldown" : "006" + "name" : "#006" }, { + "drilldown" : "007", "name" : "#007", - "y" : 61, - "drilldown" : "007" + "y" : 61 }, { - "drilldown" : "008", + "name" : "#008", "y" : 74, - "name" : "#008" + "drilldown" : "008" }, { + "name" : "#009", "y" : 72, - "drilldown" : "009", - "name" : "#009" + "drilldown" : "009" }, { - "drilldown" : "010", + "name" : "#010", "y" : 60, - "name" : "#010" + "drilldown" : "010" }, { "y" : 81, - "drilldown" : "011", - "name" : "#011" + "name" : "#011", + "drilldown" : "011" }, { + "name" : "#012", "y" : 85, - "drilldown" : "012", - "name" : "#012" + "drilldown" : "012" }, { + "y" : 80, "name" : "#013", - "drilldown" : "013", - "y" : 80 + "drilldown" : "013" }, { + "y" : 98, "name" : "#014", - "drilldown" : "014", - "y" : 98 + "drilldown" : "014" }, { - "drilldown" : "015", "y" : 95, - "name" : "#015" + "name" : "#015", + "drilldown" : "015" }, { "name" : "#016", - "drilldown" : "016", - "y" : 66 + "y" : 66, + "drilldown" : "016" }, { "drilldown" : "017", @@ -90,19 +117,19 @@ "name" : "#017" }, { + "drilldown" : "018", "name" : "#018", - "y" : 78, - "drilldown" : "018" + "y" : 78 }, { "name" : "#019", - "drilldown" : "019", - "y" : 99 + "y" : 99, + "drilldown" : "019" }, { - "drilldown" : "020", + "name" : "#020", "y" : 97, - "name" : "#020" + "drilldown" : "020" }, { "drilldown" : "021", @@ -110,48 +137,48 @@ "name" : "#021" }, { + "name" : "#022", "y" : 63, - "drilldown" : "022", - "name" : "#022" + "drilldown" : "022" }, { - "name" : "#023", "drilldown" : "023", + "name" : "#023", "y" : 93 }, { - "y" : 70, "drilldown" : "024", + "y" : 70, "name" : "#024" }, { - "name" : "#025", + "drilldown" : "025", "y" : 55, - "drilldown" : "025" + "name" : "#025" }, { - "y" : 70, "drilldown" : "026", + "y" : 70, "name" : "#026" }, { - "drilldown" : "027", + "name" : "#027", "y" : 58, - "name" : "#027" + "drilldown" : "027" }, { - "name" : "#028", "y" : 80, + "name" : "#028", "drilldown" : "028" }, { - "name" : "#029", "drilldown" : "029", + "name" : "#029", "y" : 77 }, { - "name" : "#030", "y" : 117, + "name" : "#030", "drilldown" : "030" }, { @@ -160,49 +187,49 @@ "drilldown" : "031" }, { - "name" : "#032", "y" : 94, + "name" : "#032", "drilldown" : "032" }, { + "drilldown" : "033", "name" : "#033", - "y" : 110, - "drilldown" : "033" + "y" : 110 }, { + "name" : "#034", "y" : 62, - "drilldown" : "034", - "name" : "#034" + "drilldown" : "034" }, { + "drilldown" : "035", "name" : "#035", - "y" : 62, - "drilldown" : "035" + "y" : 62 }, { + "name" : "#036", "y" : 66, - "drilldown" : "036", - "name" : "#036" + "drilldown" : "036" }, { "drilldown" : "037", - "y" : 67, - "name" : "#037" + "name" : "#037", + "y" : 67 }, { + "y" : 65, "name" : "#038", - "drilldown" : "038", - "y" : 65 + "drilldown" : "038" }, { + "y" : 60, "name" : "#039", - "drilldown" : "039", - "y" : 60 + "drilldown" : "039" }, { - "name" : "#040", "drilldown" : "040", - "y" : 73 + "y" : 73, + "name" : "#040" }, { "name" : "#041", @@ -211,78 +238,78 @@ }, { "y" : 90, - "drilldown" : "042", - "name" : "#042" + "name" : "#042", + "drilldown" : "042" }, { + "y" : 66, "name" : "#043", - "drilldown" : "043", - "y" : 66 + "drilldown" : "043" }, { - "drilldown" : "044", + "name" : "#044", "y" : 82, - "name" : "#044" + "drilldown" : "044" }, { "drilldown" : "045", - "y" : 96, - "name" : "#045" + "name" : "#045", + "y" : 96 }, { - "name" : "#046", "drilldown" : "046", - "y" : 85 + "y" : 85, + "name" : "#046" }, { "drilldown" : "047", - "y" : 84, - "name" : "#047" + "name" : "#047", + "y" : 84 }, { - "y" : 108, "drilldown" : "048", + "y" : 108, "name" : "#048" }, { - "drilldown" : "049", "y" : 85, - "name" : "#049" + "name" : "#049", + "drilldown" : "049" }, { - "name" : "#050", + "drilldown" : "050", "y" : 96, - "drilldown" : "050" + "name" : "#050" }, { "name" : "#051", - "drilldown" : "051", - "y" : 87 + "y" : 87, + "drilldown" : "051" }, { - "name" : "#052", "drilldown" : "052", + "name" : "#052", "y" : 89 }, { - "name" : "#053", "drilldown" : "053", + "name" : "#053", "y" : 99 }, { - "drilldown" : "054", "y" : 103, - "name" : "#054" + "name" : "#054", + "drilldown" : "054" }, { + "name" : "#055", "y" : 88, - "drilldown" : "055", - "name" : "#055" + "drilldown" : "055" }, { - "drilldown" : "056", "y" : 95, - "name" : "#056" + "name" : "#056", + "drilldown" : "056" }, { "name" : "#057", @@ -290,43 +317,43 @@ "drilldown" : "057" }, { + "y" : 69, "name" : "#058", - "drilldown" : "058", - "y" : 69 + "drilldown" : "058" }, { "y" : 89, - "drilldown" : "059", - "name" : "#059" + "name" : "#059", + "drilldown" : "059" }, { - "name" : "#060", "drilldown" : "060", + "name" : "#060", "y" : 85 }, { - "name" : "#061", + "drilldown" : "061", "y" : 81, - "drilldown" : "061" + "name" : "#061" }, { - "y" : 54, "drilldown" : "062", + "y" : 54, "name" : "#062" }, { + "y" : 89, "name" : "#063", - "drilldown" : "063", - "y" : 89 + "drilldown" : "063" }, { "y" : 80, - "drilldown" : "064", - "name" : "#064" + "name" : "#064", + "drilldown" : "064" }, { - "name" : "#065", "y" : 73, + "name" : "#065", "drilldown" : "065" }, { @@ -335,39 +362,39 @@ "name" : "#066" }, { - "y" : 90, "drilldown" : "067", + "y" : 90, "name" : "#067" }, { + "name" : "#068", "y" : 75, - "drilldown" : "068", - "name" : "#068" + "drilldown" : "068" }, { - "name" : "#069", "drilldown" : "069", - "y" : 83 |
