1 有限域基础知识

1.1 有限域(Galois域)的构造

令 pp 为一个素数. 则对任意的一个正整数 nn,存在一个特征为 pp,元素个数为 pnp^{n} 的有限域 GF(pn)GF(p^{n}).

注:任意一个有限域,其元素的个数一定为 pnp^{n},其中 pp 为一个素数(有限域的特征),nn 为一个正整数.

例1(有限域 GF(p)GF(p)) 令 pp 为一个素数,集合

GF(p)=Zp={0,1,2,…,p−1}.

GF(p)=\mathbb{Z}_{p}=\{0,1,2,\dots,p-1\}.
在 GF(p)GF(p) 上定义加法 ⊕\oplus 和乘法 ⊙\odot 分别为模 pp 加法和模 pp 乘法,即任意的 a,b∈GF(p)a,b\in GF(p),

a⊕b=(a+b)modp, a⊙b=(a⋅b)modp

a\oplus b=(a+b)\mod p,\ a\odot b=(a\cdot b)\mod p
则 <GF(p),⊕,⊙><script type="math/tex" id="MathJax-Element-638"></script> 为一个有 pp 个元素的有限域,其中零元素为 00,单位元为 11.

令 aa 为 GF(p)GF(p) 中的一个非零元素. 由于 gcd(a,p)=1gcd(a,p)=1,因此,存在整数 b,cb,c,使得 ab+pc=1ab+pc=1. 由此得到 aa 的逆元为 a−1=bmodpa^{-1}=b\mod p.

域 GF(p)GF(p) 称为一个素域(prime field).

例注1: 给定 aa 和 pp,例1中的等式 ab+pc=1ab+pc=1 可以通过扩展的欧几里得除法得到,从而求得 GF(p)GF(p) 中任意非零元素的逆元.

例2(有限域 GF(pn)GF(p^{n})) 从 GF(p)GF(p) 出发,对任意正整数 nn,n≥2n\geq 2,我们可以构造元素元素个数为 pnp^{n} 的有限域 GF(pn)GF(p^{n}) 如下:
令 g(x)g(x) 为一个 GF(p)GF(p) 上次数为 nn 的不可约多项式,集合

GF(pn)=GF(p)[x]/⟨g(x)⟩={a0+a1x+a2x2+⋯+an−1xn−1 | ai∈GF(p),0≤i≤n−1}

GF(p^{n})=GF(p)[x]/\langle g(x)\rangle=\{a_{0}+a_{1}x+a_{2}x^{2}+\cdots+a_{n-1}x^{n-1}\ |\ a_{i}\in GF(p), 0\leq i\leq n-1\}
在 GF(pn)GF(p^{n}) 上定义加法 ⊕\oplus 和乘法 ⊙\odot 分别为模 g(x)g(x) 加法和模 g(x)g(x) 乘法,即任意的 a(x),b(x)∈GF(pn)a(x),b(x)\in GF(p^{n}),

a(x)⊕b(x)=a(x)+b(x), a(x)⊙b(x)=(a(x)⋅b(x))modg(x)

a(x)\oplus b(x)=a(x)+b(x),\ a(x)\odot b(x)=(a(x)\cdot b(x))\mod g(x)
则 <GF(pn),⊕,⊙><script type="math/tex" id="MathJax-Element-671"></script> 为一个有 pnp^{n} 个元素,特征为 pp 的有限域,其中零元素为 GF(p)GF(p) 中的 00,单位元为 GF(p)GF(p) 中的 11.

令 a(x)a(x) 为 GF(pn)GF(p^{n}) 中的一个非零元素. 由于 gcd(a(x),g(x))=1gcd(a(x),g(x))=1,因此,存在 GF(p)GF(p) 上的多项式 b(x),c(x)b(x),c(x),使得 a(x)b(x)+g(x)c(x)=1a(x)b(x)+g(x)c(x)=1. 由此得到 a(x)a(x) 的逆元为 a−1(x)=b(x)modg(x)a^{-1}(x)=b(x)\mod g(x).

