次の数学方程式があります
for(i=0;i<M;i++)
for(j=0;j<M;j++)
R=((A(i)+B(j))%M)*M+(C(i)+D(j))%M;
C コードでは、コードを高速化しようとしましたが、mod 操作を削除すると 6 倍速くなることがわかりましたが、削除できません。ただし、A、B、C、および D の値は 0 の間です。とMなので、4つのケースがあります
まず、A+B と C+D が M 未満の場合、mod 操作は必要ありません
R=R
A+B が M より少なく、C+D が MI より多い場合は 2 番目に、
R=R-M
3 番目に、A+B と C+D が M より大きい場合、\ が必要です
R=R-M*M-M
最後に、A+B が M よりも大きく、C+D が M よりも小さい場合、必要です
R=R-M*M
if else を使用して実装すると、時間がかかりますか? だからどんな提案でも