私は部分的な乗算のように見えるものを洞察することを望んでいます。部分的な、またはラップされた乗算 - 誰でもこの関数を識別できますか?
#define LOW(x) ((x)&0xffffffff)
#define HIGH(x) ((x)>>32)
unsigned long long NotMultiply(unsigned long long x, unsigned long long y)
{
return HIGH(x)*HIGH(y) + LOW(x)*LOW(y);
}
次のようにこの機能は、複数回繰り返される。
unsigned long long DoBusyWork(unsigned long long x, unsigned long long y, int n)
{
while (n--)
x = NotMultiply(x,y);
return x;
}
は、この結果を計算するための任意のショートカットはありますか?
x == yの場合はどうなりますか?
の詳細情報へのリンクは
「DoBusyWork」という名前は単なる手掛かりではありませんか?それは私には、何か役に立つものを計算するのではなく、時間を無駄にすることが目的であることを意味します。 – RBerteig