域 GF(pn)GF(p^{n}) 称为 GF(p)GF(p) 的(nn 次)扩域(extension field),而 GF(p)GF(p) 称为 GF(pn)GF(p^{n}) 的子域(subfield).

例注2.1: 给定 GF(p)GF(p) 上的多项式 a(x)a(x) 和 g(x)g(x),例2中的等式 a(x)b(x)+g(x)c(x)=1a(x)b(x)+g(x)c(x)=1 可以通过扩展的欧几里得除法得到,从而求得 GF(pn)GF(p^{n}) 中任意非零元素的逆元.

例注2.2:设 GF(q)GF(q) 是一个含有 qq 个元素的有限域. 对任意正整数 nn, GF(q)GF(q) 上的 nn 次不可约多项式一定存在. 更进一步,GF(q)GF(q) 上首项系数为 11 的 nn 次不可约多项式的个数为

Nq(n)=1n∑d|nμ(nd)qd=1n∑d|nμ(d)qn/d

N_{q}(n)=\frac{1}{n}\sum_{d|n}\mu(\frac{n}{d})q^{d}=\frac{1}{n}\sum_{d|n}\mu(d)q^{n/d}
其中 μ\mu 为Moebius函数,定义为

μ(m)=⎧⎩⎨1(−1)k0如果m=1如果m=p1p2⋯pk,其中p1,p2,…,pk为互不相同的素数其它

\mu(m)=\begin{cases}1 & 如果 m=1\\ (-1)^{k} & 如果 m=p_{1}p_{2}\cdots p_{k},其中 p_{1},p_{2},\dots,p_{k}为互不相同的素数\\ 0 & 其它\end{cases}

1.2 有限域的性质

令 GF(q)GF(q) 是一个含有 qq 个元素的有限域,F∗q=GF(q)∖{0}F^{*}_{q}=GF(q)\setminus\{0\} 为有限域 GF(q)GF(q) 中所有非零元素构成的集合. 则在乘法之下 F∗qF^{*}_{q} 是一个有限循环群. 循环群 F∗qF^{*}_{q} 的一个生成元称为有限域 GF(q)GF(q) 的一个本原元.

若 α∈GF(q)\alpha\in GF(q) 为一个本原元,则

GF(q)={0,1,α,α2,…,αq−2}

GF(q)=\{0,1,\alpha,\alpha^{2},\dots,\alpha^{q-2}\}
并且 αq−1=1\alpha^{q-1}=1,即 αq=α\alpha^{q}=\alpha.

定义:设 GF(q)GF(q) 是一个含有 qq 个元素的有限域,GF(p)GF(p) 是 GF(q)GF(q) 的一个含有 pp 个元素的子域(pp 不一定为素数),α∈GF(q)\alpha\in GF(q). 则 GF(p)GF(p) 上以 α\alpha 为根,首项系数为 11,并且次数最低的多项式称为 α\alpha 在 GF(p)GF(p) 上的极小多项式(minimal polynomial of α\alpha over GF(p)GF(p)).

特别地,若 α∈GF(q)\alpha\in GF(q) 为 GF(q)GF(q) 的一个本原元,则 α\alpha 在 GF(p)GF(p) 上的极小多项式称为 GF(p)GF(p) 上的一个本原多项式(primitive polynomial for GF(q)GF(q) over GF(p)GF(p)).

定义注1:对任意的 α∈GF(q)\alpha\in GF(q), α\alpha 在 GF(p)GF(p) 上的极小多项式存在并且唯一,并且 α\alpha 在 GF(p)GF(p) 上的极小多项式为 GF(p)GF(p) 上的一个不可约多项式.

定义注2:设 α∈GF(q)\alpha\in GF(q), 则 α\alpha 和 αp\alpha^{p} 在 GF(p)GF(p) 上具有相同的极小多项式. 更进一步,集合

