如何获得 n mod p 次多项式的系数?

How to get Coefficients of polynomial of degree n mod p?

F(x) = a0 + a1x + a2x2 + . . . + anxn是一个n次多项式函数,有足够的方法求多项式方程F的系数(X)。 (即查找 a0、a1、a2、... an)

但是,我想知道如何获得方程的系数 F(x) = (a0 + a1x + a2x2 + . . . + anxn) %p。其中 p 是质数。

例如,考虑等式
F(x) = (a0 + a1x + a2x2) % p
令 a0 = 5, a1 = 3 和 a3 = 2,
P = 71 然后 F(10) = 22, F(20) = 13, F(30) = 49 对于 x = 10, 20, 30.

有什么方法可以找到 F(x) 的 相同的系数(即 a0, a1 和 a2) 来自数据 P(=71) ,F(10), F(20), F(30) 对于 x = 10、20、30 ?

您可以将其作为一组线性方程求解。对于加减乘法,执行运算modulo n。对于除法,乘以乘法逆元。以问题中给出的例子为例。等式变为:

(全部计算在mod71)

1. a0 + 10a1 + 29a2 == 22 
2. a0 + 20a1 + 45a2 == 13 
3. a0 + 30a1 + 48a2 == 49

从方程式 2 中减去方程式 1

4. 10a1 + 16a2 == 62    

用方程式 3 减去方程式 2

5. 10a1 + 3a2 == 36 

4减5得

13a2 == 26
=>a2 == 26/13 == 26*11 == 2

可以mod化适用于一般多项式的相同方法。例如,我们可以使用矩阵以编程方式求解线性方程组。