我正试图使用Sage计算有限域Z/67Z上的19v^2 + 49v + 8
的67次方,其中v = sqrt(-2)
。
以下是到目前为止我所拥有的(使用t
而不是v
(:
R.<t> = PolynomialRing(GF(67))
poly = (19 * (t^2) + 49*t + 8)
poly^67
这很好用。但现在,我想用值sqrt(-2)
来计算得到的多项式。
我不知道该怎么办。有什么想法吗?
平方根为-2的计算相当于模运算多项式t^2+2。
函数power_mod
可以用于此。
不是先加电然后减小模t^2+2,这将是浪费,它执行整个电源处理模t^2+2,效率高得多。
以下是编写(相同(计算的两种方法。
sage: t = polygen(GF(67))
sage: p = 19 * t^2 + 49 * t + 8
sage: power_mod(p, 67, t^2 + 2)
sage: R.<t> = GF(67)[]
sage: p = R([8, 49, 19])
sage: power_mod(p, 67, R([2, 0, 1]))