-10

[-1;1]の範囲の値のリストを正規化する必要があります。私はこのコードをc#で見つけましたが、この言語を知りません。誰かが私がこれをC++で翻訳するのを手伝ってくれる?

List<int> list = new List<int>{-5,-4,-3,-2,-1,0,1,2,3,4,5};
double scaleMin = -1; //the normalized minimum desired
double scaleMax = 1; //the normalized maximum desired

double valueMax = list.Max();
double valueMin = list.Min();
double valueRange = valueMax - valueMin;
double scaleRange = scaleMax - scaleMin;

IEnumerable<double> normalized = 
list.Select (i =>
    ((scaleRange * (i - valueMin))
        / valueRange)
    + scaleMin);
4

1 に答える 1

3

コード...

IEnumerable<double> normalized = list.Select (i => ((scaleRange * (i - valueMin)) / valueRange) + scaleMin);

...ラムダ式なしで(C#で)書き直すことができます...

IEnumerable<double> normalized = new List<double>();
for (var elem in list)
{
    normalized.Add(((scaleRange * (elem - valueMin)) / valueRange) + scaleMin);
}

そのアルゴリズムを必要な言語に翻訳できるはずです。

于 2012-09-28T16:20:43.450 に答える