如何在 python 的集合中生成特定的多项式

how to make specific polynomials in a set with python

我正在使用使用 python 语言的 sagemath。在整数环上的多项式环中,我想定义一个集合,其元素的度数小于给定数且系数的绝对值小于给定数。

如何实现?对于多项式,我定义了度函数

和 max_coefficient 功能已经存在。

例如,

(x^3-3*x-5).degree(x)      will return 3
max_coefficient(x^3-3*x-5) will return 5

以下是我的代码。

R=Polynomialring(ZZ,x)

def A(deg_bound,coefficient_bound):
    S=set()
    for poly in R:
        if poly.degree(x)<=deg_bound and max_coefficient(poly)<=coefficient_bound:
            S=S.add(poly)
    return S

但是 sagemath 告诉我我不能在多项式环中做 for

不太清楚 R 中的对象类型,但您似乎知道如何操作它们...

有一个错误可能会给您带来麻烦:

S = S.add(poly)

是先把poly加到S上,再把None赋值给S,比较遗憾。

尝试将其替换为:

S.add(poly)

将不同的对象累积到 S