python 解三阶多项式系数_python – 评估多项式系数

我正在尝试编写一个函数,它将多项式p(x)的系数列表(a0,a1,a2,a3 …… a n)和值x作为输入.该函数将返回p(x),这是在x处求值时的多项式的值.

具有系数a0,a1,a2,a3 ……的a的多项式是函数

p(x)= a0+a1*x+a2*x^2+a3*x^3+.....+an*x^n

所以我不确定如何解决这个问题.我想我需要一个范围,但我怎么能这样做它可以处理x的任何数字输入?我不希望你们给出答案,我只是需要一点启动.我是否需要for循环,while循环或递归是一个选项吗?

def poly(lst, x)

我需要迭代列表中的项目,我是否使用索引,但是如何让它迭代未知数量的项目?

我想我可以在这里使用递归:

def poly(lst, x):

n = len(lst)

If n==4:

return lst[o]+lst[1]*x+lst[2]*x**2+lst[3]*x**3

elif n==3:

return lst[o]+lst[1]*x+lst[2]*x**2

elif n==2:

return lst[o]+lst[1]*x

elif n==1:

return lst[o]

else:

return lst[o]+lst[1]*x+lst[2]*x**2+lst[3]*x**3+lst[n]*x**n

这适用于n< = 4但是我得到索引错误:列表索引超出范围n> 4,但是看不清楚原因.

解决方法:

简单:

def poly(lst, x):

n, tmp = 0, 0

for a in lst:

tmp = tmp + (a * (x**n))

n += 1

return tmp

print poly([1,2,3], 2)

简单的递归:

def poly(lst, x, i = 0):

try:

tmp = lst.pop(0)

except IndexError:

return 0

return tmp * (x ** (i)) + poly(lst, x, i+1)

print poly([1,2,3], 2)

标签:python,python-3-x,iteration

来源: https://codeday.me/bug/20190725/1534263.html

你可能感兴趣的:(python,解三阶多项式系数)