B(α)={α,αp,αp2,αp3,…,αpi,…}

B(\alpha)=\{\alpha,\alpha^{p},\alpha^{p^{2}},\alpha^{p^{3}},\dots,\alpha^{p^{i}},\dots\}
中的元素具有相同的极小多项式. 设 q=pnq=p^{n},则 αpn=α\alpha^{p^{n}}=\alpha. 因此,集合 B(α)B(\alpha) 中互不相同的元素的个数(记为 rr)不超过 nn. 可以证明, α\alpha 为 GF(q)GF(q) 的一个本原元当且仅当 r=nr=n.

定理:设 GF(q)GF(q) 是一个含有 qq 个元素的有限域,GF(p)GF(p) 是 GF(q)GF(q) 的一个含有 pp 个元素的子域. 设 α∈GF(q)\alpha\in GF(q),rr 为满足 αpr=α\alpha^{p^{r}}=\alpha 的最小正整数. 则 α\alpha 在 GF(p)GF(p) 上的极小多项式 g(x)g(x) 是一个 rr 次不可约多项式,并且

B(α)={α,αp,αp2,…,αpr−1}

B(\alpha)=\{\alpha,\alpha^{p},\alpha^{p^{2}},\dots,\alpha^{p^{r-1}}\}
中的元素为 g(x)g(x) 在 GF(q)GF(q) 上的所有不同的根,即

g(x)=(x−α)(x−αp)(x−αp2)⋯(x−αpr−1).

g(x)=(x-\alpha)(x-\alpha^{p})(x-\alpha^{p^{2}})\cdots(x-\alpha^{p^{r-1}}).

注:rr 的计算方法如下:设 α\alpha 在 F∗qF^{*}_{q} 中的阶为 kk. 集合

Z∗k={m | 0≤m≤k−1,gcd(m,k)=1}

\mathbb{Z}^{*}_{k}=\{m\ |\ 0\leq m\leq k-1, gcd(m,k)=1\}
在模 kk 乘法运算下是一个含有 φ(k)\varphi(k) 个元素的有限群(其中 φ\varphi 为欧拉(Euler)函数). 则 rr 等于 pmodkp\mod k 在 Z∗k\mathbb{Z}^{*}_{k} 中的阶.

推论:设 GF(q)GF(q) 是一个含有 qq 个元素的有限域,GF(p)GF(p) 是 GF(q)GF(q) 的一个含有 pp 个元素的子域. 设 |GF(q)|=pn|GF(q)|=p^{n},即 q=pnq=p^{n}. 设 α∈GF(q)\alpha\in GF(q) 为 GF(q)GF(q) 的一个本原元,则 α\alpha 在 GF(p)GF(p) 上的极小多项式 g(x)g(x) 的次数为 nn,并且

g(x)=(x−α)(x−αp)(x−αp2)⋯(x−αpn−1).

g(x)=(x-\alpha)(x-\alpha^{p})(x-\alpha^{p^{2}})\cdots(x-\alpha^{p^{n-1}}).
更进一步,α,αp,αp2,…,αpn−1\alpha,\alpha^{p},\alpha^{p^{2}},\dots,\alpha^{p^{n-1}} 均为 GF(q)GF(q) 的本原元.

注:设 GF(p)GF(p) 是一个含有 pp 个元素的有限域,nn 是任意一个正整数,则 GF(p)GF(p) 上的 nn 次本原多项式一定存在. 更进一步,GF(p)GF(p) 上的首项系数为 11 的 nn 次本原多项式的个数为 φ(pn−1)n\frac{\varphi(p^{n}-1)}{n},其中 φ\varphi 为欧拉函数.

例3 考虑二元域 GF(2)GF(2) 上的不可约多项式 p(α)=α3+α+1p(\alpha)=\alpha^{3}+\alpha+1,构造有限域

GF(23)=GF(2)[α]/⟨p(α)⟩={0,1,α,α+1,α2,α2+1,α2+α,α2+α+1}.

