【问题标题】:What does the notation a (mod b, n) mean?符号 a (mod b, n) 是什么意思?
【发布时间】:2019-05-07 03:40:23
【问题描述】:
我正在尝试为AKS primality test 编写一个 Python 程序。
第 5 步声明 if (X+a)^n≠ X^n+a (mod X^r − 1,n), output composite;,但我不确定当模数有 2 个参数时该怎么做:Xr-1 和 n。在这种情况下,它应该计算什么?
我理解a(mod b) 表示将一个数字除以b = a 后的余数,但不确定这两个参数的含义。
【问题讨论】:
标签:
algorithm
modulo
modular-arithmetic
【解决方案1】:
这里的 X 表示我们正在使用多项式。 Mod X^r - 1 意味着我们通过 r 修改所有多项式指数。 Mod n 表示我们对所有系数进行了 n 的 mod。
例如,如果我们有一个多项式 X^4 + 4 X^3 + 6 X^2 + 4 X + 1,并且我们通过 X^3 - 1(即 r = 3)和 n = 5 进行修改,那么我们得到
X^4 + 4 X^3 + 6 X^2 + 4 X + 1 -> (mod by X^3 - 1)
X^1 + 4 X^0 + 6 X^2 + 4 X + 1 =
X + 4 + 6 X^2 + 4 X + 1 =
6 X^2 + 5 X + 5 -> (mod by 5)
1 X^2 + 0 X + 0 =
X^2.
【解决方案2】:
表示x^r等于1,n也等于0。
例如,如果 r=3,那么我们有 x^4 与 x 是全等的。这会产生一个至多为 r-1 的多项式。
对多项式的系数使用 n 等于 0 规则。