Math 将一组数字重新缩放为新比例

Math 将一组数字重新缩放为新比例,math,Math,我正在尝试将一组数字重新缩放到一个新的比例,并带有一些特定的要求 假设我有一组介于1-100之间的数字 我希望能够将这组数字缩放到80-120之间的新比例,其中80是原始数据集的最小值,120是原始数据集的最大值,100是平均值 举个小例子: 对于集合[43,26,56,21,25,94] 在新的比例尺上,21将映射到80,94将映射到120,44.2将映射到100。将范围[ab]缩放到[cd]的映射是f(x)=(x-a)*(d-c)/(b-a)+c 但是,我认为不可能确保线性f也将范围[ab]

我正在尝试将一组数字重新缩放到一个新的比例,并带有一些特定的要求

假设我有一组介于1-100之间的数字

我希望能够将这组数字缩放到80-120之间的新比例,其中80是原始数据集的最小值,120是原始数据集的最大值,100是平均值

举个小例子:

对于集合[43,26,56,21,25,94]


在新的比例尺上,21将映射到80,94将映射到120,44.2将映射到100。

将范围
[ab]
缩放到
[cd]
的映射是
f(x)=(x-a)*(d-c)/(b-a)+c

但是,我认为不可能确保线性
f
也将范围
[ab]
中包含的集合中任意值的平均值映射到范围
[cd]
中的指定值(包括c和d的平均值)


为此,您必须将
[a mean]
分别缩放到
[c(c+d)/2]
[mean b]
[(c+d)/2d]
,或者使用其他一些非线性映射。

您使用的语言可能存在重复,您尝试过什么?您是仅限于整数,还是希望进行浮点计算?