aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime <42359730+bracteatus@users.noreply.github.com>2019-06-26 15:36:22 -0600
committerJaime <42359730+bracteatus@users.noreply.github.com>2019-06-26 15:36:22 -0600
commit374a9fd171ec504a40522c322e163c954533caaf (patch)
tree91fc4d47dd1e71644e6a236845ca12441247f033
parent73ea96f3a913c4450d5324c06e1421c753a3b5ca (diff)
downloadperlweeklychallenge-club-374a9fd171ec504a40522c322e163c954533caaf.tar.gz
perlweeklychallenge-club-374a9fd171ec504a40522c322e163c954533caaf.tar.bz2
perlweeklychallenge-club-374a9fd171ec504a40522c322e163c954533caaf.zip
Update ch-1.pl
Shift the Van Eck sequence to prepare $a_{n+1}$ knowing $a_n$.
-rw-r--r--challenge-014/jaime/perl5/ch-1.pl20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-014/jaime/perl5/ch-1.pl b/challenge-014/jaime/perl5/ch-1.pl
index 220183b345..18041efa05 100644
--- a/challenge-014/jaime/perl5/ch-1.pl
+++ b/challenge-014/jaime/perl5/ch-1.pl
@@ -4,3 +4,23 @@
#
# Write a script to generate Van Eck’s sequence.
+my @ecks = (0);
+print "0\n"; # start the sequence.
+
+for (my $n = 0; ; $n++) {
+ $a1 = 0;
+ $an = shift @ecks;
+
+ my $m = 1; # the distance between matching entries.
+ for my $am (@ecks) {
+ if ($an == $am) {
+ $a1 = $m;
+ last; # only update with most recent entry.
+ }
+ } continue { $m++; }
+
+ unshift @ecks, $an;
+ unshift @ecks, $a1; # series is stored in reverse.
+
+ print "@ecks[0]\n"; # filter series with `perl ch-1.pl | head -n $LENGTH`
+}