【问题标题】:Normalize a set of numbers/ finding max and min values in a set of numbers规范化一组数字/在一组数字中找到最大值和最小值
【发布时间】:2016-01-25 11:30:22
【问题描述】:

我想知道是否有人可以提供帮助:

我有一系列方程,可以得到 5 个数字(a、b、c、d、e)。 我想将这些数字标准化为从 0 到 1 的范围

问题是我事先不知道数字,所以我不知道最大值和最小值。 换句话说,每次用户在方程中输入不同的值时,最大值和最小值都是不同的。

我知道我可以使用

Y = 1 + (x-A)* (10-1)/ (B-A)

其中 y 是 x 的标准化值。 A是最小值,B是最大值。

其中一个数字(a、b、c、d、e)可以是最大值,另一个可以是最小值。

所以基本上我需要比较这些数字,找出哪个是最大值,哪个是最小值,并将它们添加到上述公式中进行归一化。

有什么想法吗?

PS 这是 iPhone sdk

【问题讨论】:

  • 您已经描述了您需要做什么。那么问题出在哪里?
  • 我不知道如何在 xcode 中做到这一点...(比较 a、b、c、d、e 数字以查看每次的最大值和最小值)

标签: iphone math sdk equation


【解决方案1】:

创建一个数组并进行比较。

NSArray *array = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:a], [NSNumber numberWithInt:b],[NSNumber numberWithInt:c],[NSNumber numberWithInt:d], nil];
int max = [[array valueForKeyPath:@"@max.intValue"] intValue];
int min = [[array valueForKeyPath:@"@min.intValue"] intValue];

希望对你有所帮助。

【讨论】:

    【解决方案2】:
    float min = a;
    float max = a;
    
    if (b < min)
      min = b;
    if (b > max)
      max = b;
    

    然后对 c、d 和 e 重复最后 4 行

    注意:当然,正确的做法是重复使用 C 数组,而不是仅仅重复行,但这会让你开始。

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2016-05-25
      • 2020-01-26
      • 2018-03-05
      • 2018-05-03
      • 2020-05-25
      • 2020-07-02
      • 2017-05-30
      相关资源
      最近更新 更多