GF(2^{3})=GF(2)[\alpha]/\langle p(\alpha)\rangle=\{0,1,\alpha,\alpha+1,\alpha^{2},\alpha^{2}+1,\alpha^{2}+\alpha,\alpha^{2}+\alpha+1\}.
容易验证,α,α2,α3,α4,α5,α6\alpha,\alpha^{2},\alpha^{3},\alpha^{4},\alpha^{5},\alpha^{6} 都是 GF(23)GF(2^{3}) 的本原元. GF(2)GF(2) 上的首项系数为 11 的 33 次本原多项式有两个,分别为
(i) α,α2,α4\alpha,\alpha^{2},\alpha^{4} 在 GF(2)GF(2) 上的极小多项式

g(x)=(x+α)(x+α2)(x+α4)=x3+x+1

g(x)=(x+\alpha)(x+\alpha^{2})(x+\alpha^{4})=x^{3}+x+1
(ii) α3,α5,α6\alpha^{3},\alpha^{5},\alpha^{6} 在 GF(2)GF(2) 上的极小多项式

g(x)=x3+x2+1

g(x)=x^{3}+x^{2}+1

有限域 GF(p)GF(p) 上的本原多项式一定是 GF(p)GF(p) 上的不可约多项式;但是,GF(p)GF(p) 上的不可约多项式不一定是 GF(p)GF(p) 上的本原多项式.

定理:设 GF(q)GF(q) 是一个含有 qq 个元素的有限域,GF(p)GF(p) 是 GF(q)GF(q) 的一个含有 pp 个元素的子域, g(x)g(x) 是 GF(p)GF(p) 上的一个不可约多项式. 则 g(x)g(x) 为 GF(p)GF(p) 上的本原多项式当且仅当 g(x)g(x) 在 GF(q)GF(q) 上的根都是 GF(q)GF(q) 的本原元.

下面例子说明不可约多项式不一定是本原多项式.

例4 考虑二元域 GF(2)GF(2) 上的不可约多项式 p(x)=x4+x3+x2+x+1p(x)=x^{4}+x^{3}+x^{2}+x+1,构造有限域

GF(24)=GF(2)[x]/⟨p(x)⟩={a+bx+cx2+dx3 | a,b,c,d∈GF(2)}.

GF(2^{4})=GF(2)[x]/\langle p(x)\rangle=\{a+bx+cx^{2}+dx^{3}\ |\ a,b,c,d\in GF(2)\}.
显然,x∈GF(24)x\in GF(2^{4}). 由于 x5=1x^{5}=1,即 xx 的阶为 55,因此,xx 不是 GF(24)GF(2^{4}) 的本原元. 于是, p(x)p(x) 不是 GF(2)GF(2) 上的本原多项式. 另外,可以验证 x+1x+1 是 GF(24)GF(2^{4}) 的本原元.

2 Matlab 中的有限域计算函数

Matlab 中自带的有限域的计算是在 GF(2m)GF(2^{m}) 上进行的,即在二元域 GF(2)GF(2) 的扩域中进行计算,其中 1≤m≤161\leq m\leq 16.

由 “1.1 有限域的构造” 的 “例2” 可知,我们只需先找到一个 GF(2)GF(2) 上的 mm 次不可约多项式 g(x)g(x),得到集合 GF(2)[x]/⟨g(x)⟩GF(2)[x]/\langle g(x)\rangle,然后定义其上的加法和乘法分别为模 g(x)g(x) 加法和模 g(x)g(x) 乘法,即得到有限域 GF(2m)GF(2^{m}).

然而,这样得到的有限域 GF(2m)GF(2^{m}) 中,元素 xx 未必是本原元,这将给后面的(乘法)运算带来很多麻烦. 因此,在不可约多项式 g(x)g(x) 的挑选上,我们最好选择一个本原多项式. 这其实就是 Matlab 中的做法.

