我正在尝试编写一个函数,它以多项式p(x)的系数列表(a0、a1、a2、a3......an)和值x作为输入。该函数将返回p(x),即在x处求值时的多项式值。
具有系数a0、a1、a2、a3......an的n次多项式是以下函数:
具有系数a0、a1、a2、a3......an的n次多项式是以下函数:
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时会出现索引错误:list index out of range。不过我不知道原因。
sum
和enumerate
的含义。(PS: 别忘了在 Python 中我们使用**
而不是^
来进行乘幂运算,即x*x = x**2
。) - DSMx
和系数输入 任何数值,因此在进行求和时,人们可能希望使用调整的排序以避免失去太多精度。 - Benjamin Bannier