擅长:python、mysql、java
<p>使用递归+<code>numpy</code>:</p>
<pre class="lang-py prettyprint-override"><code>import numpy as np
X=np.array([[x1, y1, 1]])
A=np.array([[C, D, E1], [D, C, E2], [1,1,1]])
def myFunc(res, A, F, N):
res[-1,2]=1
if(N==1):
return np.append(res, [A@res[-1]%F], axis=0)
else:
N-=1
return myFunc(np.append(res, [A@res[-1]%F], axis=0), A, F, N)
X, Y=myFunc(X, A, F, N-1)[:, :2].T
A=(X+Y)%F
</code></pre>
<p>样本输出:</p>
<pre class="lang-py prettyprint-override"><code>x1=1
y1=2
C, D, E1, E2, F, N=4,15,6,7,3,11
X=np.array([[x1, y1, 1]])
A=np.array([[C, D, E1], [D, C, E2], [1,1,1]])
X, Y=myFunc(X, A, F, N-1)[:, :2].T
A=(X+Y)%F
print(X)
print(Y)
print(A)
#outputs:
[1 1 1 1 1 1 1 1 1 1 1]
[2 0 1 2 0 1 2 0 1 2 0]
[0 1 2 0 1 2 0 1 2 0 1]
</code></pre>