I made a cross multiplication thing which was massive! Totally not worth it, but it did teach me a little about string manipulation. But why have the computer solve it like we, humans, solve it, when computers so soo good at arithmetic?

Here is a simple math equation solver using Lua, brute forcing the answer!

Code:

local function solve(s)
local n
local checks = {}
local env = setmetatable({ math = math }, {
__index = math
})
for d = 1,10000 do
for i = -10000,10000 do
if(not checks[tostring(i/d)])then
checks[tostring(i/d)] = true
n = setfenv(loadstring("return "..((s:gsub("x", i/d)):gsub("=", "=="))), env)()
if(n)then
return d~=1 and "x = "..i.."/"..d or "x = "..i
end
end
end
end
end
print(solve("2*x = x+4")) -- x = 4

Examples of how to use:

print(solve("2+x = 4")) --> x = 2
print(solve("x = 3.14")) --> x = 157/50
print(solve("x+5 = x*5")) --> x = 5/4
print(solve("(x+5)/20 = 120")) --> x = 2395
print(solve("math.sin(x+5) = math.sin(10)")) --> x = 5

It's just sorta cool. I don't wanna solve equations anymore, teachers!