[英]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.