aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalt Mankowski <waltman@pobox.com>2020-07-22 19:18:41 -0400
committerWalt Mankowski <waltman@pobox.com>2020-07-22 19:18:41 -0400
commitaa197c2dabf76dc064e5f4b8a39abede35e7b3e6 (patch)
treefae81f651c8c4054d72f686728c3c76ed1f3ac45
parenta85885eff87ca80ae477117a7d1c1e454cde7416 (diff)
downloadperlweeklychallenge-club-aa197c2dabf76dc064e5f4b8a39abede35e7b3e6.tar.gz
perlweeklychallenge-club-aa197c2dabf76dc064e5f4b8a39abede35e7b3e6.tar.bz2
perlweeklychallenge-club-aa197c2dabf76dc064e5f4b8a39abede35e7b3e6.zip
simplified the logic for task 2
-rw-r--r--challenge-070/walt-mankowski/perl/ch-2.pl3
-rw-r--r--challenge-070/walt-mankowski/python/ch-2.py4
2 files changed, 2 insertions, 5 deletions
diff --git a/challenge-070/walt-mankowski/perl/ch-2.pl b/challenge-070/walt-mankowski/perl/ch-2.pl
index 98d26781f5..3d261acfc4 100644
--- a/challenge-070/walt-mankowski/perl/ch-2.pl
+++ b/challenge-070/walt-mankowski/perl/ch-2.pl
@@ -55,6 +55,5 @@ for my $i (3..$n) {
say "@S";
sub gray_code($n, @S) {
- my @S2 = map { "1$_" } reverse map { sprintf "%.*b", $n-1, $_ } @S;
- return @S, map { eval "0b$_" } @S2;
+ return @S, reverse map { 2**($n-1) + $_ } @S;
}
diff --git a/challenge-070/walt-mankowski/python/ch-2.py b/challenge-070/walt-mankowski/python/ch-2.py
index be0f8ac2d3..bb052aa981 100644
--- a/challenge-070/walt-mankowski/python/ch-2.py
+++ b/challenge-070/walt-mankowski/python/ch-2.py
@@ -4,9 +4,7 @@ n = int(argv[1])
S = [0, 1, 3, 2]
def gray_code(n, S):
- fmt = f"0{n-1}b"
- S2 = [eval(f"0b1{x}") for x in [f"{x:{fmt}}" for x in S][::-1]]
- return S + S2
+ return S + [2**(n-1) + x for x in S][::-1]
for i in range(3, n+1):
S = gray_code(i, S)