[英]Fraction modulo integer in sage?
在Sage中,我有一些多項式具有有理系數,並且我想對這些系數應用同余,例如(1 + 7/2 x, 3)
應該發送給1 + 1/2 x mod 3
。
我嘗試了mod_ui(n)
但效果不好,因為它返回一個int
。 我有Python中該函數的代碼,但無法將其“轉換”為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]
您可以定義這兩個功能
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.