鼠尾草中的分数模整数?

时间:2015-05-27 12:23:35

标签: python sage

在Sage中,我有一些具有有理系数的多项式,我想对这些系数应用同余,例如(1 + 7/2 x, 3)应该发送到1 + 1/2 x mod 3

我尝试了mod_ui(n),但它没有用,因为它会返回int。我在Python中有这个函数的代码,但我无法翻译它#34;进入Sage脚本。这是Python代码:

def modPoly(c, k):
    if k == 0:
        print("Error in modPoly(c, k). Integer k must be non-zero")
    else:
        return [fracModulo.fracMod(x, k) for x in c]

1 个答案:

答案 0 :(得分:1)

您可以定义这两个功能

def rat_mod_int(a, k):         # rational modulo integer
    return a.numerator() % (k * a.denominator()) / a.denominator()

def ratpoly_mod_int(p, k):     # polynomial modulo integer
    return p.parent()([rat_mod_int(a, k) for a in p])

然后以下工作

sage: R.<x> = PolynomialRing(QQ)
sage: p = 7/2*x + 1
sage: ratpoly_mod_int(p, 3)
1/2*x + 1