aboutsummaryrefslogtreecommitdiff
path: root/challenge-146/laurent-rosenfeld/lua/ch-2.lua
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-01-10 09:18:04 +0000
committerdrbaggy <js5@sanger.ac.uk>2022-01-10 09:18:04 +0000
commit54edabaf2afeb407d01d88c19d894823f85d5125 (patch)
tree4e4a4fbda6b3023c3d3840a1daae50a49fca9c86 /challenge-146/laurent-rosenfeld/lua/ch-2.lua
parent29b9eeeb95555dbcf1f375c89910c83ac83abd8d (diff)
parente9411bdc7658179af3f23d3ada7970323547a7d7 (diff)
downloadperlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.tar.gz
perlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.tar.bz2
perlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-146/laurent-rosenfeld/lua/ch-2.lua')
-rw-r--r--challenge-146/laurent-rosenfeld/lua/ch-2.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-146/laurent-rosenfeld/lua/ch-2.lua b/challenge-146/laurent-rosenfeld/lua/ch-2.lua
new file mode 100644
index 0000000000..bb1e3c546c
--- /dev/null
+++ b/challenge-146/laurent-rosenfeld/lua/ch-2.lua
@@ -0,0 +1,22 @@
+-- For a node `x/y` with a fraction less than 1, the parent is `x/(y-x)`;
+-- For a node `x/y` with a fraction larger than 1, the parent is `(x-y)/x`.
+
+local function get_parent(pair)
+ num = pair[1]
+ denom = pair[2]
+ -- no ternary operator in Lua, we can simulate it with and / or:
+ return num < denom and {num, denom - num} or {num - denom, denom}
+end
+
+local function to_str(pair)
+ -- return pair[1] .. "/" .. pair[2]
+ return table.concat(pair, "/")
+end
+
+local tests = { {5, 2}, {2, 5}, {3, 4}, {3,5} }
+for _, test in pairs(tests) do
+ parent = get_parent(test)
+ gd_parent = get_parent(parent)
+ print("Node " .. to_str(test) .. " - Parent: " .. to_str(parent)
+ .. " - Grand-Parent: " .. to_str(gd_parent))
+end