-5

手のバイナリイメージ(サイズ:100x100)があり、0または1の値のみで構成される行列として表すことができます。これは例です:

人間の手のバイナリイメージの例

double線形化された画像を表す配列があり、それを呼び出すと仮定するとimage、次の操作を実行する必要があります。

double accumulator = 0;
for (int j = 0; j < image.Length; ++j)
{
    accumulator += image[j] * weights[j];
}

つまり、image配列の各ピクセルの加重和を計算する必要があります。weights値を含む配列を表し、double画像の各ピクセルに重みを付けるために使用されます。

次のコードは前のコードよりも効率的ですか?

double accumulator = 0;
for (int j = 0; j < image.Length; ++j)
{
    if (image[j] != 0)
    {
        accumulator += image[j] * weights[j];
    }
}
4

1 に答える 1

4

答えは-この時点でこれについて心配する必要はありません。コードの実行速度が遅すぎる場合は、最適化を試すことができます。ただし、「遅すぎる」は主観的なものです。

時期尚早の最適化はすべての悪の根源です。

angelatlargeが指摘しているように、今のところ、読みやすく、保守しやすいものを使用してください。

于 2013-03-26T18:53:01.513 に答える