/
Using Lua to do a Binary Search
Using Lua to do a Binary Search
This is a quick exercise I did with Sam my finance manager:
This is the Lua code which implements a binary search:
function BINsearch(TargetFunc, Low, High)
local Range = High - Low
local Threshold = 1
trace(Range)
local LowValue = math.abs(TargetFunc(Low + Range/3))
local HighValue = math.abs(TargetFunc(High - Range/3))
if (LowValue <= HighValue) then
if (LowValue < Threshold) then
return Low + Range/3
end
return BINsearch(TargetFunc, Low, Low + Range*2/3)
else
if (HighValue < Threshold) then
return High - Range/3
end
return BINsearch(TargetFunc, Low+Range/3, High)
end
end
And here is some example code to show it’s usage:
require 'BINsearch'
function APPtarget(Input)
return Input-20000
end
-- The main function is the first function called from Iguana.
function main()
local HighGuess = 19000
local LowGuess = 0
local Result = BINsearch(APPtarget, LowGuess, HighGuess)
APPtarget(Result)
end
You might want to checkout the related concept of doing this in Microsoft Excel using the solver addin.
, multiple selections available,
Related content
Using the solver add-in in Microsoft Excel
Using the solver add-in in Microsoft Excel
More like this
Equality and Inequality Operators
Equality and Inequality Operators
More like this
String:match()
String:match()
More like this
Pattern Matching
Pattern Matching
More like this
Example code showing the eight basic types in Lua
Example code showing the eight basic types in Lua
More like this
String:find()
String:find()
More like this