我写了一个扩展的欧几里德算法函数
xgcd :: FFElem -> FFElem -> (FFElem, FFElem)
的是,对于非零有限域的元素A,B ∈ GF(p 米),计算小号和吨,使得SA + TB = 1 是否有一种方法可以使用xgcd
在该领域来计算乘法逆?即,给定一个 ∈GF(p 米),我要计算b,使得AB = 1∈GF(p 米).
我也实现了这些功能
(+) :: FFElem -> FFElem -> FFElem (-) :: FFElem -> FFElem -> FFElem (*) :: FFElem -> FFElem -> FFElem (^) :: FFElem -> Integer -> FFElem ffQuotRem :: FFElem -> FFElem -> (FFElem, FFElem) degree :: FFElem -> Integer
其中(+)
,(-)
,(*)
,(^)
,并ffQuotRem
表现为你所期望的并且degree
是通常的欧几里得功能的有限域(field元素的多项式表示的程度).
(答案不一定需要在Haskell中.)