【发布时间】:2017-04-01 02:57:31
【问题描述】:
所以我遇到了这个相对简单的问题,想知道它的解决方案是否已经存在。
我必须将一个值从一个范围转换为另一个范围。如果只有一个范围,像这样:
{-30.0, 30.0} -> {25.0, 50.0}
这很容易。 但我有一组范围:
{-30.0, -20.0} -> {25.0, 30.0}
{-20.0, 0.0} -> {30.0, 40.0}
{ 0.0, 30.0} -> {40.0, 50.0}
一种解决方案是对每次访问进行线性搜索。 另一种解决方案是使范围具有相等的长度,以便可以直接映射输入值。
有人知道比线性搜索更好的解决方案吗?或者是否已经存在执行这种转换的容器?
非常感谢。
【问题讨论】:
-
范围可以重叠吗?
-
@user1034749 不,它们不重叠。
-
@user1034749:更正 - 输入集或输出集中的范围不重叠。但是,不幸的是,输入和输出的范围确实如此。 IE。 {-30.0, -20.0} 转换为 {-25.0, -20.0}。
-
我的解决方案只依赖于输入“重叠”,输出和输入的关系并不重要