Matlab 中 GF(2m)GF(2^{m}) 的元素: 在 Matlab 中 GF(2m):=GF(2)[D]/⟨p(D)⟩GF(2^{m}):=GF(2)[D]/\langle p(D)\rangle,其中 p(D)p(D) 为一个 GF(2)GF(2) 上的 mm 次本原多项式.

GF(2m)={am−1Dm−1+am−2Dm−2+⋯+a1D+a0, | ai∈GF(2),0≤i≤m−1}

GF(2^{m})=\{a_{m-1}D^{m-1}+a_{m-2}D^{m-2}+\cdots+a_{1}D+a_{0},\ |\ a_{i}\in GF(2), 0\leq i\leq m-1\}
因此,每个 GF(2m)GF(2^{m}) 中的元素本质上是一个次数小于 mm 的多项式,每个元素和多项式之间有“1-1”对应关系. 例如,取 m=3m=3 和本原多项式 p(D)=D3+D+1p(D)=D^{3}+D+1,则我们得到有限域 GF(23)GF(2^{3}),其中的元素和多项式之间的对应关系如下:

GF(23)GF(2^{3}) GF(2)[D]/⟨p(D)⟩GF(2)[D]/\langle p(D)\rangle 二进制
0 00 000
1 11 001
2 DD 010
3 D+1D+1 011
4 D2D^{2} 100
5 D2+1D^{2}+1 101
6 D2+DD^{2}+D 110
7 D2+D+1D^{2}+D+1 111

GF(2)GF(2) 上的多项式由系数组成的二进制所对应的(十进制)数字来表示. 例如,多项式 p(D)=D3+D+1p(D)=D^{3}+D+1 的系数组成的二进制为 10111011,因此,多项式 p(D)p(D) 表示为数字 1111.

2.1 定义有限域数组

在 Matlab 中,函数 gf 用来定义一个有限域数组,函数申明如下:

X_GF = GF(X,M,PRIM_POLY)

函数创建有限域 GF(2M)GF(2^{M}) 上的一个数组,使用的 GF(2)GF(2) 上的 M 次本原多项式为 PRIM_POLY; M 是一个 11 至 1616 之间的整数;数组 X 中的元素为 00 至 2M−12^{M}-1 之间的数.

例如,生成有限域 GF(23)GF(2^{3}) 中的所有元素,并令本原多项式为 p(D)=D3+D2+1p(D)=D^{3}+D^{2}+1.

>> GF8 = gf(0:7,3,13)GF8 = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements = 0   1   2   3   4   5   6   7

如果不指定本原多项式,则 Matlab 将使用默认本原多项式. 例如

>> gf(0:7,3)ans = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)Array elements = 0   1   2   3   4   5   6   7

在这里例子中,Matlab 使用了 33 次本原多项式 D3+D+1D^{3}+D+1.

如果不指定次数 M 和本原多项式 PRIM_POLY,则生成二元域 GF(2)GF(2) 中的元素.

>> gf(0:1)ans = GF(2) array. Array elements = 0   1

生成的有限域中的数组可以参与运算(+、、.、.^、\等). 注意:参与运算的操作数必须来自同一个有限域,用于生成有限域的本原多项式也必须相同!

一个典型的例子是计算有限域的乘法表如下:

>> GF8 = gf(0:7,3)GF8 = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)Array elements = 0   1   2   3   4   5   6   7>> GF8'*GF8ans = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)Array elements = 0   0   0   0   0   0   0   00   1   2   3   4   5   6   70   2   4   6   3   1   7   50   3   6   5   7   4   1   20   4   3   7   6   2   5   10   5   1   4   2   7   3   60   6   7   1   5   3   2   40   7   5   2   1   6   4   3>> GF8 = gf(0:7,3,13)GF8 = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements = 0   1   2   3   4   5   6   7>> GF8'*GF8
Warning: Lookup tables not defined for this order 2^3 and
primitive polynomial 13.  Arithmetic still works
correctly but multiplication, exponentiation, and
inversion of elements is faster with lookup tables.
Use gftable to create and save the lookup tables.
> In gf.gettables at 35In gf.mtimes at 20ans = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements = 0   0   0   0   0   0   0   00   1   2   3   4   5   6   70   2   4   6   5   7   1   30   3   6   5   1   2   7   40   4   5   1   7   3   2   60   5   7   2   3   6   4   10   6   1   7   2   4   3   50   7   3   4   6   1   5   2

