aboutsummaryrefslogtreecommitdiff
path: root/challenge-246
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2024-01-08 14:54:58 +0800
committer冯昶 <fengchang@novel-supertv.com>2024-01-08 14:54:58 +0800
commite019e6886d406f9e111e67cb1cdbe39ec996bb2a (patch)
tree7614dde91435b882f70c83213fb5c7301bed12bc /challenge-246
parente94f52525bf99cded9ba76e696b691c7a657500b (diff)
parent9a485c9bac8e3887b165d67c9aa81d71cdd42f01 (diff)
downloadperlweeklychallenge-club-e019e6886d406f9e111e67cb1cdbe39ec996bb2a.tar.gz
perlweeklychallenge-club-e019e6886d406f9e111e67cb1cdbe39ec996bb2a.tar.bz2
perlweeklychallenge-club-e019e6886d406f9e111e67cb1cdbe39ec996bb2a.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-246')
-rw-r--r--challenge-246/adam-russell/perl/ch-1.pl22
-rw-r--r--challenge-246/bob-lied/perl/ch-1.pl10
-rw-r--r--challenge-246/roger-bell-west/blog.txt1
-rw-r--r--challenge-246/sgreen/README.md3
4 files changed, 32 insertions, 4 deletions
diff --git a/challenge-246/adam-russell/perl/ch-1.pl b/challenge-246/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..b462c6e959
--- /dev/null
+++ b/challenge-246/adam-russell/perl/ch-1.pl
@@ -0,0 +1,22 @@
+use v5.38;
+##
+# 6 out of 49 is a German lottery.
+# Write a script that outputs six unique random integers from the range 1 to 49.
+##
+package SixOfFourtyNine{
+ use Math::Random::Secure q/irand/;
+ sub pick_six{
+ my @six;
+ {
+ my $r = irand(49) + 1;
+ push @six, $r if 0 == grep {$_ == $r} @six;
+ redo unless @six == 6;
+ }
+ return sort {$a <=> $b} @six;
+ }
+
+}
+
+package main{
+ say join q/, /, SixOfFourtyNine::pick_six;
+}
diff --git a/challenge-246/bob-lied/perl/ch-1.pl b/challenge-246/bob-lied/perl/ch-1.pl
index 394f4db426..56b1ae4e26 100644
--- a/challenge-246/bob-lied/perl/ch-1.pl
+++ b/challenge-246/bob-lied/perl/ch-1.pl
@@ -10,4 +10,12 @@
#=============================================================================
use feature qw/say/;
-say for sort { $a <=> $b} map { int(rand(49)) + 1 } 1..6;
+
+# Choose six numbers without repeats
+my %seen;
+while ( scalar(keys %seen) < 6 )
+{
+ $seen{ int(rand(49)) + 1 } = 1;
+}
+
+say for sort { $a <=> $b } keys %seen;
diff --git a/challenge-246/roger-bell-west/blog.txt b/challenge-246/roger-bell-west/blog.txt
new file mode 100644
index 0000000000..0f5c0a56cb
--- /dev/null
+++ b/challenge-246/roger-bell-west/blog.txt
@@ -0,0 +1 @@
+https://blog.firedrake.org/archive/2023/12/The_Weekly_Challenge_246__Linear_49.html
diff --git a/challenge-246/sgreen/README.md b/challenge-246/sgreen/README.md
deleted file mode 100644
index fb592c5c30..0000000000
--- a/challenge-246/sgreen/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# The Weekly Challenge 244
-
-Blog: [Weekly Challenge 244](https://dev.to/simongreennet/weekly-challenge-244-jim)