[英]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.