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结果如下所示: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |