python 有限域函数库_GF(2)有限域中的Python乘法逆

这两个函数执行扩展欧几里德算法,然后找到乘法逆.顺序似乎是正确的,但它并没有按照我在悉尼大学http://magma.maths.usyd.edu.au/calc/的这个工具所期望的那样回归,因为这是在GF(2)有限域中完成的,我想我错过了一些翻译的关键步骤从基地10到这个领域.这在基数10上进行了测试和处理,但是在这里可能无法接收具有二进制系数的多项式.所以我的问题是我错误地应用于这个算法的Py...
摘要由CSDN通过智能技术生成

这两个函数执行扩展欧几里德算法,然后找到乘法逆.顺序似乎是正确的,但它并没有按照我在悉尼大学

http://magma.maths.usyd.edu.au/calc/的这个工具所期望的那样回归,因为这是在GF(2)有限域中完成的,我想我错过了一些翻译的关键步骤从基地10到这个领域.

这在基数10上进行了测试和处理,但是在这里可能无法接收具有二进制系数的多项式.所以我的问题是我错误地应用于这个算法的Python的哪些部分,例如// floor,可能无法承载基本10中的函数能够在GF(2)中执行此操作.

上面的工具可以像这样测试:

R:=PolynomialRing(GF(2));

p:=x^13+x+1; q:=x^12+x;

g,r,s:=XGCD(p,q);

g eq r*p+s*q;

g,r,s;

功能:

def extendedEuclideanGF2(self,a,b): # extended euclidean. a,b are values 10110011... in integer form

inita,initb=a,b; x,prevx=0,1; y,prevy = 1,0

while b != 0:

q = int("{0:b}".format(a//b),2)

a,b = b,int("{0:b}".format(a%b),2);

x,prevx = (int("{0:b}".format(prevx-q*x)), int("{0:b}".format(x,2))); y,prevy=(prevy-q*y, y)

print("Euclidean %d * %d &#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值