标准化一组数字/在一组数字中查找最大值和最小值

时间:2012-01-26 11:00:31

标签: iphone math sdk equation

我想知道是否有人可以帮忙解决这个问题:

我有一系列方程式,产生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

2 个答案:

答案 0 :(得分:0)

制作一个数组并进行比较。

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];

希望这对你有所帮助。

答案 1 :(得分:0)

float min = a;
float max = a;

if (b < min)
  min = b;
if (b > max)
  max = b;

并重复c,d和e的最后4行

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