float の配列の平均を計算しようとしています。これはバイナリ検索内にあるため、インデックスを使用する必要があり、上部と下部が移動します。(半分の範囲の推定を最適化しようとしている全体像なので、パスごとに配列を再作成する必要はありません)。
とにかく、私はカスタム平均ループを書きましたが、c# Average() メソッドよりも精度が 2 桁低くなります。
float test = input.Average();
int count = (top - bottom) + 1;//number of elements in this iteration
int pos = bottom;
float average = 0f;//working average
while (pos <= top)
{
average += input[pos];
pos++;
}
average = average / count;
例:
0.0371166766 - c# 0.03711666 - 私のループ 125090.148 - c# 125090.281 - 私のループ