乗算フィボナッチ

先日の乗算フィボナッチ数列の問題には背景がありまして、10年ほどまえにMT乱数がまだないころ、f(n)=(f(n-P)*f(n-Q))&MAXINT という乱数が良いという論文が出て、一部の分野では流行ってました。当時自分は並列計算でこれを使うため、各プロセッサで十分長い間隔だけ数列を進めて同じパターンがでないようにして使うということをやってました(Phys. Rev. B 60, 6558)。このときはP×P行列の冪乗を計算してやってました。Mが2冪なら、1からM-1までの奇数は3^e mod M、eは0からM/2-1まで、と表せたんだっけな。だから加算ルールで飛ばした数列で3の冪を計算すればOKだった。でもMが一般の場合は面倒なんだな。