用虚数计算多项式

Evaluate polynomials with imaginary numbers

我正在尝试使用 Sage v = sqrt(-2).

在有限域 Z/67Z 上计算 19v^2 + 49v + 8 的 67 次方

这是我目前的情况(使用 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]))