首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将复数形式转换为一般形式

如何将复数形式转换为一般形式
EN

Stack Overflow用户
提问于 2016-12-28 23:26:42
回答 1查看 103关注 0票数 0

我遇到了一个算法的麻烦,它将从因子形式的( (x-1)(x+5)(x-9) )转换成一般形式的( x^3 -5x^2 -41x +45)。一开始我只有一个词根列表

例如:[1, -5, 9]

输出应该是一个系数列表:[1, -5, -41, 45]

我有什么办法解决这个问题吗?

代码语言:javascript
复制
def przeksztalc(wielomian):
    pierwiastki = []
    for i in wielomian:
        lista_pomocniacza = []
        lista_pomocniacza.append(i * (-1))
        lista_pomocniacza.append(1)
        pierwiastki.append(lista_pomocniacza)
    rezultat = dzielenie_na_pary(pierwiastki)
    return rezultat


def dzielenie_na_pary(lista_z_pierwiastkami):
    dlugosc = len(lista_z_pierwiastkami)
    wynik = []
    for i in range(dlugosc-1):
        wynik = mnozenie_nawiasow(lista_z_pierwiastkami[i], lista_z_pierwiastkami[i+1])
        lista_z_pierwiastkami[i+1] = wynik
    return wynik[::-1]


def mnozenie_nawiasow(nawias1, nawias2):
    wynik_mnozenia = [0] * (len(nawias1 + nawias2) - 1)
    for i in range(len(nawias1)):
        for j in range(len(nawias2)):
            wynik_mnozenia[i+j] += nawias1[i] * nawias2[j]
    return wynik_mnozenia

wielomian = [1, -5, 9]
print(przeksztalc(wielomian))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-28 23:35:29

好的。您需要按顺序编写一个包含两个列表的函数,这两个列表是多项式的系数。对于一般用途,我建议你从最低到最高。这会让你的根看起来像

-1,1 -9,1

这个例程简单地通过一个嵌套循环工作,每个列表都有一个索引。系数i(在一个列表中)和j(在另一个列表中)的乘积被添加到系数i+j中。

重复使用此方法构建正在运行的产品。用(- 1,1,5,1)调用它一次,得到结果-5,4,1。再用那个和最后一个根调用它,得到你的最终答案。

那能让你动起来吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41371122

复制
相关文章

相似问题

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