如何在 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
我正在使用使用 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