有关区块链的一些数学知识储备
1.集合
集合是由不同对象组成的整体(collections of objects)的数学模型,这些对象被称为集合的元素(elements)。整数(Integers)、有理数(Rational numbers)、实数(Real numbers)、复数(Complex numbers)、矩阵(Matrices)、多项式(Polynomials)、多边形(Polygons)以及其他的很多概念实质上都是集合。
常用集合缩写: 𝑁N 表示全体自然数集合(Natural numbers), 𝑍Z 表示全体整数集合("Zahl" is Integer in German), 𝑄Q 表示全体有理数集合(Rational numbers), 𝑅R 表示全体实数集合(Real numbers), 𝐶C 表示全体复数集合(Complex numbers)
集合的特点:无序性 ,互异性,确定性
有序对
集合的元素是无序的,有序对(order pairs)是从集合中产生的一种新的数据结构。在编程世界中,程序员更愿意称其为元组(tuple)。
那么如何在无序的集合中生成有序对呢?具体实现方式是将元组 (𝑎,𝑏)(a,b) 表示为集合形式 {𝑎,{𝑏}}{a,{b}} 。注意到,这样的集合的元素要么是字母,要么是基数为1的集合。于是,我们说 (𝑎,𝑏)≠(𝑏,𝑎)(a,b)=(b,a) ,因为 {𝑎,{𝑏}}≠{𝑏,{𝑎}}{a,{b}}={b,{a}} 。
注意有序对(元组)的元素数目可以是任意个。
定义两个集合 A 和 B,我们可以定义另一个集合 C ,其中 C 的元素是第一个元素来自于 A ,第二个元素来自于 B 的有序对。这样的集合我们称之为笛卡尔积(Cartesian product)。
笛卡尔积不遵循交换律。
借助笛卡尔积这个运算,我们就可以从数学角度上定义函数(function)。比如我们需要定义函数 f,满足 𝑓(1)=𝑥,𝑓(2)=𝑦,𝑓(3)=𝑧f(1)=x,f(2)=y,f(3)=z ,那么只需要定义两个集合 {1,2,3},{𝑥,𝑦,𝑧}{1,2,3},{x,y,z} ,二者进行笛卡尔积,并取结果的子集即可得到目标映射关系 (1,𝑥),(2,𝑦),(3,𝑧)(1,x),(2,y),(3,z)。
因此,在集合论中,函数就是域集(domain set)和共域集(codomain set)的笛卡尔积的子集。换句话说,
2. 欧几里得除法
我们平常使用的除法是实数除法,两个整数相除的结果不一定是整数,比如 7÷5=1.47÷5=1.4 不是整数。因此,我们引入整数除法,也叫欧几里得除法(Euclidean Division)。它的结果由两部分组成:商(quotient)和余数(remainder)。欧几里得除法的定义:
对于整数 𝑎a 和 𝑏b(其中 𝑏≠0b=0),存在唯一的整数对 (𝑞,𝑟)(q,r),使得 𝑎=𝑏𝑞+𝑟a=bq+r,其中 𝑞q 是商, 𝑟r 是余数,且 0≤𝑟