是否有一种简单的方法来计算(尤其是幂/指数)矩阵,其元素是有限域的整数,或者至少是任意整数精度矩阵,支持%运算符?
例如,假设我们有一个矩阵
A = 1 1
1 0
并希望计算类似(A**100) % 1000
的内容,如何实现这一目标?
我尝试了numpy,但问题是它使用固定的精度数据类型,因此它快速溢出...然后我尝试了sympy,因为它支持任意整数精度,但它似乎不支持有限字段操作(除了反过来)......
答案 0 :(得分:0)
这可能是一种矫枉过正,但Sage拥有你想要的一切(以及更多)。它是一个基于python的软件,但非常大(~1.2GB下载)。您可以使用sage --preparse script.sage
创建python文件。
甚至还有类似SO的QA网站https://ask.sagemath.org/questions/专门用于圣人。
您的代码示例可能是:
m = Matrix(GF(5), [[1, 1], [1, 0]])
power = m^100
我使用GF(5)
因为GF(1000)
不是有限字段。也存在一些差异,例如,取幂可以通过x**y
或等效x^y
来完成。