给定一个数值数值x
,您可以执行此操作float(x).is_integer()
以检查它是否为整数。有没有办法对复数执行此操作?
我正在尝试使用列表推导在有限字段上仅取多项式的整数根,这些整数是整数。
[r for r in solve(f,domain=FiniteField(p)) if float(r).is_integer()]
但是,如果solve函数返回复杂的根,则此方法将无效。
有谁知道该怎么做:检查给定的(可能是复数)是否为整数,或者是否知道有SymPy函数来获取整数的有限域上的多项式的根?
将该ground_roots
函数与modulus
关键字参数一起使用。这将返回p
具有多重性的模根。这是一个例子:
>>> from sympy import Symbol, ground_roots
>>> x = Symbol('x')
>>> f = x**5 + 7*x + 1
>>> p = 13
>>> ground_roots(f, modulus=p)
{-5: 1, 4: 2}
那就是说poly
模的根13
是-5
和4
,根4
具有多重性2
。
顺便说一句,在我看来,复数在这里就像是一条红鲱鱼:有限域上的整数多项式的根自然不能视为复数。solve
原始帖子中对的调用忽略了该domain
参数,只是给出了代数数(可以合理地解释为复数)作为结果,这可能就是您最终查看复数的原因。但是这些试图求模素数的根并不会有所帮助p
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句