67 lines
974 B
Lua
67 lines
974 B
Lua
function calc(fa, fb, expansions)
|
|
local a = 0.0
|
|
local b = 0.0
|
|
local r = 0.0
|
|
local i = expansions
|
|
while i > 0 do
|
|
a = fa(i)
|
|
b = fb(i)
|
|
r = b / (a + r)
|
|
i = i - 1
|
|
end
|
|
a = fa(0)
|
|
return a + r
|
|
end
|
|
|
|
function sqrt2a(n)
|
|
if n ~= 0 then
|
|
return 2.0
|
|
else
|
|
return 1.0
|
|
end
|
|
end
|
|
|
|
function sqrt2b(n)
|
|
return 1.0
|
|
end
|
|
|
|
function napiera(n)
|
|
if n ~= 0 then
|
|
return n
|
|
else
|
|
return 2.0
|
|
end
|
|
end
|
|
|
|
function napierb(n)
|
|
if n > 1.0 then
|
|
return n - 1.0
|
|
else
|
|
return 1.0
|
|
end
|
|
end
|
|
|
|
function pia(n)
|
|
if n ~= 0 then
|
|
return 6.0
|
|
else
|
|
return 3.0
|
|
end
|
|
end
|
|
|
|
function pib(n)
|
|
local c = 2.0 * n - 1.0
|
|
return c * c
|
|
end
|
|
|
|
function main()
|
|
local sqrt2 = calc(sqrt2a, sqrt2b, 1000)
|
|
local napier = calc(napiera, napierb, 1000)
|
|
local pi = calc(pia, pib, 1000)
|
|
print(sqrt2)
|
|
print(napier)
|
|
print(pi)
|
|
end
|
|
|
|
main()
|