配列のプレフィックス平均を計算する方法 (オンラインで見つけた疑似コードに基づく) を作成しましたが、要件を満たしているかどうかはわかりません。
要件は次のとおりです。
n 個の数値の配列 a[1…n] が与えられた場合、長さ n の別の配列 b[1…n] を計算して、b[i] が a[0]…a[i] の平均になるようにします (0 <=)。 i <= n.
調べてみると、プレフィックス平均メソッドの線形バージョンと二次バージョンの疑似コードが見つかり、それぞれの独自の実装を作成しました。
線形バージョンは次のとおりです。
public static double[] prefixAverages1 (double[] n) {
double b[] = new double[n.length];
double s = 0;
for (int i = 0; i < n.length; i++) {
s += n[i];
b[i] = s/(i+1);
}
return b;
}
二次バージョンは次のとおりです。
public static double[] prefixAverages2 (double[] n) {
double b[] = new double[n.length];
for (int i = 0; i < n.length; i++) {
double t = 0;
for (int j = 0; j <= i; j++) {
t += n[j];
}
b[i] = t/(i+1);
}
return b;
}
私の質問:
これらの関数は両方とも要件を満たしていますか? もしそうなら、どちらが優れていますか?