1

次の数学方程式があります

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 を使用して実装すると、時間がかかりますか? だからどんな提案でも

4

0 に答える 0