在这里我们用两个不同的本原多项式构造有限域 GF(23)GF(2^{3}),得到两张不同的乘法表.

注1:当我们计算 GF(2)[D]/⟨D3+D2+1⟩GF(2)[D]/\langle D^{3}+D^{2}+1\rangle 的乘法表时,Matlab 给产生一个警告 “Warning: Lookup tables not defined for this order 2^3 and primitive polynomial 13.” 从警告中我们可以看出,Matlab 中有限域的乘法是通过查表来完成的,这样可以显著地提高计算的速度. 我们可以通过命令 gftable 来创建并保存查找表格.
注2:用本原多项式 D3+D+1D^{3}+D+1 和 D3+D2+1D^{3}+D^{2}+1 生成两个不同的元素个数为 88 的有限域,然而这两个有限域是同构的. 一般地,我们有如下有限域同构定理:

定理: 任意两个元素个数相同的有限域一定同构.

与本原元多项式相关的函数

primpoly

函数 primpoly 用于计算 GF(2)GF(2) 上的本原多项式,函数申明如下:

PR = PRIMPOLY(M, OPT, 'nodisplay')

其中 M 为本原多项式的次数,其取值为 22 至 1616 之间的整数;选项 OPT 的定义如下:

OPT = 'min'  给出一个权值最小的本原多项式
OPT = 'max'  给出一个权值最大的本原多项式
OPT = 'all'  给出所有的本原多项式
OPT = L      给出所有权值为L的本原多项式

字符串 ‘nodisplay’ 用于关闭默认的本原多项式显示方式.

例如,输出 GF(2)GF(2) 上所有次数为 33 的本原多项式.

>> primpoly(3,'all')Primitive polynomial(s) = D^3+D^1+1
D^3+D^2+1ans =11
13>> primpoly(3,'all','nodisplay')ans =11
13

isprimitive

函数 isprimitive 用来检查 GF(2)GF(2) 上的多项式是否为本原多项式,函数申明如下:

CK = ISPRIMITIVE(A)

其中 A 为一个表示多项式的数字,并且表示的多项式的次数不能超过 1616. 如果 A 为本原多项式,则返回 11;否则返回 00.

例如,检查多项式 D3+D2+1D^{3}+D^{2}+1 和 D3+D2+D+1D^{3}+D^{2}+D+1 是否为本原多项式如下:

>> isprimitive(13)ans =1>> isprimitive(15)ans =0

其它函数

见 Matlab 帮助.

