繁体   English   中英

Python有限域矩阵求幂

[英]Python finite field matrix exponentiation

是否有一种简单的方法来计算(特别是幂/指数)矩阵,其元素是有限域的整数,或至少任意整数精度矩阵,支持%运算符?

例如,假设我们有一个矩阵

A = 1 1
    1 0

并且想要计算类似(A**100) % 1000 ,如何实现这一目标?

我尝试了numpy,但问题是它使用固定的精度数据类型,因此它快速溢出...然后我尝试了sympy,因为它支持任意整数精度,但它似乎不支持有限域操作(逆向除外) ...

这可能是一种矫枉过正,但Sage拥有你想要的一切(以及更多)。 它是一个基于python的软件,但非常大(约1.2GB下载)。 您可以使用sage --preparse script.sage来创建python文件。

甚至有类似SO的QA网站https://ask.sagemath.org/questions/专门用于sage。

您的代码示例可能是:

m = Matrix(GF(5), [[1, 1], [1, 0]])
power = m^100

我使用GF(5)因为GF(1000)不是有限域。 还存在一些差异,例如,取幂可以通过x**y或等效x^y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM