2015-05-27 53 views
0

您好我在做一個聖人腳本現在,我有一個是理性的一些多項式的係數,我想對這些coeffs應用的一致性,例如:p = 1 + 7/2 x功能應該給聖人中的分數模整數?

p = 1 + 1/2 x mod 3 

我試圖mod_ui(N),但它是沒有正當理由則返回int我有在Python功能的代碼,但在聖人劇本我無法「翻譯爲」,這裏是Python代碼:

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

嗨!你能對你想要做的更精確一點嗎?我看不到'1 + 7/2x'是怎麼變成'1 + 1/x'的 - 例如它是(7/2)x'還是'7 /(2x)'? (另外,你可以通過做'ZZ(你的int)'來把int變成一個'Integer'。) – kcrisman

+0

(參見http://math.stackexchange.com/questions/1300935/fraction-modulo-integer-in-賢者) – kcrisman

+0

我很抱歉它實際上是(7/2)x,所以我想要的是以多項式爲模的一個整數的係數:7/2 mod 3 = 1/2 – Hamza91

回答

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