繁体   English   中英

Java:将值带入[0,1]范围

[英]Java: bring value in [0,1] range

如果我有一个具有正负两个值的double的LinkedList,例如:

[-1000, 34, 0, -700, 12]

我怎样才能带来[0,1]范围?

如果我只有正数,我可以做:

(x - Xmin) / (Xmax-Xmin)

但是同时具有正值和负值吗?

变换保持不变: (x - Xmin) / (Xmax-Xmin)

如果您有负数,则减去其中的最小数就是将其大小加到所有值上。 Xmin最终将为零,更大的最终将为正。 然后按(Xmax-Xmin)缩放将所有值置于[0,1]范围内。 手动尝试几个案例,看看情况确实如此。

您的代码应该仍然有效。

x-Xmin移动您的所有数字,使它们均为正数,最小的一个等于零。

/(Xmax-Xmin)缩放数字,使最大的数字等于1,最小的数字为零,中间的数字按比例缩放。

因此(x-Xmin)/(Xmax-Xmin)具有您想要的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM