gpt4 book ai didi

python - 使用 Python 列表计算多项式的乘积

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:46 28 4
gpt4 key购买 nike

我正在尝试在 Python 中编写一个函数,polyprod(a,b),它接受两个列表的输入,然后输出一个列表。

该列表是一个多项式,列表中的条目对应于与该位置关联的 x 次幂的系数。例如,这些列表将表示多项式,如下所示:

[1,1,1] = 1 + x + x2,[0,2,6] = 2x + 6x2

我希望我的函数能够获取任意两个这样的列表,并输出一个代表产品的列表,因此对于我们的示例,我们将得到:

polyprod([1,1,1], [0,2,6]) = [0,2,8,8,6],因为 (1+x+x2) (2x+6x2) = 2x + 8x2 + 8x3 + 6x4

我知道 Numpy 中的卷积函数,并且我尝试使用以下代码来模拟它的功能(但没有成功)。我对 Python 还很陌生,我知道这可能是完全错误的。

def polyprod(a,v):
prodav = [0]*(len(a)+len(v)-1)

if len(v) > len(a):
for n in range(len(a)):
for m in range(n+1):
prodav[n] += v[m]*a[n-m]

for n in range(len(v)):
for m in range(n+1):
prodav[n] += a[m]*v[n-m]

这段代码有什么问题,如何仅使用标准库获得正确的结果?

最佳答案

查看您的代码,您可以立即看到目标列表最右侧的索引在这些循环中永远不会获得值,因为索引n仅迭代到任一长度输入列表。

要添加产品的索引由输入列表中索引的总和确定:

def polyprod(a,v):
prodav = [0]*(len(a)+len(v)-1)

for n in range(len(a)):
for m in range(len(v)):
prodav[n+m] += v[m]*a[n]

return prodav

print(polyprod([1,1,1], [0,2,6])) # [0, 2, 8, 8, 6]

关于python - 使用 Python 列表计算多项式的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47837839/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com