diff options
Diffstat (limited to 'challenge-246')
| -rwxr-xr-x | challenge-246/arne-sommer/bash/6-out-of-49.sh | 20 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/bash/ch-1.sh | 20 | ||||
| -rw-r--r-- | challenge-246/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/perl/6-out-of-49.perl | 13 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/perl/ch-1.pl | 13 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/raku/6-out-of-49 | 3 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/raku/ch-1.raku | 3 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/raku/ch-2.raku | 33 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/raku/lroso | 33 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/raku/reverse-lroso | 7 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/ruby/6-out-of-49.ruby | 18 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/ruby/ch-1.rb | 18 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/sql/6-out-of-49.sql | 14 | ||||
| -rwxr-xr-x | challenge-246/arne-sommer/sql/ch-1.sql | 14 |
14 files changed, 210 insertions, 0 deletions
diff --git a/challenge-246/arne-sommer/bash/6-out-of-49.sh b/challenge-246/arne-sommer/bash/6-out-of-49.sh new file mode 100755 index 0000000000..bb80e85cd7 --- /dev/null +++ b/challenge-246/arne-sommer/bash/6-out-of-49.sh @@ -0,0 +1,20 @@ +#! /bin/bash + +declare -A SIX + +for (( ; ; )) + do + key=$(($RANDOM % 49 + 1)) + SIX[$key]=1 + + if [ ${#SIX[*]} -gt 5 ]; then + break + fi +done + +IFS=$'\n' sorted=($(sort -n <<<"${!SIX[*]}")) +unset IFS + +for value in ${sorted[@]}; do + echo "$value" +done diff --git a/challenge-246/arne-sommer/bash/ch-1.sh b/challenge-246/arne-sommer/bash/ch-1.sh new file mode 100755 index 0000000000..bb80e85cd7 --- /dev/null +++ b/challenge-246/arne-sommer/bash/ch-1.sh @@ -0,0 +1,20 @@ +#! /bin/bash + +declare -A SIX + +for (( ; ; )) + do + key=$(($RANDOM % 49 + 1)) + SIX[$key]=1 + + if [ ${#SIX[*]} -gt 5 ]; then + break + fi +done + +IFS=$'\n' sorted=($(sort -n <<<"${!SIX[*]}")) +unset IFS + +for value in ${sorted[@]}; do + echo "$value" +done diff --git a/challenge-246/arne-sommer/blog.txt b/challenge-246/arne-sommer/blog.txt new file mode 100644 index 0000000000..65e5669dd2 --- /dev/null +++ b/challenge-246/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/out-of-linear.html diff --git a/challenge-246/arne-sommer/perl/6-out-of-49.perl b/challenge-246/arne-sommer/perl/6-out-of-49.perl new file mode 100755 index 0000000000..f73c982ad1 --- /dev/null +++ b/challenge-246/arne-sommer/perl/6-out-of-49.perl @@ -0,0 +1,13 @@ +#! /usr/bin/env perl + +my %six; + +while (keys %six < 6) +{ + $six{ int(1+ rand(48)) } = 1; +} + +foreach my $key (sort { $a <=> $b } keys %six) +{ + print "$key\n"; +} diff --git a/challenge-246/arne-sommer/perl/ch-1.pl b/challenge-246/arne-sommer/perl/ch-1.pl new file mode 100755 index 0000000000..f73c982ad1 --- /dev/null +++ b/challenge-246/arne-sommer/perl/ch-1.pl @@ -0,0 +1,13 @@ +#! /usr/bin/env perl + +my %six; + +while (keys %six < 6) +{ + $six{ int(1+ rand(48)) } = 1; +} + +foreach my $key (sort { $a <=> $b } keys %six) +{ + print "$key\n"; +} diff --git a/challenge-246/arne-sommer/raku/6-out-of-49 b/challenge-246/arne-sommer/raku/6-out-of-49 new file mode 100755 index 0000000000..58cade000d --- /dev/null +++ b/challenge-246/arne-sommer/raku/6-out-of-49 @@ -0,0 +1,3 @@ +#! /usr/bin/env raku + +(1..49).pick(6).sort>>.say; diff --git a/challenge-246/arne-sommer/raku/ch-1.raku b/challenge-246/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..58cade000d --- /dev/null +++ b/challenge-246/arne-sommer/raku/ch-1.raku @@ -0,0 +1,3 @@ +#! /usr/bin/env raku + +(1..49).pick(6).sort>>.say; diff --git a/challenge-246/arne-sommer/raku/ch-2.raku b/challenge-246/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..2615f884fd --- /dev/null +++ b/challenge-246/arne-sommer/raku/ch-2.raku @@ -0,0 +1,33 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@a where @a.elems == 5 && all(@a) ~~ Int, :v(:$verbose)); + +for -10 .. 10 -> $p +{ + for -10 .. 10 -> $q + { + is-lroso(@a, $p, $q) if $p * @a[0] + $q * @a[1] == @a[2]; + } +} + +say 'false'; + +sub is-lroso (@a is copy, $p, $q) +{ + my $first = @a.shift; + my $second = @a.shift; + my $target; + + while (@a.elems) + { + $target = @a.shift; + return unless $p * $first + $q * $second == $target; + + $first = $second; + $second = $target; + } + + say ": p:$p, q:$q" if $verbose; + say 'true'; + exit; +} diff --git a/challenge-246/arne-sommer/raku/lroso b/challenge-246/arne-sommer/raku/lroso new file mode 100755 index 0000000000..2615f884fd --- /dev/null +++ b/challenge-246/arne-sommer/raku/lroso @@ -0,0 +1,33 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@a where @a.elems == 5 && all(@a) ~~ Int, :v(:$verbose)); + +for -10 .. 10 -> $p +{ + for -10 .. 10 -> $q + { + is-lroso(@a, $p, $q) if $p * @a[0] + $q * @a[1] == @a[2]; + } +} + +say 'false'; + +sub is-lroso (@a is copy, $p, $q) +{ + my $first = @a.shift; + my $second = @a.shift; + my $target; + + while (@a.elems) + { + $target = @a.shift; + return unless $p * $first + $q * $second == $target; + + $first = $second; + $second = $target; + } + + say ": p:$p, q:$q" if $verbose; + say 'true'; + exit; +} diff --git a/challenge-246/arne-sommer/raku/reverse-lroso b/challenge-246/arne-sommer/raku/reverse-lroso new file mode 100755 index 0000000000..b4376a760c --- /dev/null +++ b/challenge-246/arne-sommer/raku/reverse-lroso @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $first, Int $second, Int :$p = 1, Int :$q = 1, UInt :$limit = 10); + +my $seq := ($first, $second, $p * * + $q * * ... Inf); + +say $seq[^$limit].join(", "); diff --git a/challenge-246/arne-sommer/ruby/6-out-of-49.ruby b/challenge-246/arne-sommer/ruby/6-out-of-49.ruby new file mode 100755 index 0000000000..ca73f52770 --- /dev/null +++ b/challenge-246/arne-sommer/ruby/6-out-of-49.ruby @@ -0,0 +1,18 @@ +#! /usr/bin/env ruby + +six = {} + +while six.length < 6 do + six[ rand(1...49) ] = 1 +end + +seven = []; + +six.each do |key, value| + seven.push key +end + +seven.sort { |a,b| a <=> b }.each do |key| + puts key +end + diff --git a/challenge-246/arne-sommer/ruby/ch-1.rb b/challenge-246/arne-sommer/ruby/ch-1.rb new file mode 100755 index 0000000000..ca73f52770 --- /dev/null +++ b/challenge-246/arne-sommer/ruby/ch-1.rb @@ -0,0 +1,18 @@ +#! /usr/bin/env ruby + +six = {} + +while six.length < 6 do + six[ rand(1...49) ] = 1 +end + +seven = []; + +six.each do |key, value| + seven.push key +end + +seven.sort { |a,b| a <=> b }.each do |key| + puts key +end + diff --git a/challenge-246/arne-sommer/sql/6-out-of-49.sql b/challenge-246/arne-sommer/sql/6-out-of-49.sql new file mode 100755 index 0000000000..fcf1d10e3e --- /dev/null +++ b/challenge-246/arne-sommer/sql/6-out-of-49.sql @@ -0,0 +1,14 @@ +-- sqlite3 -- + +CREATE TABLE lotto (Value INT NOT NULL); + +INSERT INTO lotto VALUES + (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), +(11),(12),(13),(14),(15),(16),(17),(18),(19),(20), +(21),(22),(23),(24),(25),(26),(27),(28),(29),(30), +(31),(32),(33),(34),(35),(36),(37),(38),(39),(40), +(41),(42),(43),(43),(45),(46),(47),(48),(49); + +-- SELECT * FROM lotto ORDER BY RANDOM() LIMIT 6; + +SELECT * FROM ( SELECT * FROM lotto ORDER BY RANDOM() LIMIT 6 ) ORDER BY Value; diff --git a/challenge-246/arne-sommer/sql/ch-1.sql b/challenge-246/arne-sommer/sql/ch-1.sql new file mode 100755 index 0000000000..fcf1d10e3e --- /dev/null +++ b/challenge-246/arne-sommer/sql/ch-1.sql @@ -0,0 +1,14 @@ +-- sqlite3 -- + +CREATE TABLE lotto (Value INT NOT NULL); + +INSERT INTO lotto VALUES + (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), +(11),(12),(13),(14),(15),(16),(17),(18),(19),(20), +(21),(22),(23),(24),(25),(26),(27),(28),(29),(30), +(31),(32),(33),(34),(35),(36),(37),(38),(39),(40), +(41),(42),(43),(43),(45),(46),(47),(48),(49); + +-- SELECT * FROM lotto ORDER BY RANDOM() LIMIT 6; + +SELECT * FROM ( SELECT * FROM lotto ORDER BY RANDOM() LIMIT 6 ) ORDER BY Value; |
