整数のセット x, 0<=x<=255 があります。このデータを次のように変換する必要があります。
- セット内の値の平均 == 0
- 分散 == 1
最初の条件を満たすことができます:
array arr[];
av = average(arr);
foreach(x in arr) { x = x - av;}
しかし、私は2番目のものに会う方法がわかりません。
私が持っている最良のアイデアは、現在の分散を計算し、すべての整数を A で除算または乗算して、目的の分散に近づけることです。次に、A=A/2 をエラーが小さくなるまで繰り返します。
(x の平方根を推定する基本的なアルゴリズムに似ています。)
これを達成する別の(より効率的な)方法はありますか?