首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数个数可变的多项式函数

参数个数可变的多项式函数
EN

Stack Overflow用户
提问于 2012-08-21 15:19:04
回答 5查看 456关注 0票数 2

是否有可能(在Python中)定义具有可变参数数量的多项式类型的函数?参数的数量应该根据我的输入文件中的数据系列的数量而变化。

目前我有这样的东西:

代码语言:javascript
复制
def y(x, a0, x2, x3, x4):
    y = a0 + a1*x + a2*x**2 + a3*x**3
    return y

当然,我可以通过额外的参数将高阶参数设置为零,但是否有更好的方法。

EN

回答 5

Stack Overflow用户

发布于 2012-08-21 15:26:17

您可以遍历参数并使用Horners method计算多项式,这非常有效。

代码语言:javascript
复制
def y(x, *args):
  y = 0
  for a in reversed(args):
    y = y*x+a
  return y

您可以在此question中找到有关可变数量参数的更多详细信息。

票数 3
EN

Stack Overflow用户

发布于 2012-08-21 15:54:22

使用生成器表达式的更简单的版本

代码语言:javascript
复制
def y(x, *args):
  return sum(a * x ** i for i, a in enumerate(args))

和一个使用reduce的Horner版本

代码语言:javascript
复制
def horn(x, *args):
    return reduce(lambda y, a: y * x + a, reversed(args))
票数 3
EN

Stack Overflow用户

发布于 2012-08-21 15:28:55

代码语言:javascript
复制
def y(x, *args):
  y = 0
  i = 0

  for a in args:
    y += a * x ** i
    i += 1

  return y

print y(2, 1, 2) # 2 * 2 ^ 0 + 2 * 2 ^ 1 = 5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12050007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档