2
私は私が私が探しているすべての0 < = I、J < = 1024用a[i&j] += b[i] * c[j]
を持っていることを新しい配列a
が効率的な検索したい1024未満のサイズを持つ2つの整数配列b
とc
を持っています正規のO(n^2)以外の解。iとjごとに[i&j] + = b [i] * c [j]を効率的に実行するにはどうすればよいですか?
基本的に私はこれを改善したい:
for(int i = 0; i < 1024; ++i){
for(int j = 0; j < 1024; ++j){
a[i&j] += b[i] * c[j];
}
}
しかし 'I&同じ値を与えるj'は、あなたが何をすべきかをしたいですか多く、' [0] ==言えば '1' 、b [0] == 1、b [1] == 0( '0&0 == 0'、' 0&1 == 0')である。 'c [0]'は0か1でなければなりませんか? – Phylliida
@Phylliida申し訳ありませんが、私は同じ値をすべて追加します。私はコードで質問を更新しました。 aが初期化されていると仮定します。 –
それはもっと理にかなっていますが、配列の型を保証していますか? (8バイト整数、16バイト整数、32バイト整数、浮動小数点など) – Phylliida