【发布时间】:2013-05-31 09:41:16
【问题描述】:
我正在尝试编写一个函数,该函数将多项式 p(x) 的系数列表 (a0, a1, a2, a3.....a n) 和值 x 作为输入。该函数将返回 p(x),它是多项式在 x 处计算时的值。
系数为a0、a1、a2、a3的n次多项式........an是函数
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
这适用于 n4 的范围,但不知道为什么。
【问题讨论】:
-
提示:查看
sum和enumerate做了什么。 (PS:不要忘记,在 Python 中,我们使用**而不是^进行求幂,即x*x = x**2。) -
我知道 sum 是做什么的,但让我失望的是如何编写代码以便合并 n 值
-
@Snarre 看看我的回答,我想这就是你想要的。
-
enumerate随时为您服务。看看它的作用。它应该可以帮助您为每个系数创建 n。 -
@Answerers:由于 OP 要求 任何数字输入,具体取决于
x和系数,因此在求和时可能需要使用调整后的顺序以避免损失太多精度。
标签: python python-3.x iteration