aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2021-08-02 16:47:49 -0400
committerchirvasitua <stuart-little@users.noreply.github.com>2021-08-02 16:47:49 -0400
commit477b7a7820d7b9a5dd533c81267f817194cd19dd (patch)
treebac31374e2022389156955e1665ca695dd9a5bf5
parentf98b461d6301c6fc12e60034ec0677185ebac33c (diff)
downloadperlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.tar.gz
perlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.tar.bz2
perlweeklychallenge-club-477b7a7820d7b9a5dd533c81267f817194cd19dd.zip
1st commit on 124_lua
-rwxr-xr-xchallenge-124/stuart-little/lua/ch-1.lua25
-rwxr-xr-xchallenge-124/stuart-little/lua/ch-2.lua35
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))