首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python noob问题:多项式乘法问题

Python noob问题:多项式乘法问题
EN

Stack Overflow用户
提问于 2020-07-08 21:45:11
回答 1查看 58关注 0票数 1

有人能帮我解决我的代码吗,我得到的唯一答案是所有输入的0,0 --

代码语言:javascript
运行
复制
def add_poly(a,b,n):
    p=[]
    
    for i in range((n*2)-2):
        p.append(0)
    for i in range(0,n-1):
        for j in range(0,n-1):
            p[i+j]=(a[i]*b[j])

    return p


n=2
a=[1,3]
b=[0,2]

print(add_poly(a,b,n))
EN

Stack Overflow用户

发布于 2020-07-08 22:02:43

您的基本问题是range在上限上是独占的。要循环遍历n元素,您需要执行range(n),而不是range(n - 1)。这将使您在0, 1, 2, ..., n-1上进行循环。

另一个问题是,您提供了关于多项式大小的冗余信息。学位已经在它们的长度中进行了编码。如果你提供n,那就是多余的信息,而且可能是错误的。例如,如果你想把二阶多项式(n=3)乘以三阶(n=4),该怎么办?

最后,您尝试实现的操作看起来像是乘法而不是加法。

下面是如何使用len来获得多项式的顺序,以及如何使用enumerate来放置元素的示例。您还可以在一行中预分配输出列表:

代码语言:javascript
运行
复制
def mult_poly(a, b):
    p = [0] * (len(a) + len(b) - 1)

    for i, x in enumerate(a):
        for j, y in enumerate(b):
            p[i + j] += x * y

    return p
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62796248

复制
相关文章

相似问题

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