- レーマンの方法:
レーマンの方法は、円周率を無限級数として近似する方法です。以下は、Luaでこの方法を実装した例です。
function calculatePiLeibniz(iterations)
local pi = 0
local sign = 1
for i = 0, iterations do
local term = 1 / (2 * i + 1)
pi = pi + sign * term
sign = -sign
end
return pi * 4
end
local iterations = 1000000
local pi = calculatePiLeibniz(iterations)
print("Pi =", pi)
- モンテカルロ法:
モンテカルロ法は、確率と統計の手法を使用して円周率を推定する方法です。以下は、Luaでこの方法を実装した例です。
function calculatePiMonteCarlo(samples)
local insideCircle = 0
local total = 0
for i = 1, samples do
local x = math.random()
local y = math.random()
local distance = math.sqrt(x * x + y * y)
if distance <= 1 then
insideCircle = insideCircle + 1
end
total = total + 1
end
return (insideCircle / total) * 4
end
local samples = 1000000
local pi = calculatePiMonteCarlo(samples)
print("Pi =", pi)