加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua学习笔记

发布时间:2020-12-14 21:57:20 所属栏目:大数据 来源:网络整理
导读: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

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
 结果如下所示: 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读