甲字段在数学是一组数字,与在其上定义,使得它们满足特定公理加法和乘法操作(Wikipedia中所述;也见下文)。
有限域可以包含p n个元素,其中p
素数和n
自然数。在这个挑战中,让我们接受p = 2
和n = 8
,让我们创建一个包含256个元素的字段。
该字段的元素应为包含0
和的范围内的连续整数1
:
- -128 ... 127
- 0 ... 255
- 或任何其他此类范围
为抽象的“加法”和抽象的“乘法” 定义两个函数(或程序,如果更容易的话),a(x,y)
以m(x,y)
使它们满足字段公理:
- 一致性:
a(x,y)
与m(x,y)
时同参数调用产生相同的结果 - 闭性:结果
a
和m
在相关范围内的整数 - 关联性:对于任何
x
,y
并且z
在范围内a(a(x,y),z)
等于a(x,a(y,z))
;一样m
- 交换性:对于任何
x
和y
范围内的,a(x,y)
是等于a(y,x)
; 一样m
- 分布:对于任何
x
,y
并且z
在范围内,m(x,a(y,z))
等于a(m(x,y),m(x,z))
- 中性元素:对于
x
范围内的任何元素,a(0,x)
等于x
,并且m(1,x)
等于x
- 否定:对于任何
x
在的范围内,存在着这样的y
即a(x,y)
是0
- 逆:对于任何
x≠0
在的范围内,存在着这样的y
即m(x,y)
是1
名称a
和m
只是示例;您可以使用其他名称或未命名的函数。答案的分数是和的字节长度之a
和m
。
如果您使用内置函数,也请用文字描述它产生的结果(例如,提供一个乘法表)。
a=+
m=×
吗?
m=×
a(2,1) = 3
,就没有必要a(2,1) = 5
。a
与您习惯于使用有理数域的常用加法无关。