diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2021-08-02 16:47:49 -0400 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2021-08-02 16:47:49 -0400 |
| commit | 477b7a7820d7b9a5dd533c81267f817194cd19dd (patch) | |
| tree | bac31374e2022389156955e1665ca695dd9a5bf5 | |
| parent | f98b461d6301c6fc12e60034ec0677185ebac33c (diff) | |
| download | perlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.tar.gz perlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.tar.bz2 perlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.zip | |
1st commit on 124_lua
| -rwxr-xr-x | challenge-124/stuart-little/lua/ch-1.lua | 25 | ||||
| -rwxr-xr-x | challenge-124/stuart-little/lua/ch-2.lua | 35 |
2 files changed, 60 insertions, 0 deletions
diff --git a/challenge-124/stuart-little/lua/ch-1.lua b/challenge-124/stuart-little/lua/ch-1.lua new file mode 100755 index 0000000000..876d52e87f --- /dev/null +++ b/challenge-124/stuart-little/lua/ch-1.lua @@ -0,0 +1,25 @@ +#!/usr/bin/env lua + +-- run <script> + +print( + [[ + ^^^^^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^^^^^ + ^ + ^ + ^ + ^^^^^ + ^ + ^ +]] +) diff --git a/challenge-124/stuart-little/lua/ch-2.lua b/challenge-124/stuart-little/lua/ch-2.lua new file mode 100755 index 0000000000..20cf4b9edc --- /dev/null +++ b/challenge-124/stuart-little/lua/ch-2.lua @@ -0,0 +1,35 @@ +#!/usr/bin/env lua + +-- run <script> <space-separated numbers> + +function sum(t) + local s=0 + for _,v in ipairs(t) do s=s+v end + return s +end + +function inOut(tab,mask) + local sIn,sOut,ix = {},table.pack(table.unpack(tab)),#tab + while mask > 0 do + if mask % 2 == 1 then + table.insert(sIn,table.remove(sOut,ix)) + end + mask = mask >> 1 + ix = ix-1 + end + return sIn, sOut +end + +local mn,lOut,rOut = math.huge,{},{} +for i=0,2^(#arg-1) do + local l,r = inOut(arg,i) + local val = math.abs(sum(l)-sum(r)) + if #l==math.floor(#arg/2) and val < mn then + lOut=l + rOut=r + mn = val + end +end + +print(table.unpack(lOut)) +print(table.unpack(rOut)) |
