存储系统中的纠删码(Erasure Codes)—有限域(三)

有限域是纠删码中运算的基础域,所有的编解码和重建运算都是基于某个有限域的。在讲讲为什么纠删码不能基于一般常见的域(自然数域,实数域)之前,需要讲讲域的概念和有限域与其他域的区别。文章将以尽量简单的语言使得更多的读者能够看懂。

一、有限域的基本概念

1. 什么是域?

首先回顾下我们学习数学的历史:从刚开始接触数学时,我们首先学会一些符号(比如从1开始数到100,初中开始学习未知数x, y, z 等),接着开始学习基于这些符号的运算(加减乘除等),这些符号和运算就可以构成一个“域”。比如我们最早接触的是整数域,接着有理数域,然后在高中和大学还接触了虚数域,只不过当时老师没有告诉你这些是域而已。还有一些常见的数不构成域,比如自然数、素数、整数。

 

2. 域具有哪些性质?

在抽象代数中,域是一个非零的可交换环。在域上可以进行我们常见的加减乘除算法,一个域具有以下性质:

  • 加法和乘法的封闭性,加法和乘法结果还在域内
  • 加法和乘法的交换律;a + b = b + a  和  a · b = b · a.
  • 加法和乘法的分配律:a + (b + c) = (a + b) + c  和  a · (b · c) = (a · b) · c.
  • 加法和乘法的分配律:a · (b + c) = (a · b) + (a · c).
  • 存在加法和乘法的单位元素:a+0 = a 和 a·1 = 1(这里的0,1 不是自然数的0,1,代表着域上的加法单位元素和乘法单位元素)
  • 每个域上的元素都存在其负元和逆元: a+(-a) = 0, a·(a-1) = 1

这些性质和我们平时遇到的许多运算性质相同,这是因为我们很多运算就是在域上进行的。

继续阅读