Matlab中的有限域计算相关推荐

  1. matlab中pwelch函数计算功率谱密度

    出处:Matlab用pwelch函数计算功率谱 - 知乎 (zhihu.com) 1:函数形式 [pxx,f] = pwelch(x,window,noverlap,NFFT,fs) 该函数可以自适应 ...

  2. matlab中模型函数计算出 Inf,拟合无法继续。请尝试使用或收紧系数的上界和下界。

    使用matlab中曲线拟合器(cftool)进行曲线拟合后,导出函数在调用后会出现 模型函数计算出 Inf,拟合无法继续. 请尝试使用或收紧系数的上界和下界,报错,拟合无法继续进行. 解决办法:根据拟 ...

  3. matlab计算欧式距离代码,在Matlab中有效地计算欧氏距离的成对平方

    这里通常给出的答案是基于bsxfun (参见例如[1] ). 我提出的方法是基于matrix乘法,结果比我能find的任何可比较的algorithm快得多: helpA = zeros(numA,3* ...

  4. matlab中怎么正弦计算,matlab计算结果中的正弦余弦问题

    请教各位前辈.求一个积分的结果算出来结果如下.希望把结果里的正弦,余弦的数值算出来.不知道怎么操作?? = (471*a2^2*sin(471/100))/400 - (157*a1^2*sin(47 ...

  5. matlab randi 函数,MATLAB中的randi函数

    randi Pseudorandom integers from a uniform discrete distribution.来自一个均匀离散分布的伪随机整数 R = randi(IMAX,N) ...

  6. MATLAB与高等数学--极限计算

    limit函数用法 在MATLAB中使用limit计算函数在某点的极限: limit(f,a) 例1: >> syms x; >> limit((x^3+1)/(x^4+2)) ...

  7. matlab中的矩阵与向量运算

    4.1 数组运算和矩阵运算 从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是 MATLAB软件所定义的规 ...

  8. matlab中p1x怎么表示什么,MATLAB复习题(含答案).doc

    MATLAB语言复习大纲 1. 掌握以下命令行编辑常用的控制键的用法:Del,Esc,Backspace,Ctrl+C. 答:Del是删除光标右边的字符 Esc是删除当前行的全部内容 Backspac ...

  9. matlab中linspace代表什么,linspace在matlab是什么意思_常见问题解析,linspace,matlab

    网络叹号怎么解决_常见问题解析 解决网络叹号的方法:首先在使用静态IP地址的情况下,打开"网络和共享中心-本地连接":然后修改IP地址:接着在使用动态IP接入互联网的情况下,重新设 ...

  10. imfilter c语言,opencv中cvFilter2D( ) 函数filter2D()函数与MATLAB中imfilter()函数的差异...

    出处: 1:cvFilter2D() 函数为opencv中c语言函数 2:filter2D()函数为opencv中c++函数 3:imfilter()函数为matlab版本函数 计算结果的异同: 2( ...

最新文章

  1. python基础知识整理 第七节:单例设计模式、异常、模块、包、制作模块、文件
  2. 如何在 Linux 中创建一个共享目录
  3. 注册MSComm方法
  4. Parallel 并发编程实例
  5. [NOIP 2009 提高组]最优贸易
  6. MobileNetV1
  7. 【Elasticsearch】es fielddata 字段数据
  8. 网站制作---科讯万能搜索系统的简单实用教程
  9. Educational Codeforces Round 54 (Rated for Div. 2): D. Edge Deletion(最短路树)
  10. Could not find com.android.tools.build:gradle:2.2.3
  11. 【机器学习】二次规划
  12. 解决-win10软件默认安装路径为C盘——修改注册表
  13. java 二进制转换成图片_java二进制转换为图片
  14. kettle运行spoon.sh启动图形化界面报错处理
  15. 【滤波器】基于matlab实现语音通信仿真附报告
  16. 推荐系统遇上深度学习(八十七)-[阿里]基于搜索的用户终身行为序列建模
  17. DQN笔记:高估问题 target network Double DQN
  18. matlab与flightGear联合仿真
  19. win10系统禁用笔记本自带键盘的有效方法
  20. Google Maps Api Geocoding 传递参数和返回参数的解析(Json)

热门文章

  1. Flink 异步IO
  2. java 模拟ping_模拟Ping操作的一个Java类
  3. 用java实现新浪爬虫,代码完整剖析(仅针对当前SinaSignOn有效)
  4. adobe flash builder 4 能编php,Adobe Flash builder 4的序列号
  5. 如何用php开发oa系统,oa系统怎么使用
  6. 如何将PNG图像转换为word文档?
  7. 开发一款AirPods或者Beats耳机查看电量的软件
  8. 用什么软件可以检测苹果耳机芯片_苹果耳机AirPods入耳检测的原理!怎么样判断苹果耳机的真假?...
  9. 大数据案例分析|谁在愚人节最容易被骗?
  10. java学习心得---循环结构