您的位置:首页 > 编程语言 > Lua

Lua学习笔记

2016-01-27 10:37 507 查看
Lua练习题:

不采用幂的方式进行多项式的求和。最多采用n次的乘法和n次的加法实现给定多项式系数和x值的求和。

代码:

Exercise 3.4: Can you write a function from the previous
-- item so that it uses at most n additions and n multiplications
-- (and no exponentiations)?

-- coefficients are stored in a Lua array,
-- with the first array member representing
-- the first coefficient (which is multiplied
-- by x^n) and the last array member representing
-- the last coefficient (multiplied by x)
<span style="display: none; width: 0px; height: 0px;" id="transmark"></span>
-- calculates polynomials using 2n multiplications,
-- n additions and no exponentiations or something
-- along those lines
function calculate(coefficients, x)
p = 0
cur = 1
for i = #coefficients, 1, -1 do--幂是降次幂
p = p + cur*coefficients[i]--coefficients[#coefficients]存放的系数对应的幂是最低的,
cur = cur * x--幂通过每次乘以x实现。类似递推的方式进行
end
return p
end

-- read coefficients from user
print("how many coefficients should be read?")
size = io.read("*n")
print("reading " .. size .. " coefficients")
c = {}
for i = 1, size do
c[#c+1] = io.read("*n")
end

-- asks for x values to calculate the function
print("please enter x values (ctrl-d to exit)")
while true do
x = io.read("*n")
print("f(" .. x .. ") = " .. calculate(c, x))
end


结果如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: