在PB 上,我們學會了將費式數列轉化成矩陣相乘的形式。其實,我們可以將此
技巧轉成更general 的形式。
Fn = c1* Fn−1+c2 Fn−2+ ⋯ +ck Fn−k+ck+1 , for n ≥ k
其中已知的項是:
F0 , F1 , F2 , … , Fk−1 , c1 ,c2 , … , ck+1
矩陣相乘的形式會表示成:
[ Fn; Fn−1;.... Fn−k;ck+1] = [B]*[ Fn-1; Fn−2;.... Fn−k-1;ck+1]
請試著推導出B 矩陣,使得你可以用Big Mod 的方式求 Fn %M
輸入第一行表示有幾組測試資料,最多20 組。
每組測資:
第一行有3 個數字:k(0 ≤ k ≤ 25), m(1 ≤ m < 231), n(0 ≤ n < 231)
第二行有c1 , c2 , … , ck+1(−231≤ ci < 231)
第三行有 F0 , F1 , … , Fk−1(−231≤ Fi < 231)
每行有一個數字,代表 Fn %M